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