dev1/.woodpecker.yml
2025-07-30 19:43:38 +00:00

71 lines
1.7 KiB
YAML

# .woodpecker.yml ── dev1 ➜ staging
kind: pipeline
type: docker
name: build-and-deploy
workspace:
base: /woodpecker
path: src
clone:
depth: 50
############################################################
# 1. Build & push the images
############################################################
steps:
- name: build-and-push
image: docker:24.0.9-dind
privileged: true
volumes:
- name: docker-sock
path: /var/run/docker.sock
settings:
registry: us-central1-docker.pkg.dev
username: _json_key
password:
from_secret: GCP_SA_JSON
commands:
- |
set -e
REG=us-central1-docker.pkg.dev/aptivaai-dev/aptiva-repo
TAG=${CI_COMMIT_SHA::8}
docker buildx create --use --name woodpecker || true
for svc in server1 server2 server3 nginx ; do
docker buildx build \
--file Dockerfile.${svc} \
--tag ${REG}/${svc}:${TAG} \
--push .
done
when:
event:
- push
- manual
branch:
- master
############################################################
# 2. Rolling update on staging
############################################################
- name: deploy-staging
image: appleboy/drone-ssh
settings:
host: 10.128.0.12 # internal IP of staging VM
port: 22
username: jcoakley
key:
from_secret: STAGING_SSH_KEY
known_hosts:
from_secret: STAGING_KNOWN_HOSTS
script:
- cd /opt/aptiva-staging-app
- ./refresh_secrets.sh
- IMG_TAG=${CI_COMMIT_SHA::8} docker compose pull
- IMG_TAG=${CI_COMMIT_SHA::8} docker compose up -d --remove-orphans
when:
event:
- push
- manual
branch:
- master