Skip to content

chore(deps): update node.js to v22 #3411

chore(deps): update node.js to v22

chore(deps): update node.js to v22 #3411

Workflow file for this run

name: CI
# Inspiration:
# https://github.com/alexdiliberto/ember-transformicons/blob/master/.github/workflows/ci.yml
on:
pull_request:
push:
# filtering branches here prevents duplicate builds from pull_request and push
branches:
- master
- main
env:
CI: true
jobs:
install_dependencies:
name: Install Dependencies
timeout-minutes: 5
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: wyvox/action-setup-pnpm@v3
#############################################################
lint:
name: Lint JS
runs-on: ubuntu-latest
needs: ['install_dependencies']
steps:
- uses: actions/checkout@v4
- uses: wyvox/action-setup-pnpm@v3
- run: pnpm lint:js
lint_docs:
name: Lint Docs
runs-on: ubuntu-latest
needs: ['install_dependencies']
steps:
- uses: actions/checkout@v4
- uses: wyvox/action-setup-pnpm@v3
- run: pnpm lint:docs
lint_readme:
name: README up to date
runs-on: ubuntu-latest
needs: ['install_dependencies']
steps:
- uses: actions/checkout@v4
- uses: wyvox/action-setup-pnpm@v3
- run: pnpm run update && git diff --exit-code README.md docs/
#############################################################
tests:
name: Test
runs-on: ubuntu-latest
needs: ['install_dependencies']
strategy:
fail-fast: false
matrix:
node:
# pnpm 9 does not support < Node 18
# pnpm 8 does not support < Node 16
- { node: "14", pnpm: "6" }
# pnpm 9 does not support < Node 18
# pnpm 8 does not support < Node 16
- { node: "16", pnpm: "7" }
# pnpm 9 only supports node >= 18
- { node: "18", pnpm: "9" }
- { node: "20", pnpm: "9" }
- { node: "22", pnpm: "9" }
eslint:
- "eslint@9"
- "eslint@8"
- "eslint@7"
exclude:
- eslint: "eslint@9"
node: { node: "14", pnpm: "6" }
- eslint: "eslint@9"
node: { node: "16", pnpm: "7" }
steps:
- uses: actions/checkout@v4
- uses: wyvox/action-setup-pnpm@v3
with:
node-version: ${{ matrix.node.node }}
pnpm-version: ${{ matrix.node.pnpm }}
- name: "Use ${{ matrix.eslint }}"
run: |
pnpm remove eslint
pnpm add ${{ matrix.eslint }}
- name: Test with ${{ matrix.node.node }} & ${{ matrix.node.pnpm }}
run: |
echo "Matrix Info"
echo "Intended: node@${{ matrix.node.node }}, eslint@${{ matrix.eslint }}, pnpm@${{ matrix.node.pnpm }}"
echo "node: $(node -v)"
echo "pnpm: $(pnpm --version)"
echo "pnpm why eslint"
pnpm why eslint
pnpm test
smoke-tests:
name: ${{ matrix.script }}
runs-on: ubuntu-latest
needs: ['install_dependencies']
strategy:
fail-fast: false
matrix:
# tese are all relative to the smoke-tests directory
script:
- integration/position-default
- integration/flat-config
- integration/position-prettier
- integration/external-config-prettier
- examples/ember
- examples/typescript
- issue-reproductions/147
- issue-reproductions/195
- issue-reproductions/196
- issue-reproductions/289
- issue-reproductions/313
steps:
- uses: actions/checkout@v4
- uses: wyvox/action-setup-pnpm@v3
- run: ./scripts/smoke-test.sh smoke-tests/${{ matrix.script }}
# https://github.com/changesets/action
release:
name: Release
timeout-minutes: 5
runs-on: ubuntu-latest
if: github.ref == 'refs/heads/main'
needs:
- tests
steps:
- uses: actions/checkout@v4
with:
persist-credentials: false
- uses: wyvox/action-setup-pnpm@v3
- 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 }}