name: CI on: [push, pull_request] permissions: contents: read # to fetch code (actions/checkout) jobs: build: concurrency: group: ${{ github.workflow }}-${{ github.ref }}-${{ matrix.platform }}-${{ matrix.node }} cancel-in-progress: true strategy: fail-fast: false matrix: node: - '16.14' - '18' - '20' platform: - ubuntu-latest - windows-latest name: '${{matrix.platform}} / Node.js ${{ matrix.node }}' runs-on: ${{matrix.platform}} steps: - name: Configure Git run: | git config --global core.autocrlf false git config --global user.name "xyz" git config --global user.email "x@y.z" - name: Checkout Commit uses: actions/checkout@v3 - name: Install pnpm uses: pnpm/action-setup@v2.4.0 with: version: next-8 standalone: true - name: Setup Node uses: actions/setup-node@v3 with: node-version: ${{ matrix.node }} cache: 'pnpm' - name: Install npm@7 run: npm add --global npm@7 - name: pnpm install run: pnpm install - name: Audit run: pnpm audit # - name: Cache TypeScript and Jest # uses: actions/cache@v3 # with: # path: | # packages/*/lib # packages/*/tsconfig.tsbuildinfo # privatePackages/*/lib # privatePackages/*/tsconfig.tsbuildinfo # .jest-cache # .verdaccio-cache # key: ts-jest-${{ matrix.platform }}-${{ matrix.node }}-${{ github.run_id }} # restore-keys: ts-jest-${{ matrix.platform }}-${{ matrix.node }}- - name: run tests (main) timeout-minutes: 60 if: github.ref == 'refs/heads/main' run: pnpm run test-main env: PNPM_WORKERS: 3 - name: run tests (branch) timeout-minutes: 60 if: github.ref != 'refs/heads/main' run: pnpm run test-branch env: PNPM_WORKERS: 3