40 lines
1.6 KiB
YAML
40 lines
1.6 KiB
YAML
steps:
|
||
ssh-test: # keep the name, keep the image
|
||
image: google/cloud-sdk:latest
|
||
commands:
|
||
- |
|
||
#!/usr/bin/env bash
|
||
set -euo pipefail
|
||
|
||
mkdir -p ~/.ssh
|
||
|
||
# ── Install known‑hosts from Secret Manager ─────────────────
|
||
gcloud secrets versions access latest \
|
||
--secret=STAGING_KNOWN_HOSTS --project=aptivaai-dev \
|
||
| base64 -d > ~/.ssh/known_hosts
|
||
chmod 644 ~/.ssh/known_hosts
|
||
|
||
# ── Install private key ────────────────────────────────────
|
||
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"
|
||
|
||
# ── Tag = first 8 chars of the commit SHA that triggered CI ─
|
||
TAG=$(echo "${CI_COMMIT_SHA:-$DRONE_COMMIT_SHA}" | head -c 8)
|
||
echo "🚀 Deploying tag ${TAG} to staging"
|
||
|
||
# ── SSH into the staging VM and refresh the stack ──────────
|
||
ssh -o StrictHostKeyChecking=yes \
|
||
-i ~/.ssh/id_ed25519 \
|
||
jcoakley@10.128.0.12 \
|
||
"set -euo pipefail; \
|
||
cd /opt/aptiva-staging-app; \
|
||
echo 'Pulling containers'; \
|
||
IMG_TAG=${TAG} docker compose pull; \
|
||
echo 'Re‑creating services'; \
|
||
IMG_TAG=${TAG} docker compose up -d --force-recreate --remove-orphans; \
|
||
echo '✅ Staging stack refreshed with tag ${TAG}'"
|