diff --git a/Jenkinsfile b/Jenkinsfile index 9715d68..d9453df 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -105,8 +105,21 @@ rsync -az \ scripts/ \ "$APP_USER@$APP_HOST:$DEPLOY_PATH/scripts/" -docker save ${IMAGE_LATEST} ${IMAGE_BUILD} \ - | ssh -i "$SSH_KEY" "$APP_USER@$APP_HOST" 'docker load' +echo "Deploying image tag: ${IMAGE_BUILD}" + +IMAGE_TAR="plesk-agency-portal-build-${BUILD_NUMBER}.tar" +echo "Creating image archive: ${IMAGE_TAR}" +docker save -o "${IMAGE_TAR}" "${IMAGE_BUILD}" +ls -lh "${IMAGE_TAR}" + +echo "Copying image archive to remote host" +rsync -az \ + -e "ssh -i $SSH_KEY" \ + "${IMAGE_TAR}" \ + "$APP_USER@$APP_HOST:$DEPLOY_PATH/" + +echo "Loading image archive on remote host" +ssh -i "$SSH_KEY" "$APP_USER@$APP_HOST" "docker load -i $DEPLOY_PATH/${IMAGE_TAR}" ssh -i "$SSH_KEY" "$APP_USER@$APP_HOST" "docker images | grep plesk-agency-portal || true" diff --git a/scripts/deploy-prod.sh b/scripts/deploy-prod.sh index ba0f8d6..dad7562 100755 --- a/scripts/deploy-prod.sh +++ b/scripts/deploy-prod.sh @@ -12,8 +12,13 @@ if [ ! -f "${DEPLOY_PATH}/docker-compose.prod.yml" ]; then exit 1 fi +if [ ! -f "${DEPLOY_PATH}/.env" ]; then + echo "Missing .env in ${DEPLOY_PATH}" >&2 + exit 1 +fi + cd "${DEPLOY_PATH}" APP_IMAGE="${APP_IMAGE}" docker compose -f docker-compose.prod.yml up -d --no-build --force-recreate -docker compose -f docker-compose.prod.yml ps +APP_IMAGE="${APP_IMAGE}" docker compose -f docker-compose.prod.yml ps diff --git a/scripts/rollback-prod.sh b/scripts/rollback-prod.sh index 2f72201..77b1146 100755 --- a/scripts/rollback-prod.sh +++ b/scripts/rollback-prod.sh @@ -21,10 +21,20 @@ if [ ! -f "${DEPLOY_PATH}/docker-compose.prod.yml" ]; then exit 1 fi +if [ ! -f "${DEPLOY_PATH}/.env" ]; then + echo "Missing .env in ${DEPLOY_PATH}" >&2 + exit 1 +fi + +if [ ! -f "${DEPLOY_PATH}/scripts/smoke-check.sh" ]; then + echo "Missing scripts/smoke-check.sh in ${DEPLOY_PATH}" >&2 + exit 1 +fi + cd "${DEPLOY_PATH}" -APP_IMAGE="${PREVIOUS_IMAGE_TAG}" docker compose -f docker-compose.prod.yml up -d --no-build +APP_IMAGE="${PREVIOUS_IMAGE_TAG}" docker compose -f docker-compose.prod.yml up -d --no-build --force-recreate -"${DEPLOY_PATH}/smoke-check.sh" "${APP_BASE_URL}" +"${DEPLOY_PATH}/scripts/smoke-check.sh" "${APP_BASE_URL}" docker compose -f docker-compose.prod.yml ps