name: Build & run tests on: push: branches: [master] pull_request: branches: [master] concurrency: group: ${{ github.workflow }}-${{ github.ref }}-${{ github.job }} cancel-in-progress: true jobs: build: runs-on: ubuntu-latest strategy: matrix: node: ['18', '20', '22', '24'] name: Node ${{ matrix.node }} steps: - name: Checkout repository uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 - name: Setup Node uses: ./.github/actions/setup-node with: NODEJS_VERSION: ${{ matrix.node }} - name: Build project run: yarn run build - name: Run tests run: yarn run mocha-suite - name: Upload build artifacts uses: actions/upload-artifact@v5 if: github.ref == 'refs/heads/master' && matrix.node-version == '22' with: name: Prebuild with Node.js ${{ matrix.node-version }} path: | ** !.git !node_modules