Files

41 lines
1.1 KiB
YAML

name: Deploy Production
on:
push:
branches:
- main
workflow_dispatch:
jobs:
deploy:
runs-on: tencent-prod
timeout-minutes: 60
env:
COMPOSE_PROJECT_NAME: zhixing-system
ZHIXING_WEB_PORT: "8111"
ZHIXING_DATABASE_URL: ${{ secrets.ZHIXING_DATABASE_URL }}
ZHIXING_TUSHARE_TOKEN: ${{ secrets.ZHIXING_TUSHARE_TOKEN }}
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Validate production compose
run: |
docker compose -f docker-compose.prod.yml config --quiet
docker compose -f docker-compose.prod.yml --profile jobs config --quiet
- name: Build and deploy services
run: docker compose -f docker-compose.prod.yml up -d --build --remove-orphans
- name: Run database migrations
run: docker compose -f docker-compose.prod.yml --profile jobs run --rm --build migrate
- name: Verify web service
run: docker compose -f docker-compose.prod.yml exec -T web wget -q -O - http://127.0.0.1/healthz
- name: Show deployed services
if: always()
run: docker compose -f docker-compose.prod.yml ps