name: Sync release to Gitee # Manually mirror a published GitHub release's assets to the matching Gitee # release. Use this to repair a release whose Gitee mirror is incomplete (e.g. # the Release job timed out mid-upload). It runs ONLY the idempotent Gitee sync # step — it does not run GoReleaser and does not touch the GitHub release, so # there is no release outage. The sync script skips assets already on Gitee, so # this only uploads what is missing. on: workflow_dispatch: inputs: version: description: "Release tag to mirror to Gitee (e.g. v1.0.42)" required: true type: string permissions: contents: read jobs: sync-gitee: runs-on: ubuntu-latest # Each step has its own ceiling. Their 115-minute sum leaves five minutes # for runner scheduling/teardown inside this 120-minute job deadline. timeout-minutes: 120 steps: - name: Check out repository uses: actions/checkout@v4 timeout-minutes: 5 - name: Download GitHub release assets timeout-minutes: 10 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | set -eu mkdir -p dist gh release download "${{ inputs.version }}" \ --repo "${{ github.repository }}" \ --dir dist \ --pattern 'dws-*' \ --pattern 'checksums.txt' \ --clobber ls -la dist - name: Mirror release to Gitee (China) # Idempotent: uploads only assets not already present on the Gitee release. timeout-minutes: 100 run: ./scripts/release/sync-to-gitee.sh env: VERSION: ${{ inputs.version }} GITEE_TOKEN: ${{ secrets.GITEE_TOKEN }} GITEE_USER: ${{ secrets.GITEE_USER }} GITEE_REPO: ${{ secrets.GITEE_REPO }}