From 17296b9d008966350d4c5c0e2395d126bab6a77d Mon Sep 17 00:00:00 2001 From: "peng.li24" <734991033@qq.com> Date: Mon, 14 Sep 2026 18:50:03 +0800 Subject: [PATCH] =?UTF-8?q?ci(release):=20=E5=8A=A0=20workflow=5Fdispatch?= =?UTF-8?q?=20=E6=89=8B=E5=8A=A8=E9=87=8D=E8=B7=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 排障用:tag 已存在但 release 缺失时,删 tag 再推同 sha **不会**重新触发 workflow(实测无新 run)。加手动入口: - workflow_dispatch 带 tag 输入(须已存在) - checkout 指定该 tag;RELEASE_TAG 优先于 GITHUB_REF_NAME Co-Authored-By: Claude Code --- .github/workflows/release.yml | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 95c73b6..40a56d7 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -2,6 +2,12 @@ name: release-abi on: push: tags: ['v*'] + # 手动重跑(tag 已存在但 release 缺失时用;tag 删+重建同 sha 不会重新触发) + workflow_dispatch: + inputs: + tag: + description: 要发布的 tag(须已存在,如 v0.1.5) + required: true permissions: contents: write jobs: @@ -9,8 +15,10 @@ jobs: runs-on: ubuntu-latest env: GH_TOKEN: ${{ github.token }} + RELEASE_TAG: ${{ inputs.tag || github.ref_name }} steps: - uses: actions/checkout@v4 + with: { ref: "${{ inputs.tag || github.ref }}" } - name: 下载 ABI 依赖 env: { GH_TOKEN: "${{ secrets.GITHUB_TOKEN }}" } run: ./ci/deps.sh @@ -19,7 +27,7 @@ jobs: - name: 打包 ABI 产物 run: | set -euo pipefail - v="${GITHUB_REF_NAME}" + v="${RELEASE_TAG:-${GITHUB_REF_NAME}}" d="slotsboxmalloc-abi-$v-linux-x86_64" # 本库是 header-only(#define SLOTSBOXMALLOC_IMPLEMENTATION 单头文件): # 只发头,不发 .so —— 消费者把实现体编进自己的 TU。 @@ -31,4 +39,4 @@ jobs: tar tzf "$d.tar.gz" sha256sum "$d.tar.gz" > SHA256SUMS - name: 发布 release - run: gh release create "${GITHUB_REF_NAME}" slotsboxmalloc-abi-*.tar.gz SHA256SUMS --generate-notes + run: gh release create "${RELEASE_TAG:-${GITHUB_REF_NAME}}" slotsboxmalloc-abi-*.tar.gz SHA256SUMS --generate-notes