diff --git a/.github/workflows/release-manual.yml b/.github/workflows/release-manual.yml deleted file mode 100644 index 0a23d31..0000000 --- a/.github/workflows/release-manual.yml +++ /dev/null @@ -1,24 +0,0 @@ -name: Release (manual) -on: - workflow_dispatch: -jobs: - release: - runs-on: ubuntu-latest - permissions: - id-token: write # Required for trusted publishing via OIDC (https://docs.npmjs.com/trusted-publishers) - steps: - - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - uses: actions/setup-node@v4 - with: - node-version: lts/* - - - name: Install dependencies - run: yarn - - - name: Build - run: yarn build - - - name: Publish to NPM - run: npm run release:publish-manual diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index e94bf0a..ccd87d9 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -2,16 +2,22 @@ name: Release on: push: branches: [main] + workflow_dispatch: + jobs: release: runs-on: ubuntu-latest permissions: - id-token: write # Required for trusted publishing via OIDC (https://docs.npmjs.com/trusted-publishers) - if: "contains(github.event.head_commit.message, 'chore(release): publish')" + id-token: write + # Only gate push events by commit message; allow workflow_dispatch always + if: > + github.event_name == 'workflow_dispatch' || + (github.event_name == 'push' && contains(github.event.head_commit.message, 'chore(release): publish')) steps: - uses: actions/checkout@v4 with: fetch-depth: 0 + - uses: actions/setup-node@v4 with: node-version: lts/* @@ -22,5 +28,11 @@ jobs: - name: Build run: yarn build - - name: Publish to NPM + # Choose publish command based on the event type + - name: Publish to NPM (push) + if: github.event_name == 'push' run: npm run release:publish + + - name: Publish to NPM (manual) + if: github.event_name == 'workflow_dispatch' + run: npm run release:publish-manual