jobs:
build:
- runs-on: ubuntu-latest
+ runs-on: ${{ matrix.os }}
strategy:
matrix:
- node: ['14.x', '16.x', '18.x']
+ os: [windows-latest, macos-latest, ubuntu-latest]
+ node: ['16.x', '18.x']
steps:
- name: Checkout
node-version: ${{ matrix.node }}
- name: Install
- if: matrix.node == '18.x'
- run: npm ci --legacy-peer-deps
- - name: Install
- if: matrix.node != '18.x'
run: npm ci
- name: Build
- name: Lint
run: npm run lint
- - name: Tests & Coverage
- if: matrix.node-version == '16.x'
+ - name: Tests
+ if: "matrix.os != 'windows-latest' && matrix.node != '18.x'"
+ run: npm run test
+
+ - name: Coverage & Linter Reports
+ if: "github.repository == 'poolifier/poolifier' && matrix.os == 'ubuntu-latest' && matrix.node == '16.x'"
run: |
- npm run test
npm run coverage
- env:
- CI: true
+ npm run lint:report
- name: Sonar Code Analysis
- if: "github.repository == 'poolifier/poolifier' && matrix.node == '16.x'"
+ if: "github.repository == 'poolifier/poolifier' && matrix.os == 'ubuntu-latest' && matrix.node == '16.x'"
uses: sonarsource/sonarcloud-github-action@master
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed to get PR information, if any