fix: Gitea 版本检查改用 packages API,Release 增加去重
Node.js Build / build (push) Has been skipped

This commit is contained in:
2026-07-16 14:30:54 +08:00
parent ed4f144e26
commit d6d06e90a6
+7 -2
View File
@@ -49,8 +49,8 @@ jobs:
run: | run: |
npm config set //gitea:3000/api/packages/windychen/npm/:_authToken ${{ secrets.NPM_GITEA_TOKEN }} npm config set //gitea:3000/api/packages/windychen/npm/:_authToken ${{ secrets.NPM_GITEA_TOKEN }}
VERSION=$(node -p "require('./package.json').version") VERSION=$(node -p "require('./package.json').version")
HTTP_CODE=$(curl -s -o /dev/null -w "%{http_code}" http://gitea:3000/api/packages/windychen/npm/windychen-utils/$VERSION) EXISTS=$(curl -s "http://gitea:3000/api/v1/packages/windychen?q=windychen-utils" -H "Authorization: token ${{ secrets.NPM_GITEA_TOKEN }}" | grep -c "\"version\":\"$VERSION\"")
if [ "$HTTP_CODE" = "200" ]; then if [ "$EXISTS" -gt 0 ]; then
echo "Gitea: version $VERSION already exists, skipping." echo "Gitea: version $VERSION already exists, skipping."
echo "Gitea|skipped|版本 ${VERSION} 已存在" >> /tmp/publish_result.txt echo "Gitea|skipped|版本 ${VERSION} 已存在" >> /tmp/publish_result.txt
else else
@@ -66,11 +66,16 @@ jobs:
if: always() && steps.publish-gitea.outcome == 'success' if: always() && steps.publish-gitea.outcome == 'success'
run: | run: |
VERSION=$(node -p "require('./package.json').version") VERSION=$(node -p "require('./package.json').version")
EXISTS=$(curl -s "http://gitea:3000/api/v1/repos/windychen/windyChenUtils/releases/tags/v${VERSION}" -H "Authorization: token ${{ secrets.NPM_GITEA_TOKEN }}" | grep -c "\"tag_name\"")
if [ "$EXISTS" = "0" ]; then
curl -s -X POST \ curl -s -X POST \
"http://gitea:3000/api/v1/repos/windychen/windyChenUtils/releases" \ "http://gitea:3000/api/v1/repos/windychen/windyChenUtils/releases" \
-H "Authorization: token ${{ secrets.NPM_GITEA_TOKEN }}" \ -H "Authorization: token ${{ secrets.NPM_GITEA_TOKEN }}" \
-H "Content-Type: application/json" \ -H "Content-Type: application/json" \
-d "{\"tag_name\":\"v${VERSION}\",\"name\":\"v${VERSION}\",\"body\":\"## windychen-utils v${VERSION}\n\n- 发布到 Verdaccio\n- 发布到 Gitea Packages\",\"target_commitish\":\"main\"}" -d "{\"tag_name\":\"v${VERSION}\",\"name\":\"v${VERSION}\",\"body\":\"## windychen-utils v${VERSION}\n\n- 发布到 Verdaccio\n- 发布到 Gitea Packages\",\"target_commitish\":\"main\"}"
else
echo "Release v${VERSION} already exists, skipping."
fi
- name: Notify DingTalk - name: Notify DingTalk
if: always() if: always()