remove auto deploy
Build & Push / Pipeline Tests (push) Successful in 1m46s
Test / Type Check (all packages) (push) Successful in 51s
Build & Push / Build & Push Docker Image (push) Successful in 27s
Test / API Unit Tests (push) Successful in 1m5s
Test / Homepage Unit Tests (push) Successful in 46s
Test / Carplace Unit Tests (push) Successful in 44s
Test / Admin Unit Tests (push) Successful in 41s
Test / Dashboard Unit Tests (push) Successful in 42s
Test / API Integration Tests (push) Successful in 1m7s
Build & Push / Pipeline Tests (push) Successful in 1m46s
Test / Type Check (all packages) (push) Successful in 51s
Build & Push / Build & Push Docker Image (push) Successful in 27s
Test / API Unit Tests (push) Successful in 1m5s
Test / Homepage Unit Tests (push) Successful in 46s
Test / Carplace Unit Tests (push) Successful in 44s
Test / Admin Unit Tests (push) Successful in 41s
Test / Dashboard Unit Tests (push) Successful in 42s
Test / API Integration Tests (push) Successful in 1m7s
This commit is contained in:
@@ -421,76 +421,3 @@ jobs:
|
||||
docker push '$IMAGE_LATEST'
|
||||
fi
|
||||
"
|
||||
|
||||
- name: Deploy production stack on VPS
|
||||
env:
|
||||
IMAGE_REPOSITORY: ${{ steps.image-meta.outputs.repository }}
|
||||
IMAGE_TAG: ${{ gitea.sha }}
|
||||
ENV_DOCKER_PRODUCTION: ${{ secrets.ENV_DOCKER_PRODUCTION }}
|
||||
ENV_DOCKER_PRODUCTION_B64: ${{ secrets.ENV_DOCKER_PRODUCTION_B64 }}
|
||||
STRIPE_BILLING_REQUIRED: ${{ secrets.STRIPE_BILLING_REQUIRED }}
|
||||
STRIPE_API_KEY: ${{ secrets.STRIPE_API_KEY }}
|
||||
STRIPE_WEBHOOK_SECRET: ${{ secrets.STRIPE_WEBHOOK_SECRET }}
|
||||
REGISTRY_USERNAME: ${{ secrets.REGISTRY_USERNAME }}
|
||||
REGISTRY_USER: ${{ secrets.REGISTRY_USER }}
|
||||
REGISTRY_PASSWORD: ${{ secrets.REGISTRY_PASSWORD }}
|
||||
REGISTRY_TOKEN: ${{ secrets.REGISTRY_TOKEN }}
|
||||
REMOTE_BUILD_DIR: ${{ env.DEPLOY_ROOT }}/build-context
|
||||
VPS_HOST: ${{ secrets.VPS_IP }}
|
||||
run: |
|
||||
VPS_HOST="${VPS_HOST:-$DEPLOY_SSH_HOST}"
|
||||
if [ -z "$VPS_HOST" ]; then
|
||||
echo "::error::VPS_IP secret or DEPLOY_SSH_HOST is required"
|
||||
exit 1
|
||||
fi
|
||||
SSH_OPTIONS="-i $HOME/.ssh/id_rsa -o BatchMode=yes -o IdentitiesOnly=yes -o StrictHostKeyChecking=accept-new -o UserKnownHostsFile=$HOME/.ssh/known_hosts"
|
||||
ENV_DOCKER_PRODUCTION_B64_CLEAN="$(printf '%s' "$ENV_DOCKER_PRODUCTION_B64" | tr -d '[:space:]')"
|
||||
ENV_DOCKER_PRODUCTION_RAW_B64="$(printf '%s' "$ENV_DOCKER_PRODUCTION" | base64 | tr -d '\n')"
|
||||
STRIPE_BILLING_REQUIRED="${STRIPE_BILLING_REQUIRED:-false}"
|
||||
STRIPE_BILLING_REQUIRED_B64="$(printf '%s' "$STRIPE_BILLING_REQUIRED" | base64 | tr -d '\n')"
|
||||
STRIPE_API_KEY_B64="$(printf '%s' "$STRIPE_API_KEY" | base64 | tr -d '\n')"
|
||||
STRIPE_WEBHOOK_SECRET_B64="$(printf '%s' "$STRIPE_WEBHOOK_SECRET" | base64 | tr -d '\n')"
|
||||
REGISTRY_USERNAME="${REGISTRY_USERNAME:-${REGISTRY_USER:-}}"
|
||||
REGISTRY_PASSWORD="${REGISTRY_PASSWORD:-${REGISTRY_TOKEN:-}}"
|
||||
REGISTRY_PASSWORD_B64="$(printf '%s' "$REGISTRY_PASSWORD" | base64 | tr -d '\n')"
|
||||
ssh $SSH_OPTIONS "${{ secrets.VPS_USER }}@$VPS_HOST" "
|
||||
set -e
|
||||
mkdir -p '$DEPLOY_ROOT' '$REMOTE_BUILD_DIR'
|
||||
previous_env_file=''
|
||||
if [ -f '$DEPLOY_ROOT/.env.docker.production' ]; then
|
||||
previous_env_file=\"\$(mktemp)\"
|
||||
cp '$DEPLOY_ROOT/.env.docker.production' \"\$previous_env_file\"
|
||||
trap 'rm -f \"\$previous_env_file\"' EXIT
|
||||
fi
|
||||
if [ -n '$ENV_DOCKER_PRODUCTION_B64_CLEAN' ]; then
|
||||
printf '%s' '$ENV_DOCKER_PRODUCTION_B64_CLEAN' | base64 -d > '$DEPLOY_ROOT/.env.docker.production'
|
||||
chmod 600 '$DEPLOY_ROOT/.env.docker.production'
|
||||
elif [ -n '$ENV_DOCKER_PRODUCTION_RAW_B64' ]; then
|
||||
printf '%s' '$ENV_DOCKER_PRODUCTION_RAW_B64' | base64 -d > '$DEPLOY_ROOT/.env.docker.production'
|
||||
chmod 600 '$DEPLOY_ROOT/.env.docker.production'
|
||||
elif [ ! -f '$DEPLOY_ROOT/.env.docker.production' ]; then
|
||||
echo 'ENV_DOCKER_PRODUCTION or ENV_DOCKER_PRODUCTION_B64 is not set, and $DEPLOY_ROOT/.env.docker.production does not exist on the VPS' >&2
|
||||
exit 1
|
||||
else
|
||||
echo 'Using existing $DEPLOY_ROOT/.env.docker.production on the VPS'
|
||||
fi
|
||||
cp '$DEPLOY_ROOT/.env.docker.production' '$REMOTE_BUILD_DIR/.env.docker.production'
|
||||
chmod 600 '$REMOTE_BUILD_DIR/.env.docker.production'
|
||||
cd '$REMOTE_BUILD_DIR'
|
||||
if [ -n \"\$previous_env_file\" ]; then
|
||||
bash scripts/preserve-env-values.sh \"\$previous_env_file\" .env.docker.production STRIPE_BILLING_REQUIRED STRIPE_API_KEY STRIPE_WEBHOOK_SECRET
|
||||
fi
|
||||
export STRIPE_BILLING_REQUIRED_B64='$STRIPE_BILLING_REQUIRED_B64'
|
||||
export STRIPE_API_KEY_B64='$STRIPE_API_KEY_B64'
|
||||
export STRIPE_WEBHOOK_SECRET_B64='$STRIPE_WEBHOOK_SECRET_B64'
|
||||
bash scripts/apply-env-secret-overrides.sh .env.docker.production STRIPE_BILLING_REQUIRED STRIPE_API_KEY STRIPE_WEBHOOK_SECRET
|
||||
bash scripts/describe-env-values.sh .env.docker.production STRIPE_BILLING_REQUIRED STRIPE_API_KEY STRIPE_WEBHOOK_SECRET
|
||||
cp .env.docker.production '$DEPLOY_ROOT/.env.docker.production'
|
||||
chmod 600 '$DEPLOY_ROOT/.env.docker.production'
|
||||
export APP_IMAGE='$DEPLOY_REGISTRY_HOST/$IMAGE_REPOSITORY'
|
||||
export IMAGE_TAG='$IMAGE_TAG'
|
||||
export REGISTRY_HOST='$DEPLOY_REGISTRY_HOST'
|
||||
export REGISTRY_USER='$REGISTRY_USERNAME'
|
||||
export REGISTRY_PASSWORD=\"\$(printf '%s' '$REGISTRY_PASSWORD_B64' | base64 -d)\"
|
||||
bash scripts/docker-prod-deploy.sh
|
||||
"
|
||||
|
||||
Reference in New Issue
Block a user