| name: Sync Release to Gitee |
|
|
| permissions: |
| contents: read |
|
|
| on: |
| workflow_dispatch: |
| inputs: |
| tag_name: |
| description: 'Release Tag to sync (e.g. v1.0.0)' |
| required: true |
| type: string |
|
|
| |
| env: |
| GITEE_OWNER: 'QuantumNous' |
| GITEE_REPO: 'new-api' |
|
|
| jobs: |
| sync-to-gitee: |
| runs-on: sync |
| steps: |
| - name: Checkout |
| uses: actions/checkout@v3 |
| with: |
| fetch-depth: 0 |
|
|
| - name: Get Release Info |
| id: release_info |
| env: |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |
| TAG_NAME: ${{ github.event.inputs.tag_name }} |
| run: | |
| # 获取 release 信息 |
| RELEASE_INFO=$(gh release view "$TAG_NAME" --json name,body,tagName,targetCommitish) |
| |
| RELEASE_NAME=$(echo "$RELEASE_INFO" | jq -r '.name') |
| TARGET_COMMITISH=$(echo "$RELEASE_INFO" | jq -r '.targetCommitish') |
| |
| |
| { |
| echo "release_name=$RELEASE_NAME" |
| echo "target_commitish=$TARGET_COMMITISH" |
| echo "release_body<<EOF" |
| echo "$RELEASE_INFO" | jq -r '.body' |
| echo "EOF" |
| } >> $GITHUB_OUTPUT |
| |
| |
| gh release download "$TAG_NAME" --dir ./release_assets || echo "No assets to download" |
| |
| |
| ls -la ./release_assets/ || echo "No assets directory" |
|
|
| - name: Create Gitee Release |
| id: create_release |
| uses: nICEnnnnnnnLee/action-gitee-release@v2.0.0 |
| with: |
| gitee_action: create_release |
| gitee_owner: ${{ env.GITEE_OWNER }} |
| gitee_repo: ${{ env.GITEE_REPO }} |
| gitee_token: ${{ secrets.GITEE_TOKEN }} |
| gitee_tag_name: ${{ github.event.inputs.tag_name }} |
| gitee_release_name: ${{ steps.release_info.outputs.release_name }} |
| gitee_release_body: ${{ steps.release_info.outputs.release_body }} |
| gitee_target_commitish: ${{ steps.release_info.outputs.target_commitish }} |
|
|
| - name: Upload Assets to Gitee |
| if: hashFiles('release_assets/*') != '' |
| uses: nICEnnnnnnnLee/action-gitee-release@v2.0.0 |
| with: |
| gitee_action: upload_asset |
| gitee_owner: ${{ env.GITEE_OWNER }} |
| gitee_repo: ${{ env.GITEE_REPO }} |
| gitee_token: ${{ secrets.GITEE_TOKEN }} |
| gitee_release_id: ${{ steps.create_release.outputs.release-id }} |
| gitee_upload_retry_times: 3 |
| gitee_files: | |
| release_assets/* |
| |
| - name: Cleanup |
| if: always() |
| run: | |
| rm -rf release_assets/ |
| |
| - name: Summary |
| if: success() |
| run: | |
| echo "✅ Successfully synced release ${{ github.event.inputs.tag_name }} to Gitee!" |
| echo "🔗 Gitee Release URL: https://gitee.com/${{ env.GITEE_OWNER }}/${{ env.GITEE_REPO }}/releases/tag/${{ github.event.inputs.tag_name }}" |
| |
|
|