name: Release on: push: tags: ["v*"] permissions: contents: write jobs: release: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: "24" cache: npm - name: 构建并打包 dist.zip run: | npm ci npm run build cd dist && zip -qr ../dist.zip . && cd .. ls -lh dist.zip - name: 提取 CHANGELOG 版本段作为 Release 描述 env: TAG: ${{ github.ref_name }} run: | VERSION="${TAG#v}" awk -v ver="$VERSION" '$0 ~ "^## \\[" ver "\\]" {flag=1; next} /^## \[/ && flag {exit} flag {print}' CHANGELOG.md > release-notes.md [ -s release-notes.md ] || echo "Release ${TAG}" > release-notes.md - name: 创建 Release 并上传 dist.zip uses: softprops/action-gh-release@v3 with: token: ${{ github.token }} body_path: release-notes.md files: dist.zip