diff --git a/.drone.yml b/.drone.yml index f10296e..efdd5c4 100644 --- a/.drone.yml +++ b/.drone.yml @@ -28,3 +28,6 @@ steps: from_secret: SECRET_REGISTRY_USERNAME password: from_secret: SECRET_REGISTRY_PASSWORD + when: + branch: + - master diff --git a/.gitignore b/.gitignore index 723ef36..8e94e1c 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ -.idea \ No newline at end of file +.idea +id_rsa* diff --git a/test/test_image.sh b/test/test_image.sh new file mode 100755 index 0000000..90877cd --- /dev/null +++ b/test/test_image.sh @@ -0,0 +1,37 @@ +#!/bin/bash + +set -eu + +root_dir=$(readlink -f $(dirname $(realpath "$0"))/..) +if ! [ -f "$root_dir"/id_rsa ]; then + echo 'Generating SSH key' + ssh-keygen -t rsa -f "$root_dir"/id_rsa -q -N '' +fi + +run_image() { + local branch=$1 + local pubkey=$(<"$root_dir"/id_rsa.pub) + shift + docker network inspect codefirst &> /dev/null || docker network create codefirst + docker volume create --name=codefirst-docdeployer-drone + docker volume create --name=codefirst-docdeployer-docs + docker volume create --name=codefirst-nginx + nginx_id=$(docker run --rm -d -v codefirst-nginx:/usr/share/nginx --net=codefirst -e PUBLIC_KEY="$pubkey" -e USER_NAME=codefirst --hostname=nginx linuxserver/openssh-server) + sleep 1 # Wait to let the container start + docker run -v codefirst-docdeployer-drone:/drone/src \ + -v codefirst-docdeployer-docs:/docs \ + --net=codefirst \ + -e DRONE_REPO_NAME=hello-world \ + -e DRONE_REPO_OWNER=octocat \ + -e DRONE_REPO=octocat/hello-world \ + -e DRONE_BRANCH=$branch \ + -e DRONE_COMMIT=7fd1a60b01f91b314f59955a4e4d4e80d8edf11d \ + --entrypoint '/bin/bash' \ + --rm codefirst-docdeployer \ + -c "sed -i 's/ssh/ssh -p 2222/g' /entrypoint.sh && sed -i 's/root@nginx/codefirst@nginx/g' /entrypoint.sh && $*" + docker stop "$nginx_id" +} + +docker build -t codefirst-docdeployer "$root_dir" + +run_image main 'doxygen -g && /entrypoint.sh -b main -l . -t doxygen -d sourcecode_documentation'