From 769fc58e59c321ae1f3725b46868a15893aa64d9 Mon Sep 17 00:00:00 2001 From: camin-mccluskey Date: Wed, 23 Aug 2023 21:21:02 +0100 Subject: [PATCH] Simplify publish action --- .github/workflows/publish.yml | 82 ++++++----------------------------- 1 file changed, 13 insertions(+), 69 deletions(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index cf0803d..84c240a 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -1,75 +1,19 @@ -name: Build, Test and Release +name: Publish to NPM + on: - workflow_dispatch: - inputs: - release-type: - description: 'Release type (one of): patch, minor, major, prepatch, preminor, premajor, prerelease' - required: true -jobs: release: + types: [published] + +jobs: + publish: runs-on: ubuntu-latest steps: - # Checkout project repository - - name: Checkout - uses: actions/checkout@v3 - - # Setup Node.js environment - - name: Setup Node.js - uses: actions/setup-node@v3 + - uses: actions/checkout@v3 + - uses: actions/setup-node@v3 with: - registry-url: https://registry.npmjs.org/ node-version: 'lts' - - # Install dependencies (required by Run tests step) - - name: Install dependencies - run: npm ci - - # Tests - - name: Run tests - run: npm test - - # Configure Git - - name: Git configuration - run: | - git config --global user.email "41898282+github-actions[bot]@users.noreply.github.com" - git config --global user.name "GitHub Actions" - - # Bump package version - # Use tag latest - - name: Bump release version - if: startsWith(github.event.inputs.release-type, 'pre') != true - run: | - echo "NEW_VERSION=$(npm --no-git-tag-version version $RELEASE_TYPE)" >> $GITHUB_ENV - echo "RELEASE_TAG=latest" >> $GITHUB_ENV - env: - RELEASE_TYPE: ${{ github.event.inputs.release-type }} - - # Bump package pre-release version - # Use tag beta for pre-release versions - - name: Bump pre-release version - if: startsWith(github.event.inputs.release-type, 'pre') - run: | - echo "NEW_VERSION=$(npm --no-git-tag-version --preid=beta version $RELEASE_TYPE - echo "RELEASE_TAG=beta" >> $GITHUB_ENV - env: - RELEASE_TYPE: ${{ github.event.inputs.release-type }} - - # Commit changes - - name: Commit package.json version bump and create tag - run: | - git add "package.json" - git commit -m "chore: release ${{ env.NEW_VERSION }}" - git tag ${{ env.NEW_VERSION }} - - # Publish version to public repository - - name: Publish - run: npm publish --verbose --access public --tag ${{ env.RELEASE_TAG }} - env: - NODE_AUTH_TOKEN: ${{ secrets.NPM_ACCESS_TOKEN }} - - # Push repository changes - - name: Push changes to repository - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: | - git push origin && git push --tags + - run: npm ci + - run: npm test + - uses: JS-DevTools/npm-publish@v2 + with: + token: ${{ secrets.NPM_ACCESS_TOKEN }}