mirror of
https://github.com/airbnb/javascript.git
synced 2026-01-11 22:38:01 -05:00
164 lines
4.4 KiB
YAML
164 lines
4.4 KiB
YAML
name: 'Tests: node.js'
|
|
|
|
on: [pull_request, push]
|
|
|
|
jobs:
|
|
matrix:
|
|
runs-on: ubuntu-latest
|
|
outputs:
|
|
latest: ${{ steps.set-matrix.outputs.requireds }}
|
|
steps:
|
|
- uses: ljharb/actions/node/matrix@main
|
|
id: set-matrix
|
|
with:
|
|
versionsAsRoot: true
|
|
type: 'majors'
|
|
preset: '^12 || ^14 || ^16 || >= 17'
|
|
|
|
base:
|
|
needs: [matrix]
|
|
name: 'base config'
|
|
runs-on: ubuntu-latest
|
|
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
node-version: ${{ fromJson(needs.matrix.outputs.latest) }}
|
|
eslint:
|
|
- 8
|
|
- 7
|
|
package:
|
|
- eslint-config-airbnb-base
|
|
exclude:
|
|
- node-version: 10
|
|
eslint: 8
|
|
package: eslint-config-airbnb-base
|
|
|
|
defaults:
|
|
run:
|
|
working-directory: "packages/${{ matrix.package }}"
|
|
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- uses: ljharb/actions/node/install@main
|
|
name: 'nvm install ${{ matrix.node-version }} && npm install'
|
|
with:
|
|
before_install: cd "packages/${{ matrix.package }}"
|
|
node-version: ${{ matrix.node-version }}
|
|
after_install: |
|
|
npm install --no-save "eslint@${{ matrix.eslint }}"
|
|
- run: node -pe "require('eslint/package.json').version"
|
|
name: 'eslint version'
|
|
- run: npm run travis
|
|
- uses: codecov/codecov-action@v2
|
|
|
|
react:
|
|
needs: [matrix]
|
|
name: 'react config'
|
|
runs-on: ubuntu-latest
|
|
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
node-version: ${{ fromJson(needs.matrix.outputs.latest) }}
|
|
eslint:
|
|
- 8
|
|
- 7
|
|
package:
|
|
- eslint-config-airbnb
|
|
react-hooks:
|
|
- 4
|
|
|
|
defaults:
|
|
run:
|
|
working-directory: "packages/${{ matrix.package }}"
|
|
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- uses: ljharb/actions/node/install@main
|
|
name: 'nvm install ${{ matrix.node-version }} && npm install'
|
|
with:
|
|
before_install: cd "packages/${{ matrix.package }}"
|
|
node-version: ${{ matrix.node-version }}
|
|
after_install: |
|
|
npm install --no-save "eslint@${{ matrix.eslint }}"
|
|
- run: node -pe "require('eslint/package.json').version"
|
|
name: 'eslint version'
|
|
- run: npm install --no-save "eslint-plugin-react-hooks@${{ matrix.react-hooks }}"
|
|
if: ${{ matrix.react-hooks > 0}}
|
|
- run: npm run travis
|
|
- uses: codecov/codecov-action@v2
|
|
|
|
prepublish-base:
|
|
name: 'prepublish tests (base config)'
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
eslint:
|
|
- 8
|
|
- 7
|
|
package:
|
|
- eslint-config-airbnb-base
|
|
|
|
defaults:
|
|
run:
|
|
working-directory: "packages/${{ matrix.package }}"
|
|
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- uses: ljharb/actions/node/install@main
|
|
name: 'nvm install lts/* && npm install'
|
|
with:
|
|
before_install: cd "packages/${{ matrix.package }}"
|
|
node-version: lts/*
|
|
after_install: |
|
|
npm install --no-save "eslint@${{ matrix.eslint }}"
|
|
- run: node -pe "require('eslint/package.json').version"
|
|
name: 'eslint version'
|
|
- run: npm run pretravis
|
|
- run: npm run prepublishOnly
|
|
- run: npm run posttravis
|
|
|
|
prepublish-react:
|
|
name: 'prepublish tests (react config)'
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
eslint:
|
|
- 8
|
|
- 7
|
|
package:
|
|
- eslint-config-airbnb
|
|
react-hooks:
|
|
- 4
|
|
|
|
defaults:
|
|
run:
|
|
working-directory: "packages/${{ matrix.package }}"
|
|
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- uses: ljharb/actions/node/install@main
|
|
name: 'nvm install lts/* && npm install'
|
|
with:
|
|
before_install: cd "packages/${{ matrix.package }}"
|
|
node-version: lts/*
|
|
after_install: |
|
|
npm install --no-save "eslint@${{ matrix.eslint }}"
|
|
- run: npm install --no-save "eslint-plugin-react-hooks@${{ matrix.react-hooks }}"
|
|
if: ${{ matrix.react-hooks > 0}}
|
|
- run: node -pe "require('eslint/package.json').version"
|
|
name: 'eslint version'
|
|
- run: npm run pretravis
|
|
- run: npm run prepublishOnly
|
|
- run: npm run posttravis
|
|
|
|
node:
|
|
name: 'node 10+'
|
|
needs: [base, prepublish-base, react, prepublish-react]
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- run: 'echo tests completed'
|