Skip to content

Release CommitReel to npm #2

Release CommitReel to npm

Release CommitReel to npm #2

name: Release CommitReel to npm
on:
workflow_dispatch:
inputs:
dry_run:
description: 'Dry run (build but do not publish)'
required: false
type: boolean
default: false
push:
tags:
- 'commitreel-v*'
jobs:
test:
runs-on: ubuntu-latest
defaults:
run:
working-directory: repl-tape
steps:
- uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 20
registry-url: 'https://registry.npmjs.org'
- name: Install dependencies
run: npm ci
- name: Sanity check
run: node ./bin/commitreel.js --help
- name: Package dry run
run: npm pack --dry-run
release:
runs-on: ubuntu-latest
needs: test
defaults:
run:
working-directory: repl-tape
permissions:
contents: write
id-token: write
steps:
- uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 20
registry-url: 'https://registry.npmjs.org'
- name: Install dependencies
run: npm ci
- name: Publish to npm
if: ${{ !inputs.dry_run }}
run: npm publish --provenance --access public
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
- name: Dry run publish
if: ${{ inputs.dry_run }}
run: npm publish --dry-run
- name: Create GitHub Release
if: startsWith(github.ref, 'refs/tags/commitreel-v')
uses: softprops/action-gh-release@v1
with:
generate_release_notes: true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}