diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 7bfa20f..0338c35 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -4,13 +4,19 @@ on: release: types: - published + workflow_dispatch: + inputs: + tag: + description: Existing release tag to publish + required: true + type: string permissions: contents: write id-token: write concurrency: - group: release-${{ github.event.release.tag_name }} + group: release-${{ github.event.release.tag_name || inputs.tag }} cancel-in-progress: false jobs: @@ -24,7 +30,7 @@ jobs: - name: Checkout release tag uses: actions/checkout@v4 with: - ref: ${{ github.event.release.tag_name }} + ref: ${{ github.event.release.tag_name || inputs.tag }} - name: Setup Node.js uses: actions/setup-node@v4 @@ -37,7 +43,7 @@ jobs: - name: Check release version env: - RELEASE_TAG: ${{ github.event.release.tag_name }} + RELEASE_TAG: ${{ github.event.release.tag_name || inputs.tag }} run: | node --input-type=module -e ' import { readFileSync } from "node:fs" @@ -79,9 +85,19 @@ jobs: - name: Create checksums run: sha256sum release/* > release/SHA256SUMS + - name: Upload GitHub Release assets + uses: softprops/action-gh-release@v2 + with: + tag_name: ${{ github.event.release.tag_name || inputs.tag }} + files: | + release/*.tgz + release/*.zip + release/SHA256SUMS + overwrite_files: true + - name: Publish npm package env: - IS_PRERELEASE: ${{ github.event.release.prerelease }} + IS_PRERELEASE: ${{ github.event.release.prerelease || false }} run: | PACKAGE_SPEC=$(node -p "const pkg = require('./package.json'); pkg.name + '@' + pkg.version") @@ -95,13 +111,4 @@ jobs: DIST_TAG=next fi - npm publish release/*.tgz --access public --provenance --tag "$DIST_TAG" - - - name: Upload GitHub Release assets - uses: softprops/action-gh-release@v2 - with: - files: | - release/*.tgz - release/*.zip - release/SHA256SUMS - overwrite_files: true + npm publish ./release/*.tgz --access public --provenance --tag "$DIST_TAG"