dev1/.woodpecker.yml

49 lines
1.4 KiB
YAML

---
kind: pipeline
type: docker
name: build-and-deploy
steps:
ssh-deploy:
image: google/cloud-sdk:latest
entrypoint:
- bash
- -c
- >
set -euo pipefail;
mkdir -p ~/.ssh;
gcloud secrets versions access latest --secret=STAGING_KNOWN_HOSTS --project=aptivaai-dev | base64 -d > ~/.ssh/known_hosts;
chmod 644 ~/.ssh/known_hosts;
gcloud secrets versions access latest --secret=STAGING_SSH_KEY --project=aptivaai-dev | base64 -d > ~/.ssh/id_ed25519;
chmod 600 ~/.ssh/id_ed25519;
echo "🔑 SSH prerequisites installed";
echo "📦 CI_COMMIT_SHA: ${CI_COMMIT_SHA:-unset}";
TAG="${CI_COMMIT_SHA:-}";
if [ -z "$TAG" ]; then echo "❌ CI_COMMIT_SHA is blank. Aborting."; exit 1; fi;
TAG=$(echo "$TAG" | head -c 8);
echo "🚀 Deploying tag ${TAG} to staging";
ssh -o StrictHostKeyChecking=yes -i ~/.ssh/id_ed25519 jcoakley@10.128.0.12 \
"export IMG_TAG=${TAG}; \
cd /home/jcoakley/aptiva-staging-app; \
echo 'IMG_TAG = ${IMG_TAG}'; \
echo '→ Pulling containers'; \
docker compose pull; \
echo '→ Recreating services'; \
docker compose up -d --force-recreate --remove-orphans; \
echo '✅ Staging stack refreshed with tag ${IMG_TAG}'"
secrets:
- STAGING_SSH_KEY
- STAGING_KNOWN_HOSTS
environment:
CI_COMMIT_SHA: ${CI_COMMIT_SHA}
when:
event:
- push