From c0bdb4fb5e4d6fa619bb13b6bc9bb302ebcbaa8a Mon Sep 17 00:00:00 2001 From: hanruo <552455797@qq.com> Date: Sun, 24 May 2026 14:37:11 +0800 Subject: [PATCH] fix --- .gitea/workflows/release.yml | 41 +++++++++++++++++++++++++++++------- 1 file changed, 33 insertions(+), 8 deletions(-) diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index 75a0e6e..3999a92 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -48,11 +48,36 @@ jobs: fi - name: Publish Gitea Release - uses: https://gitea.com/actions/release-action@main - with: - api_key: ${{ secrets.GITEA_TOKEN || secrets.GITHUB_TOKEN }} - tag: ${{ steps.tag.outputs.name }} - title: ${{ steps.tag.outputs.name }} - files: |- - release/app.mjs - release/install.sh + env: + TOKEN: ${{ secrets.GITEA_TOKEN || secrets.GITHUB_TOKEN }} + TAG: ${{ steps.tag.outputs.name }} + run: | + set -eu + API="${GITHUB_SERVER_URL}/api/v1/repos/${GITHUB_REPOSITORY}/releases" + parse_id='let d="";process.stdin.on("data",c=>d+=c).on("end",()=>{try{process.stdout.write(String(JSON.parse(d).id||""))}catch(e){}})' + + rid=$(curl -sS -X POST "$API" \ + -H "Authorization: token $TOKEN" \ + -H "Content-Type: application/json" \ + -d "{\"tag_name\":\"$TAG\",\"name\":\"$TAG\",\"draft\":false,\"prerelease\":false}" \ + | node -e "$parse_id") + + if [ -z "$rid" ]; then + echo "release may already exist, fetching by tag $TAG" + rid=$(curl -sS "$API/tags/$TAG" -H "Authorization: token $TOKEN" | node -e "$parse_id") + fi + + if [ -z "$rid" ]; then + echo "failed to create or find release for $TAG" >&2 + exit 1 + fi + echo "release id=$rid" + + for f in release/app.mjs release/install.sh; do + name=$(basename "$f") + echo "uploading $name" + curl -sS -X POST "$API/$rid/assets?name=$name" \ + -H "Authorization: token $TOKEN" \ + -F "attachment=@$f" \ + -o /dev/null -w " -> HTTP %{http_code}\n" + done