From 266bc66b0fbbda399aff42afb957ce117d9ee4b2 Mon Sep 17 00:00:00 2001 From: Jordan Harband Date: Sat, 2 Jan 2021 13:48:23 -0800 Subject: [PATCH] [Tests] migrate tests to Github Actions --- .editorconfig | 7 ++++ .github/workflows/node-4+.yml | 54 ++++++++++++++++++++++++++++ .github/workflows/node-iojs.yml | 58 ++++++++++++++++++++++++++++++ .github/workflows/node-pretest.yml | 26 ++++++++++++++ .github/workflows/node-zero.yml | 58 ++++++++++++++++++++++++++++++ .travis.yml | 7 ---- test/timeoutAfter.js | 4 +-- 7 files changed, 205 insertions(+), 9 deletions(-) create mode 100644 .github/workflows/node-4+.yml create mode 100644 .github/workflows/node-iojs.yml create mode 100644 .github/workflows/node-pretest.yml create mode 100644 .github/workflows/node-zero.yml delete mode 100644 .travis.yml diff --git a/.editorconfig b/.editorconfig index 1474ee61..32f9d03c 100644 --- a/.editorconfig +++ b/.editorconfig @@ -12,10 +12,17 @@ block_comment_start = /* block_comment = * block_comment_end = */ +[.nycrc] +indent_style = tab + [*.md] indent_style = space indent_size = 4 +[*.yml] +indent_style = space +indent_size = 2 + [readme.markdown] indent_size = off max_line_length = off diff --git a/.github/workflows/node-4+.yml b/.github/workflows/node-4+.yml new file mode 100644 index 00000000..ba174e1d --- /dev/null +++ b/.github/workflows/node-4+.yml @@ -0,0 +1,54 @@ +name: 'Tests: node.js' + +on: [pull_request, push] + +jobs: + matrix: + runs-on: ubuntu-latest + outputs: + latest: ${{ steps.set-matrix.outputs.requireds }} + minors: ${{ steps.set-matrix.outputs.optionals }} + steps: + - uses: ljharb/actions/node/matrix@main + id: set-matrix + with: + preset: '>=4' + + latest: + needs: [matrix] + name: 'latest minors' + runs-on: ubuntu-latest + + strategy: + matrix: ${{ fromJson(needs.matrix.outputs.latest) }} + + steps: + - uses: actions/checkout@v2 + - uses: ljharb/actions/node/run@main + name: 'npm install && npm run tests-only' + with: + node-version: ${{ matrix.node-version }} + command: 'tests-only' + minors: + needs: [matrix, latest] + name: 'non-latest minors' + continue-on-error: true + if: ${{ !github.head_ref || !startsWith(github.head_ref, 'renovate') }} + runs-on: ubuntu-latest + + strategy: + matrix: ${{ fromJson(needs.matrix.outputs.minors) }} + + steps: + - uses: actions/checkout@v2 + - uses: ljharb/actions/node/run@main + with: + node-version: ${{ matrix.node-version }} + command: 'tests-only' + + node: + name: 'node 4+' + needs: [latest, minors] + runs-on: ubuntu-latest + steps: + - run: 'echo tests completed' diff --git a/.github/workflows/node-iojs.yml b/.github/workflows/node-iojs.yml new file mode 100644 index 00000000..f707c3cf --- /dev/null +++ b/.github/workflows/node-iojs.yml @@ -0,0 +1,58 @@ +name: 'Tests: node.js (io.js)' + +on: [pull_request, push] + +jobs: + matrix: + runs-on: ubuntu-latest + outputs: + latest: ${{ steps.set-matrix.outputs.requireds }} + minors: ${{ steps.set-matrix.outputs.optionals }} + steps: + - uses: ljharb/actions/node/matrix@main + id: set-matrix + with: + preset: 'iojs' + + latest: + needs: [matrix] + name: 'latest minors' + runs-on: ubuntu-latest + + strategy: + matrix: ${{ fromJson(needs.matrix.outputs.latest) }} + + steps: + - uses: actions/checkout@v2 + - uses: ljharb/actions/node/run@main + name: 'npm install && npm run tests-only' + with: + node-version: ${{ matrix.node-version }} + command: 'tests-only' + skip-ls-check: true + + minors: + needs: [matrix, latest] + name: 'non-latest minors' + continue-on-error: true + if: ${{ !github.head_ref || !startsWith(github.head_ref, 'renovate') }} + runs-on: ubuntu-latest + + strategy: + matrix: ${{ fromJson(needs.matrix.outputs.minors) }} + + steps: + - uses: actions/checkout@v2 + - uses: ljharb/actions/node/run@main + name: 'npm install && npm run tests-only' + with: + node-version: ${{ matrix.node-version }} + command: 'tests-only' + skip-ls-check: true + + node: + name: 'io.js' + needs: [latest, minors] + runs-on: ubuntu-latest + steps: + - run: 'echo tests completed' diff --git a/.github/workflows/node-pretest.yml b/.github/workflows/node-pretest.yml new file mode 100644 index 00000000..3921e0ae --- /dev/null +++ b/.github/workflows/node-pretest.yml @@ -0,0 +1,26 @@ +name: 'Tests: pretest/posttest' + +on: [pull_request, push] + +jobs: + pretest: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + - uses: ljharb/actions/node/run@main + name: 'npm install && npm run pretest' + with: + node-version: 'lts/*' + command: 'pretest' + + posttest: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + - uses: ljharb/actions/node/run@main + name: 'npm install && npm run posttest' + with: + node-version: 'lts/*' + command: 'posttest' diff --git a/.github/workflows/node-zero.yml b/.github/workflows/node-zero.yml new file mode 100644 index 00000000..d044c603 --- /dev/null +++ b/.github/workflows/node-zero.yml @@ -0,0 +1,58 @@ +name: 'Tests: node.js (0.x)' + +on: [pull_request, push] + +jobs: + matrix: + runs-on: ubuntu-latest + outputs: + stable: ${{ steps.set-matrix.outputs.requireds }} + unstable: ${{ steps.set-matrix.outputs.optionals }} + steps: + - uses: ljharb/actions/node/matrix@main + id: set-matrix + with: + preset: '0.x' + + stable: + needs: [matrix] + name: 'stable minors' + runs-on: ubuntu-latest + + strategy: + matrix: ${{ fromJson(needs.matrix.outputs.stable) }} + + steps: + - uses: actions/checkout@v2 + - uses: ljharb/actions/node/run@main + with: + node-version: ${{ matrix.node-version }} + command: 'tests-only' + cache-node-modules-key: node_modules-${{ github.workflow }}-${{ github.action }}-${{ github.run_id }} + skip-ls-check: true + + unstable: + needs: [matrix, stable] + name: 'unstable minors' + continue-on-error: true + if: ${{ !github.head_ref || !startsWith(github.head_ref, 'renovate') }} + runs-on: ubuntu-latest + + strategy: + matrix: ${{ fromJson(needs.matrix.outputs.unstable) }} + + steps: + - uses: actions/checkout@v2 + - uses: ljharb/actions/node/run@main + with: + node-version: ${{ matrix.node-version }} + command: 'tests-only' + cache-node-modules-key: node_modules-${{ github.workflow }}-${{ github.action }}-${{ github.run_id }} + skip-ls-check: true + + node: + name: 'node 0.x' + needs: [stable, unstable] + runs-on: ubuntu-latest + steps: + - run: 'echo tests completed' diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 7a78e0e1..00000000 --- a/.travis.yml +++ /dev/null @@ -1,7 +0,0 @@ -version: ~> 1.0 -language: node_js -os: - - linux -import: - - ljharb/travis-ci:node/all.yml - - ljharb/travis-ci:node/pretest.yml diff --git a/test/timeoutAfter.js b/test/timeoutAfter.js index 47c9ef9f..298a3d60 100644 --- a/test/timeoutAfter.js +++ b/test/timeoutAfter.js @@ -81,7 +81,7 @@ tap.test('timeoutAfter with Promises', { skip: typeof Promise === 'undefined' }, return new Promise(function (resolve) { setTimeout(function () { resolve(); - }, 2); + }, 10); }); }); @@ -92,7 +92,7 @@ tap.test('timeoutAfter with Promises', { skip: typeof Promise === 'undefined' }, return new Promise(function (reject) { setTimeout(function () { reject(); - }, 2); + }, 10); }); }); });