diff --git a/.woodpecker.yml b/.woodpecker.yml index 1ff3df5..3403a0a 100644 --- a/.woodpecker.yml +++ b/.woodpecker.yml @@ -1,20 +1,55 @@ steps: -- name: test-injection +# ── 1. Build & push images ────────────────────────────── +- name: build-and-push + image: docker:24.0-cli + privileged: true + volumes: + - name: docker-sock + path: /var/run/docker.sock + environment: + REG: us-central1-docker.pkg.dev/aptivaai-dev/aptiva-repo + commands: + - | + set -eu + TAG=$(echo "$CI_COMMIT_SHA" | head -c 8) + docker buildx create --use --name woodpecker || true + for svc in server1 server2 server3 nginx; do + docker buildx build -f Dockerfile.${svc} \ + -t ${REG}/${svc}:${TAG} --push . + done + when: + event: [push, manual] + branch: [master] + +# ── 2. Deploy to staging (runtime GCP secret injection) ── +- name: deploy-staging image: gcr.io/google.com/cloudsdktool/cloud-sdk:latest commands: - | set -eu mkdir -p ~/.ssh - # 🔐 Pull and decode SSH key - gcloud secrets versions access latest --secret="STAGING_SSH_KEY_B64" --project="aptivaai-dev" \ - | base64 -d > ~/.ssh/id_ed25519 - chmod 600 ~/.ssh/id_ed25519 - # 🔐 Pull and decode known_hosts - gcloud secrets versions access latest --secret="KNOWN_HOSTS_B64" --project="aptivaai-dev" \ - | base64 -d > ~/.ssh/known_hosts + gcloud secrets versions access latest --secret="KNOWN_HOSTS_B64" --project="aptivaai-dev" | base64 -d > ~/.ssh/known_hosts chmod 644 ~/.ssh/known_hosts - # ✅ Confirm successful decode - echo "Secrets pulled and decoded successfully." + # 🔐 Pull and decode SSH private key + gcloud secrets versions access latest --secret="STAGING_SSH_KEY_B64" --project="aptivaai-dev" | base64 -d > ~/.ssh/id_ed25519 + chmod 600 ~/.ssh/id_ed25519 + + # 🚀 Deploy via SSH + TAG=$(echo "$CI_COMMIT_SHA" | head -c 8) + ssh -i ~/.ssh/id_ed25519 -o StrictHostKeyChecking=yes jcoakley@10.128.0.12 <