Skip to content

Commit

Permalink
[actions] add reusable workflows
Browse files Browse the repository at this point in the history
 - remove ubuntu tests from existing workflow, since they're covered by the new ones.
  • Loading branch information
ljharb committed Oct 12, 2022
1 parent 8641572 commit 4763c36
Show file tree
Hide file tree
Showing 6 changed files with 180 additions and 15 deletions.
21 changes: 21 additions & 0 deletions .github/workflows/node-aught.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
name: 'Tests: node.js < 10'

on: [pull_request, push]

permissions:
contents: read

jobs:
tests:
uses: ljharb/actions/.github/workflows/node.yml@main
with:
range: '< 10'
type: minors
command: npm run tests-only

node:
name: 'node < 10'
needs: [tests]
runs-on: ubuntu-latest
steps:
- run: 'echo tests completed'
10 changes: 10 additions & 0 deletions .github/workflows/node-pretest.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
name: 'Tests: pretest/posttest'

on: [pull_request, push]

permissions:
contents: read

jobs:
tests:
uses: ljharb/actions/.github/workflows/pretest.yml@main
21 changes: 21 additions & 0 deletions .github/workflows/node-tens.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
name: 'Tests: node.js >= 10'

on: [pull_request, push]

permissions:
contents: read

jobs:
tests:
uses: ljharb/actions/.github/workflows/node.yml@main
with:
range: '>= 10'
type: minors
command: npm run tests-only

node:
name: 'node >= 10'
needs: [tests]
runs-on: ubuntu-latest
steps:
- run: 'echo tests completed'
103 changes: 88 additions & 15 deletions .github/workflows/nodejs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,33 +3,106 @@ name: Node CI
on: [push, pull_request]

jobs:
test:
matrix:
runs-on: ubuntu-latest
outputs:
latest: ${{ steps.set-matrix.outputs.requireds }}
nonlatest: ${{ steps.set-matrix.outputs.optionals }}
steps:
- uses: ljharb/actions/node/matrix@main
id: set-matrix
with:
versionsAsRoot: true
type: majors
preset: ">= 0.8"

latest:
needs: [matrix]
name: 'latest majors'
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
node-version: ['0.8', '0.10', '0.12', '4.x', '6.x', '8.x', '10.x', '12.x']
os: [windows-latest, macos-latest]
node-version: ${{ fromJson(needs.matrix.outputs.latest) }}
exclude:
- os: windows-latest
node-version: '3'
- os: windows-latest
node-version: '2'
- os: windows-latest
node-version: '1'
- os: windows-latest
node-version: '0.8'

runs-on: ${{matrix.os}}

steps:
- uses: actions/checkout@v1
- uses: actions/checkout@v3

- uses: ljharb/actions/node/install@main
name: 'nvm install ${{ matrix.node-version }} && npm install'
with:
node-version: ${{ matrix.node-version }}
skip-ls-check: true
if: matrix.os != 'windows-latest'

- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v1
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
- name: Disable strict SSL checks
uses: allenevans/set-env@v1.0.0
if: matrix.os == 'windows-latest'

- run: npm install
env:
NPM_CONFIG_STRICT_SSL: false
if: matrix.os == 'windows-latest'

- run: npm run tests-only
- uses: codecov/codecov-action@v3

nonlatest:
needs: [matrix, latest]
name: 'non-latest majors'
continue-on-error: true
if: ${{ needs.matrix.outputs.nonlatest != '[]' && (!github.head_ref || !startsWith(github.head_ref, 'renovate')) }}
strategy:
fail-fast: false
matrix:
os: [windows-latest, macos-latest]
node-version: ${{ fromJson(needs.matrix.outputs.nonlatest) }}
exclude:
- os: windows-latest
node-version: '0.8'

runs-on: ${{matrix.os}}

steps:
- uses: actions/checkout@v3

- uses: ljharb/actions/node/install@main
name: 'nvm install ${{ matrix.node-version }} && npm install'
with:
NPM_CONFIG_STRICT_SSL: 'false'
if: matrix.node-version == '0.8'
- name: Upgrade npm to latest available version
run: |
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.1/install.sh | bash
source $HOME/.nvm/nvm.sh
nvm install-latest-npm
node-version: ${{ matrix.node-version }}
skip-ls-check: true
if: matrix.os != 'windows-latest'

- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
if: matrix.os == 'windows-latest'

- run: npm install
- run: npm test
env:
NPM_CONFIG_STRICT_SSL: false
if: matrix.os == 'windows-latest'

- run: npm run tests-only
- uses: codecov/codecov-action@v3

node:
name: 'node majors, windows/mac'
needs: [latest, nonlatest]
runs-on: ubuntu-latest
steps:
- run: 'echo tests completed'
22 changes: 22 additions & 0 deletions .github/workflows/rebase.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
name: Automatic Rebase

on: [pull_request_target]

permissions:
contents: read

jobs:
_:
permissions:
contents: write # for ljharb/rebase to push code to rebase
pull-requests: read # for ljharb/rebase to get info about PR

name: "Automatic Rebase"

runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v2
- uses: ljharb/rebase@master
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
18 changes: 18 additions & 0 deletions .github/workflows/require-allow-edits.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
name: Require “Allow Edits”

on: [pull_request_target]

permissions:
contents: read

jobs:
_:
permissions:
pull-requests: read # for ljharb/require-allow-edits to check 'allow edits' on PR

name: "Require “Allow Edits”"

runs-on: ubuntu-latest

steps:
- uses: ljharb/require-allow-edits@main

0 comments on commit 4763c36

Please sign in to comment.