name: Deploy Server on: push: tags: - 'server-v[0-9]*.[0-9]*.[0-9]*' concurrency: group: deploy-server cancel-in-progress: false jobs: release-deploy-server: runs-on: mac env: GOPROXY: https://goproxy.cn,direct PUB_HOSTED_URL: https://pub.flutter-io.cn FLUTTER_STORAGE_BASE_URL: https://storage.flutter-io.cn steps: - uses: actions/checkout@v4 - name: Provision (idempotent — auto-runs if host not initialized) run: sh scripts/ci/provision-mac.sh - name: Compile (Linux backend + configs) run: sh scripts/ci/compile-backend.sh "${{ gitea.ref_name }}" - name: Test (go test) run: sh scripts/ci/test.sh server - name: Release env: FORGEJO_TOKEN: ${{ secrets.FORGEJO_TOKEN }} FORGEJO_URL: ${{ secrets.FORGEJO_URL }} GITEA_REPOSITORY: ${{ gitea.repository }} run: sh scripts/ci/release-server.sh "${{ gitea.ref_name }}" # 2026-07-02 割接后阿里机即线上主轨(EC2 jiu 已停用,Deploy→EC2 轨已移除, # 绝不能再部署 EC2——那会把停用的后端对着过时旧库重新拉起)。 - name: Deploy → Ali env: FORGEJO_TOKEN: ${{ secrets.FORGEJO_TOKEN }} FORGEJO_URL: ${{ secrets.FORGEJO_URL }} GITEA_REPOSITORY: ${{ gitea.repository }} DEPLOY_TARGET: ali DEPLOY_SSH_KEY: ${{ secrets.ALI_SSH_KEY }} DEPLOY_HOST: ${{ secrets.ALI_HOST }} DEPLOY_USER: ${{ secrets.ALI_USER }} run: sh scripts/ci/deploy-server.sh "${{ gitea.ref_name }}" - name: Notify if: always() env: TELEGRAM_TOKEN: ${{ secrets.TELEGRAM_TOKEN }} TELEGRAM_CHAT_ID: ${{ secrets.TELEGRAM_CHAT_ID }} run: sh scripts/ci/notify.sh "${{ gitea.ref_name }}" "${{ job.status }}"