diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6df74b83..a6b9a5bb 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,8 +1,8 @@ name: ci on: -- pull_request -- push + - pull_request + - push jobs: test: @@ -11,132 +11,137 @@ jobs: fail-fast: false matrix: name: - - Node.js 0.10 - - Node.js 0.12 - - io.js 1.x - - io.js 2.x - - io.js 3.x - - Node.js 4.x - - Node.js 5.x - - Node.js 6.x - - Node.js 7.x - - Node.js 8.x - - Node.js 9.x - - Node.js 10.x - - Node.js 11.x - - Node.js 12.x - - Node.js 13.x - - Node.js 14.x - - Node.js 15.x + - Node.js 0.10 + - Node.js 0.12 + - io.js 1.x + - io.js 2.x + - io.js 3.x + - Node.js 4.x + - Node.js 5.x + - Node.js 6.x + - Node.js 7.x + - Node.js 8.x + - Node.js 9.x + - Node.js 10.x + - Node.js 11.x + - Node.js 12.x + - Node.js 13.x + - Node.js 14.x + - Node.js 15.x include: - - name: Node.js 0.10 - node-version: "0.10" - npm-i: mocha@3.5.3 rimraf@2.7.1 supertest@2.0.0 + - name: Node.js 0.10 + node-version: "0.10" + npm-i: mocha@3.5.3 rimraf@2.7.1 supertest@2.0.0 - - name: Node.js 0.12 - node-version: "0.12" - npm-i: mocha@3.5.3 rimraf@2.7.1 supertest@2.0.0 + - name: Node.js 0.12 + node-version: "0.12" + npm-i: mocha@3.5.3 rimraf@2.7.1 supertest@2.0.0 - - name: io.js 1.x - node-version: "1.8" - npm-i: mocha@3.5.3 rimraf@2.7.1 supertest@2.0.0 + - name: io.js 1.x + node-version: "1.8" + npm-i: mocha@3.5.3 rimraf@2.7.1 supertest@2.0.0 - - name: io.js 2.x - node-version: "2.5" - npm-i: mocha@3.5.3 rimraf@2.7.1 supertest@2.0.0 + - name: io.js 2.x + node-version: "2.5" + npm-i: mocha@3.5.3 rimraf@2.7.1 supertest@2.0.0 - - name: io.js 3.x - node-version: "3.3" - npm-i: mocha@3.5.3 rimraf@2.7.1 supertest@2.0.0 + - name: io.js 3.x + node-version: "3.3" + npm-i: mocha@3.5.3 rimraf@2.7.1 supertest@2.0.0 - - name: Node.js 4.x - node-version: "4.9" - npm-i: mocha@5.2.0 rimraf@2.7.1 supertest@3.4.2 + - name: Node.js 4.x + node-version: "4.9" + npm-i: mocha@5.2.0 rimraf@2.7.1 supertest@3.4.2 - - name: Node.js 5.x - node-version: "5.12" - npm-i: mocha@5.2.0 rimraf@2.7.1 supertest@3.4.2 + - name: Node.js 5.x + node-version: "5.12" + npm-i: mocha@5.2.0 rimraf@2.7.1 supertest@3.4.2 - - name: Node.js 6.x - node-version: "6.17" - npm-i: mocha@6.2.3 + - name: Node.js 6.x + node-version: "6.17" + npm-i: mocha@6.2.3 - - name: Node.js 7.x - node-version: "7.10" - npm-i: mocha@6.2.3 + - name: Node.js 7.x + node-version: "7.10" + npm-i: mocha@6.2.3 - - name: Node.js 8.x - node-version: "8.17" - npm-i: mocha@7.2.0 + - name: Node.js 8.x + node-version: "8.17" + npm-i: mocha@7.2.0 - - name: Node.js 9.x - node-version: "9.11" - npm-i: mocha@7.2.0 + - name: Node.js 9.x + node-version: "9.11" + npm-i: mocha@7.2.0 - - name: Node.js 10.x - node-version: "10.24" - npm-i: mocha@8.4.0 + - name: Node.js 10.x + node-version: "10.24" + npm-i: mocha@8.4.0 - - name: Node.js 11.x - node-version: "11.15" - npm-i: mocha@8.4.0 + - name: Node.js 11.x + node-version: "11.15" + npm-i: mocha@8.4.0 - - name: Node.js 12.x - node-version: "12.22" + - name: Node.js 12.x + node-version: "12.22" - - name: Node.js 13.x - node-version: "13.14" + - name: Node.js 13.x + node-version: "13.14" - - name: Node.js 14.x - node-version: "14.18" + - name: Node.js 14.x + node-version: "14.18" - - name: Node.js 15.x - node-version: "15.14" + - name: Node.js 15.x + node-version: "15.14" steps: - - uses: actions/checkout@v2 - - - name: Install Node.js ${{ matrix.node-version }} - shell: bash -eo pipefail -l {0} - run: | - nvm install --default ${{ matrix.node-version }} - dirname "$(nvm which ${{ matrix.node-version }})" >> "$GITHUB_PATH" - - - name: Configure npm - run: npm config set shrinkwrap false - - - name: Install npm module(s) ${{ matrix.npm-i }} - run: npm install --save-dev ${{ matrix.npm-i }} - if: matrix.npm-i != '' - - - name: Setup Node.js version-specific dependencies - shell: bash - run: | - # eslint for linting - # - remove on Node.js < 10 - if [[ "$(cut -d. -f1 <<< "${{ matrix.node-version }}")" -lt 10 ]]; then - node -pe 'Object.keys(require("./package").devDependencies).join("\n")' | \ - grep -E '^eslint(-|$)' | \ - sort -r | \ - xargs -n1 npm rm --silent --save-dev - fi - - - name: Install Node.js dependencies - run: npm install - - - name: List environment - id: list_env - shell: bash - run: | - echo "node@$(node -v)" - echo "npm@$(npm -v)" - npm -s ls ||: - (npm -s ls --depth=0 ||:) | awk -F'[ @]' 'NR>1 && $2 { print "::set-output name=" $2 "::" $3 }' - - - name: Run tests - run: npm run test-ci - - - name: Lint code - if: steps.list_env.outputs.eslint != '' - run: npm run lint + - uses: actions/checkout@v3 + + - name: Install Python 2.x + uses: actions/setup-python@v4 + with: + python-version: "2.x" + + - name: Install Node.js ${{ matrix.node-version }} + shell: bash -eo pipefail -l {0} + run: | + nvm install --default ${{ matrix.node-version }} + dirname "$(nvm which ${{ matrix.node-version }})" >>"$GITHUB_PATH" + + - name: Configure npm + run: npm config set shrinkwrap false + + - name: Install npm module(s) ${{ matrix.npm-i }} + run: npm install --save-dev ${{ matrix.npm-i }} + if: matrix.npm-i != '' + + - name: Setup Node.js version-specific dependencies + shell: bash + run: | + # eslint for linting + # - remove on Node.js < 10 + if [[ "$(cut -d. -f1 <<< "${{ matrix.node-version }}")" -lt 10 ]]; then + node -pe 'Object.keys(require("./package").devDependencies).join("\n")' | \ + grep -E '^eslint(-|$)' | \ + sort -r | \ + xargs -n1 npm rm --silent --save-dev + fi + + - name: Install Node.js dependencies + run: npm install + + - name: List environment + id: list_env + shell: bash + run: | + echo "node@$(node -v)" + echo "npm@$(npm -v)" + npm -s ls ||: + (npm -s ls --depth=0 ||:) | awk -F'[ @]' 'NR>1 && $2 { print "::set-output name=" $2 "::" $3 }' + + - name: Run tests + run: npm run test-ci + + - name: Lint code + if: steps.list_env.outputs.eslint != '' + run: npm run lint