--- kind: pipeline type: docker name: build-and-deploy workspace: base: /woodpecker path: src clone: depth: 50 volumes: - name: docker-sock host: path: /var/run/docker.sock steps: - 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] - name: deploy-staging image: appleboy/drone-ssh settings: host: 10.128.0.12 port: 22 username: jcoakley key: from_secret: STAGING_SSH_KEY 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]