You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
50 lines
2.1 KiB
YAML
50 lines
2.1 KiB
YAML
version: '3'
|
|
|
|
includes:
|
|
prod:
|
|
taskfile: ./deploy-prod.yml
|
|
flatten: true
|
|
|
|
tasks:
|
|
deploy-dev:
|
|
desc: Deploy develop branch to development host via SSH + Docker Compose
|
|
cmds:
|
|
- |
|
|
set -eu
|
|
: "${DEPLOY_HOST:?DEPLOY_HOST is required}"
|
|
: "${DEPLOY_USER:?DEPLOY_USER is required}"
|
|
: "${DEPLOY_PATH:?DEPLOY_PATH is required}"
|
|
: "${DEPLOY_REF:?DEPLOY_REF is required}"
|
|
|
|
ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null "${DEPLOY_USER}@${DEPLOY_HOST}" "
|
|
set -euo pipefail
|
|
cd '${DEPLOY_PATH}'
|
|
PREV_REF=\$(git rev-parse HEAD)
|
|
|
|
rollback() {
|
|
echo 'Deployment failed, rolling back to previous ref' >&2
|
|
git checkout -f \"\${PREV_REF}\"
|
|
docker compose -f infrastructure/prod/docker-compose.yml --env-file infrastructure/prod/.env.prod up -d --build
|
|
}
|
|
|
|
trap rollback ERR
|
|
|
|
git fetch --all --tags --prune
|
|
git checkout -f '${DEPLOY_REF}'
|
|
git pull --ff-only origin '${DEPLOY_REF}'
|
|
|
|
docker compose -f infrastructure/prod/docker-compose.yml --env-file infrastructure/prod/.env.prod config > /tmp/knowfoolery-compose-dev.txt
|
|
docker compose -f infrastructure/prod/docker-compose.yml --env-file infrastructure/prod/.env.prod build
|
|
docker compose -f infrastructure/prod/docker-compose.yml --env-file infrastructure/prod/.env.prod up -d
|
|
|
|
for target in 8080 8081 8082 8083 8085 18086; do
|
|
curl -fsS \"http://localhost:\\${target}/health\" > /tmp/knowfoolery-health-\\${target}.txt
|
|
curl -fsS \"http://localhost:\\${target}/ready\" > /tmp/knowfoolery-ready-\\${target}.txt
|
|
done
|
|
|
|
curl -fsS http://localhost:8086/health > /tmp/knowfoolery-smoke-health.txt
|
|
curl -fsS http://localhost:8086/ready > /tmp/knowfoolery-smoke-ready.txt
|
|
curl -fsS http://localhost:8086/api/v1/leaderboard/top10 > /tmp/knowfoolery-smoke-top10.txt
|
|
curl -fsS http://localhost:8086/api/v1/leaderboard/stats > /tmp/knowfoolery-smoke-stats.txt
|
|
"
|