Skip to content

[CI] Run the CI on different node versions #134

[CI] Run the CI on different node versions

[CI] Run the CI on different node versions #134

Workflow file for this run

name: Release
on:
pull_request:
push:
branches:
- main
- next
concurrency: ${{ github.workflow }}-${{ github.ref }}
env:
# The node version to release with, generally the latest LTS
release_node: 20.x
jobs:
release:
strategy:
matrix:
# Test against multiple node versions
# Last LTS, current LTS, current, and next LTS (if not same as current)
node: [18.x, 20.x, 21.x, 22.x]
name: Release
runs-on: ubuntu-latest
steps:
- name: Checkout Repo
uses: actions/checkout@v4
- uses: pnpm/action-setup@v3
with:
version: 9
- name: Setup Node.js ${{ matrix.node }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node }}
cache: 'pnpm'
- name: Install Dependencies
run: pnpm install
- name: Build packages
run: pnpm build
- name: Lint, Prettier, and Typecheck
run: pnpm test:ci
# Only run the release step if the push is to the main or next branch
- if: ${{ matrix.node == env.release_node && github.event_name == 'push' && (github.ref == 'refs/heads/main' || github.ref == 'refs/heads/next') }}
name: Create Release Pull Request or Publish to npm
id: changesets
uses: changesets/action@v1
with:
# This expects you to have a script called release which does a build for your packages and calls changeset publish
publish: pnpm release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}