airbnb/javascript
4 workflows · maturity 17% · 3 patterns · GitHub ↗
Practices
✓ Matrix○ Permissions○ Security scan○ AI review○ Cache○ Concurrency○ Reusable workflows
Detected patterns
Security dimensions
Workflows (4)
node matrix .github/workflows/node.yml
View raw 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'
node-pretest matrix .github/workflows/node-pretest.yml
View raw YAML
name: 'Tests: pretest/posttest'
on: [pull_request, push]
jobs:
pretest:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
package:
- '..'
- eslint-config-airbnb
- 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:
node-version: 'lts/*'
- run: npm run pretest
rebase .github/workflows/rebase.yml
View raw YAML
name: Automatic Rebase
on: [pull_request_target]
jobs:
_:
name: "Automatic Rebase"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: ljharb/rebase@master
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
require-allow-edits .github/workflows/require-allow-edits.yml
View raw YAML
name: Require “Allow Edits”
on: [pull_request_target]
jobs:
_:
name: "Require “Allow Edits”"
runs-on: ubuntu-latest
steps:
- uses: ljharb/require-allow-edits@main