👷 Add NPM package build and publish CI job #1
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build and publish package | |
on: | |
push: | |
branches: | |
- main | |
tags: | |
- '*' | |
pull_request: | |
workflow_dispatch: | |
jobs: | |
build: | |
name: Create production build | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-node@v4 | |
with: | |
node-version-file: '.nvmrc' | |
cache: npm | |
registry-url: https://registry.npmjs.org/ | |
scope: '@maykinmedia' | |
- name: Install dependencies | |
run: npm ci | |
- name: Build library | |
run: | | |
npm run build | |
- name: Publish to NPM | |
# do not publish in forks or non-tag pushes | |
if: startsWith(github.ref, 'refs/tags/') && github.repository_owner == 'maykinmedia' | |
run: | | |
# Strip git ref prefix from version | |
VERSION=$(echo "${{ github.ref }}" | sed -e 's,.*/\(.*\),\1,') | |
npm publish --access public --new-version="$VERSION" | |
env: | |
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} |