dev1/.woodpecker.yml
2025-07-31 11:24:43 +00:00

60 lines
1.5 KiB
YAML

kind: pipeline
type: docker
name: build-and-deploy
workspace:
base: /woodpecker
path: src
clone:
depth: 50
steps:
# ── 1. Build & push images ──────────────────────────────
- name: build-and-push
image: docker:24.0-cli
privileged: true
volumes:
- name: docker-sock
path: /var/run/docker.sock
commands:
- |
set -eu
REG=us-central1-docker.pkg.dev/aptivaai-dev/aptiva-repo
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 ────────────────────────────────
- name: deploy-staging
image: appleboy/drone-ssh
settings:
host: 10.128.0.12
port: 22
username: jcoakley
key:
from_secret: STAGING_SSH_KEY # ← the only secrets we need
known_hosts:
from_secret: STAGING_KNOWN_HOSTS
script:
- |
set -eu
TAG=$(echo "$CI_COMMIT_SHA" | head -c 8)
cd /opt/aptiva-staging-app
IMG_TAG=$TAG docker compose pull
IMG_TAG=$TAG docker compose up -d --force-recreate --remove-orphans
when:
event: [push, manual]
branch: [master]
volumes:
- name: docker-sock
host:
path: /var/run/docker.sock