From d6d06e90a62e2ade6e2ec69e8d3d4e613bb7be3d Mon Sep 17 00:00:00 2001 From: windychen Date: Thu, 16 Jul 2026 14:30:54 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20Gitea=20=E7=89=88=E6=9C=AC=E6=A3=80?= =?UTF-8?q?=E6=9F=A5=E6=94=B9=E7=94=A8=20packages=20API=EF=BC=8CRelease=20?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=8E=BB=E9=87=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitea/workflows/build.yaml | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/.gitea/workflows/build.yaml b/.gitea/workflows/build.yaml index c3fecf1..de2599e 100644 --- a/.gitea/workflows/build.yaml +++ b/.gitea/workflows/build.yaml @@ -49,8 +49,8 @@ jobs: run: | npm config set //gitea:3000/api/packages/windychen/npm/:_authToken ${{ secrets.NPM_GITEA_TOKEN }} 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) - if [ "$HTTP_CODE" = "200" ]; then + 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 [ "$EXISTS" -gt 0 ]; then echo "Gitea: version $VERSION already exists, skipping." echo "Gitea|skipped|版本 ${VERSION} 已存在" >> /tmp/publish_result.txt else @@ -66,11 +66,16 @@ jobs: if: always() && steps.publish-gitea.outcome == 'success' run: | VERSION=$(node -p "require('./package.json').version") - curl -s -X POST \ - "http://gitea:3000/api/v1/repos/windychen/windyChenUtils/releases" \ - -H "Authorization: token ${{ secrets.NPM_GITEA_TOKEN }}" \ - -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\"}" + 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 \ + "http://gitea:3000/api/v1/repos/windychen/windyChenUtils/releases" \ + -H "Authorization: token ${{ secrets.NPM_GITEA_TOKEN }}" \ + -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\"}" + else + echo "Release v${VERSION} already exists, skipping." + fi - name: Notify DingTalk if: always()