diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 5c4e2e8..f9b3417 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -71,11 +71,39 @@ jobs: - name: Build release binary run: GOOS=linux GOARCH=amd64 go build -o spark-mcp-linux-amd64 ./main.go - - name: Upload release asset - uses: softprops/action-gh-release@v2 - with: - files: spark-mcp-linux-amd64 - generate_release_notes: true + - name: Upload release asset via Gitea API + env: + GITEA_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + # 1. 获取当前 Tag 名字 (例如 v0.0.1-beta) + TAG_NAME="${{ github.ref_name }}" + + echo "正在为 Tag ${TAG_NAME} 创建 Gitea Release..." + + # 2. 调用 Gitea API 创建一个 Release 并获取其 ID + # 注意:${{ github.api_url }} 会自动解析为你本地 Gitea 的 API 地址 (如 http://your-gitea/api/v1) + RELEASE_ID=$(curl -X POST "${{ github.api_url }}/repos/${{ github.repository }}/releases" \ + -H "accept: application/json" \ + -H "authorization: token ${GITEA_TOKEN}" \ + -H "Content-Type: application/json" \ + -d "{ + \"tag_name\": \"${TAG_NAME}\", + \"target_commitish\": \"${{ github.sha }}\", + \"name\": \"Release ${TAG_NAME}\", + \"body\": \"Auto generated release assets.\", + \"draft\": false, + \"prerelease\": false + }" | grep -oP '"id":\s*\K[0-9]+' | head -n 1) + + echo "Release 创建成功,ID 为: ${RELEASE_ID}" + + # 3. 将你的二进制文件上传到该 Release 中 + echo "开始上传文件 spark-mcp-linux-amd64 ..." + curl -X POST "${{ github.api_url }}/repos/${{ github.repository }}/releases/${RELEASE_ID}/assets" \ + -H "accept: application/json" \ + -H "authorization: token ${GITEA_TOKEN}" \ + -H "Content-Type: multipart/form-data" \ + -F "attachment=@spark-mcp-linux-amd64" - name: Notify release via Bark if: success()