Skip to content

Release-dispatch

Release-dispatch #6

name: Release-dispatch
description: Publishes a new npm version on dispatch. Use this if you want to release a (beta) version from a feature branch without merging code into main.
on:
workflow_call:
workflow_dispatch:
env:
CI: true
jobs:
lint:
name: Lint codebase
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Set up Node.js
uses: labd/gh-actions-typescript/pnpm-install@main
- name: Lint
run: pnpm lint
build:
name: Build, and test on Node ${{ matrix.node }} and ${{ matrix.os }}
runs-on: ${{ matrix.os }}
needs: lint
strategy:
matrix:
node: ["20.x", "22.x"]
os: [ubuntu-latest]
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Set up Node.js
uses: labd/gh-actions-typescript/pnpm-install@main
with:
node-version: ${{ matrix.node }}
- name: Test
run: pnpm run test:ci
- name: Build
run: pnpm build
release:
timeout-minutes: 15
runs-on: ubuntu-latest
needs: build
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up Node.js
uses: labd/gh-actions-typescript/pnpm-install@main
- name: Publish
run: pnpm run publish:ci
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}