From 3cfe131c7116edaa554873d788e2b414906d572c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=ABl=20Galeran?= Date: Sun, 5 Nov 2023 13:35:56 +0100 Subject: [PATCH] chore: Update release.yml --- .github/workflows/release.yml | 63 +++++++++++++++++++++++++++-------- 1 file changed, 49 insertions(+), 14 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 98616276..7a67c556 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,25 +1,60 @@ -name: release +name: Publish package to npm +run-name: npm - publish ${{ github.event.inputs.version }} to ${{ github.event.inputs.npmDistTag }} on: - push: - tags: - - '*' + workflow_dispatch: + inputs: + version: + required: true + description: 'SemVer version for npm. (i.e. 1.0.0)' + npmDistTag: + required: true + default: 'latest' + dryRun: + description: 'Do a dry run (does not publish packages)' + type: boolean jobs: publish: + timeout-minutes: 25 runs-on: ubuntu-latest + permissions: + # required for publishing to npm with --provenance + # see https://docs.npmjs.com/generating-provenance-statements + id-token: write steps: - - uses: actions/checkout@v3 - - uses: actions/setup-node@v2 + - name: Print input + env: + THE_INPUT: '${{ toJson(github.event.inputs) }}' + run: | + echo $THE_INPUT + + - uses: actions/checkout@v4 + + - uses: actions/setup-node@v3 with: - node-version: 18 + node-version: 20 registry-url: 'https://registry.npmjs.org' - - run: npm install - - run: npm run build - - run: npm run dist - - run: npm run test - - run: npm pkg set name=$(basename ${{github.repository}}) - - run: npm pkg set version=${{github.ref_name}} - - run: npm publish --access public + + - name: Install dependencies + run: npm ci + + - name: Build + run: npm run build + + - name: Make dist files + run: npm run dist + + - name: Run tests + run: npm run test + + - name: Set version in package*.json + run: npm pkg set version=${{ github.event.inputs.version }} + + - name: Publish package to npm + run: npm publish --access public --tag ${{ github.event.inputs.npmDistTag }} ${{ env.DRY_RUN }} env: NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} + # https://docs.npmjs.com/generating-provenance-statements + NPM_CONFIG_PROVENANCE: true + DRY_RUN: ${{ github.event.inputs.dryRun == 'true' && '--dry-run' || '' }}