From fdc11bf5298de895262eb4477c390265d0de098f Mon Sep 17 00:00:00 2001 From: gouki Date: Sun, 9 Aug 2026 18:17:54 +0000 Subject: [PATCH] =?UTF-8?q?fix(ci):=20=E5=8F=91=E5=B8=83=E4=BB=A4=E7=89=8C?= =?UTF-8?q?=E6=94=B9=E7=94=A8=E4=BB=93=E5=BA=93=20Secret=EF=BC=88=E5=86=85?= =?UTF-8?q?=E5=BB=BA=20GITEA=5FTOKEN=20=E6=9C=AA=E6=B3=A8=E5=85=A5?= =?UTF-8?q?=EF=BC=89=EF=BC=8C=E8=A1=A5=E5=85=85=20API=20=E5=93=8D=E5=BA=94?= =?UTF-8?q?=E8=AF=8A=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitea/workflows/server-deploy.yml | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/.gitea/workflows/server-deploy.yml b/.gitea/workflows/server-deploy.yml index 5aedafa..ec726f9 100644 --- a/.gitea/workflows/server-deploy.yml +++ b/.gitea/workflows/server-deploy.yml @@ -118,13 +118,16 @@ jobs: env: GITEA_SHA: ${{ gitea.sha }} GITEA_RUN_NUMBER: ${{ gitea.run_number }} + LUNAR_PUBLISH_TOKEN: ${{ secrets.LUNAR_PUBLISH_TOKEN }} run: | set -e VERSION="1.0.${GITEA_RUN_NUMBER}" TAG="server-v${VERSION}" API="https://gitea.neatcn.com/api/v1/repos/gouki/lunar-mini" - # Gitea Actions 内建的 job 令牌(仓库写权限) - AUTH="Authorization: token ${GITEA_TOKEN}" + # 优先用仓库 Secret 令牌(GITEA_TOKEN 内建令牌在部分 runner 版本不注入) + TOKEN="${LUNAR_PUBLISH_TOKEN:-$GITEA_TOKEN}" + test -n "$TOKEN" + AUTH="Authorization: token $TOKEN" # 幂等:同 tag 已存在则先删除(重跑场景);不依赖 python3,纯 grep/sed 解析 EXISTING=$(curl -sS -H "$AUTH" "$API/releases/tags/$TAG" | grep -o '"id":[0-9]*' | head -1 | cut -d: -f2 || true) @@ -132,10 +135,14 @@ jobs: curl -sS -X DELETE -H "$AUTH" "$API/releases/$EXISTING" -o /dev/null -w "删除旧 release: HTTP %{http_code}\n" fi - RELEASE_ID=$(curl -sS -X POST -H "$AUTH" -H "Content-Type: application/json" \ + CREATE_RESP=$(curl -sS -X POST -H "$AUTH" -H "Content-Type: application/json" \ -d "{\"tag_name\":\"$TAG\",\"name\":\"server $VERSION\",\"target_commitish\":\"main\",\"body\":\"CI 自动构建,commit ${GITEA_SHA:0:7}。doc79 由 deploy-watch.sh 拉取本附件完成部署。\"}" \ - "$API/releases" | grep -o '"id":[0-9]*' | head -1 | cut -d: -f2) - test -n "$RELEASE_ID" + "$API/releases") + RELEASE_ID=$(printf '%s' "$CREATE_RESP" | grep -o '"id":[0-9]*' | head -1 | cut -d: -f2 || true) + if [ -z "$RELEASE_ID" ]; then + echo "创建 release 失败,API 响应: $CREATE_RESP" + exit 1 + fi echo "Release created: id=$RELEASE_ID tag=$TAG" curl -sS -X POST -H "$AUTH" \