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'] name: Node ${{ matrix.node }} steps: - name: Checkout repository uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 - 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@v4 if: github.ref == 'refs/heads/master' && matrix.node-version == '22' with: name: Prebuild with Node.js ${{ matrix.node-version }} path: | ** !.git !node_modules