21 lines
892 B
YAML
21 lines
892 B
YAML
name: Deploy production
|
|
on:
|
|
workflow_dispatch:
|
|
jobs:
|
|
deploy:
|
|
# This unique host label prevents production from landing on another global runner.
|
|
runs-on: coffeechat-production
|
|
concurrency: coffeechat-production
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: Test
|
|
run: docker run --rm -v "$PWD:/app" -w /app node:22-alpine sh -c "npm ci && npm run check && npm test"
|
|
- name: Load production environment
|
|
run: test -f /opt/coffeechat/.env && cp /opt/coffeechat/.env .env
|
|
- name: Build and migrate
|
|
run: docker compose --env-file .env -f deploy/docker-compose.yml build --pull
|
|
- name: Start production
|
|
run: docker compose --env-file .env -f deploy/docker-compose.yml up -d --remove-orphans
|
|
- name: Verify health
|
|
run: curl --fail --retry 12 --retry-delay 5 http://127.0.0.1:${COFFEECHAT_PORT:-3100}/health
|