自动同步
All checks were successful
Release / windows-x86_64-gnu (push) Successful in 1h5m41s

This commit is contained in:
2026-06-19 11:25:51 +08:00
Unverified
parent 6ce6598a0e
commit 0f8dfa71a9
6 changed files with 341 additions and 22 deletions

View File

@@ -142,11 +142,37 @@ jobs:
- name: Publish Gitea release
if: startsWith(github.ref, 'refs/tags/') || github.ref == 'refs/heads/main'
uses: https://gitea.com/actions/release-action@main
with:
files: ${{ env.ASSET }}
tag_name: ${{ env.RELEASE_TAG }}
name: ${{ env.RELEASE_NAME }}
api_key: ${{ secrets.GITHUB_TOKEN }}
draft: false
prerelease: false
env:
GITEA_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
set -eu
TAG="${{ env.RELEASE_TAG }}"
NAME="${{ env.RELEASE_NAME }}"
FILE="${{ env.ASSET }}"
# Try GITHUB_SERVER_URL first, fall back to GITEA_URL or localhost
BASE_URL="${GITHUB_SERVER_URL:-${GITEA_URL:-http://localhost:3000}}"
API="${BASE_URL}/api/v1"
REPO="${GITHUB_REPOSITORY:-$(git remote get-url origin | sed 's#.*[:/]\([^/]*/[^/]*\)\.git#\1#')}"
echo "Creating release ${TAG} on ${API}/repos/${REPO}..."
RELEASE_ID=$(curl -s -w '%{http_code}' -X POST \
-H "Authorization: token ${GITEA_TOKEN}" \
-H "Content-Type: application/json" \
"${API}/repos/${REPO}/releases" \
-d "{\"tag_name\":\"${TAG}\",\"name\":\"${NAME}\",\"draft\":false,\"prerelease\":false}" \
-o /tmp/release.json | tail -c3)
if [ "$RELEASE_ID" = "409" ]; then
echo "Release ${TAG} already exists, updating..."
curl -s -X PATCH \
-H "Authorization: token ${GITEA_TOKEN}" \
-H "Content-Type: application/json" \
"${API}/repos/${REPO}/releases/tags/${TAG}" \
-d "{\"name\":\"${NAME}\"}" > /dev/null
fi
ATTACH_URL="${API}/repos/${REPO}/releases/tags/${TAG}/assets"
echo "Uploading ${FILE} to ${ATTACH_URL}..."
curl -s -X POST \
-H "Authorization: token ${GITEA_TOKEN}" \
-H "Content-Type: application/zip" \
--data-binary "@${FILE}" \
"${ATTACH_URL}?filename=$(basename ${FILE})"
echo "✅ Release ${TAG} published"