diff --git a/Jenkinsfile.pjt b/Jenkinsfile.pjt index 33acde9..e0f84dc 100644 --- a/Jenkinsfile.pjt +++ b/Jenkinsfile.pjt @@ -27,6 +27,8 @@ pipeline { stages { stage('1) Git check out') { steps { + echo "[1/1] Git check out" + checkout scm } } @@ -35,15 +37,21 @@ pipeline { steps { sh ''' set -e + + echo "[1/1] Gradle build" + chmod +x ./gradlew ./gradlew clean build -x test ''' } } - stage('3) image tab create') { + stage('3) ImageTag create') { steps { script { + + echo "[1/1] ImageTag create" + env.SHORT_SHA = sh(script: "git rev-parse --short HEAD", returnStdout: true).trim() echo "SHORT_SHA = ${env.SHORT_SHA}" env.IMAGE_TAG = "${env.BUILD_NUMBER}-${env.SHORT_SHA}" @@ -56,12 +64,15 @@ pipeline { steps { sh ''' set -e + + echo "[1/1] docker build" + docker build -t ${REGISTRY_HOST}/${IMAGE_REPO}:${IMAGE_TAG} . ''' } } - stage('5) Docker Login & Push') { + stage('5) Docker registry Login & Push') { steps { withCredentials([usernamePassword( credentialsId: DOCKER_CRED, @@ -71,9 +82,11 @@ pipeline { sh ''' set -e + echo "[1/2] docker registry login" echo "$DOCKER_PASS" | docker login ${REGISTRY_HOST} \ -u "$DOCKER_USER" --password-stdin + echo "[2/2] docker image push" docker push ${REGISTRY_HOST}/${IMAGE_REPO}:${IMAGE_TAG} docker logout ${REGISTRY_HOST} @@ -87,16 +100,20 @@ pipeline { sshagent(['ssh-pjt']) { sh ''' set -e + + echo "[1/2] ssh login" + SRC="${WORK_COMPOSE_DIR}/${WORK_COMPOSE_FILE}" DST="${SSH_USER}@${SSH_HOST}:${SSH_COMPOSE_DIR}/${SSH_COMPOSE_FILE}" + echo "[2/2] Copy compose $SRC -> $DST" scp -P ${SSH_PORT} -o StrictHostKeyChecking=no "$SRC" "$DST" ''' } } } - stage('7) Remote docker login') { + stage('7) Remote docker registry login') { steps { sshagent(['ssh-pjt']) { withCredentials([usernamePassword( @@ -107,6 +124,8 @@ pipeline { sh ''' set -e + echo "[1/1] docker registry login" + ssh -p ${SSH_PORT} \ -o StrictHostKeyChecking=no \ -o UserKnownHostsFile=/dev/null \ @@ -134,14 +153,16 @@ pipeline { 'set -e cd '"${SSH_COMPOSE_DIR}"' export IMAGE_TAG='"${IMAGE_TAG}"' - docker compose --env-file /srv/project/alist/env/api/.env -f '"${SSH_COMPOSE_FILE}"' pull + + echo "[1/1] docker pull" + docker compose -p alist-api --env-file /srv/project/alist/env/api/.env -f '"${SSH_COMPOSE_FILE}"' pull ' ''' } } } - stage('9) Remote docker up') { + stage('9) Remote docker down & up') { steps { sshagent(['ssh-pjt']) { sh ''' @@ -151,7 +172,15 @@ pipeline { 'set -e cd '"${SSH_COMPOSE_DIR}"' export IMAGE_TAG='"${IMAGE_TAG}"' - docker compose --env-file /srv/project/alist/env/api/.env -f '"${SSH_COMPOSE_FILE}"' up -d --remove-orphans + + echo "[1/3] docker down (remove orphans)" + docker compose -p alist-api --env-file /srv/project/alist/env/api/.env -f "'"${SSH_COMPOSE_FILE}"'" down --remove-orphans + + echo "[2/3] docker up" + docker compose -p alist-api --env-file /srv/project/alist/env/api/.env -f '"${SSH_COMPOSE_FILE}"' up -d + + echo "[3/3] docker ps" + docker compose -p alist-api --env-file /srv/project/alist/env/api/.env -f '"${SSH_COMPOSE_FILE}"' ps ' ''' }