airbnb/javascript

4 workflows · maturity 17% · 3 patterns · GitHub ↗

Security 0/100

Practices

✓ Matrix○ Permissions○ Security scan○ AI review○ Cache○ Concurrency○ Reusable workflows

Detected patterns

Security dimensions

permissions
0
security scan
0
supply chain
0
secret handling
0
harden runner
0

Workflows (4)

node matrix .github/workflows/node.yml
Triggers
pull_request, push
Runs on
ubuntu-latest, ubuntu-latest, ubuntu-latest, ubuntu-latest, ubuntu-latest, ubuntu-latest
Jobs
matrix, base, react, prepublish-base, prepublish-react, node
Matrix
eslint, exclude, exclude.eslint, exclude.node-version, exclude.package, node-version, package, react-hooks→ ${{ fromJson(needs.matrix.outputs.latest) }}, 10, 4, 7, 8, eslint-config-airbnb, eslint-config-airbnb-base
Actions
ljharb/actions/node/matrix, ljharb/actions/node/install, codecov/codecov-action, ljharb/actions/node/install, codecov/codecov-action, ljharb/actions/node/install, ljharb/actions/node/install
Commands
  • node -pe "require('eslint/package.json').version"
  • npm run travis
  • node -pe "require('eslint/package.json').version"
  • npm install --no-save "eslint-plugin-react-hooks@${{ matrix.react-hooks }}"
  • npm run travis
  • node -pe "require('eslint/package.json').version"
  • npm run pretravis
  • npm run prepublishOnly
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
Triggers
pull_request, push
Runs on
ubuntu-latest
Jobs
pretest
Matrix
package→ .., eslint-config-airbnb, eslint-config-airbnb-base
Actions
ljharb/actions/node/install
Commands
  • npm run pretest
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
Triggers
pull_request_target
Runs on
ubuntu-latest
Jobs
_
Actions
ljharb/rebase
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
Triggers
pull_request_target
Runs on
ubuntu-latest
Jobs
_
Actions
ljharb/require-allow-edits
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