name: CI on: push: branches: [master] pull_request: branches: [master] workflow_dispatch: {} concurrency: group: ci-${{ github.ref }} cancel-in-progress: true jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v4 with: node-version: 20.x cache: 'npm' - run: npm config set registry ${{ vars.NPM_CI_REGISTRY }} if: ${{ vars.NPM_CI_REGISTRY }} - run: | npm ci npm run build test: runs-on: ubuntu-latest strategy: max-parallel: ${{ vars.CI_PARALLEL || 256 }} matrix: node-version: [16.x, 18.x, 20.x] steps: - uses: actions/checkout@v4 - run: sudo apt-get update - uses: awalsh128/cache-apt-pkgs-action@latest with: packages: libgconf-2-4 libatk1.0-0 libatk-bridge2.0-0 libgdk-pixbuf2.0-0 libgtk-3-0 libgbm-dev libnss3-dev libxss-dev libasound2 version: ${{ matrix.node-version }} - uses: browser-actions/setup-chrome@latest - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} cache: 'npm' - run: npm config set registry ${{ vars.NPM_CI_REGISTRY }} if: ${{ vars.NPM_CI_REGISTRY }} - run: | npm ci npm run -- test -t 30000 npm run -- test -t 30000 -p e2e lint: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v4 with: node-version: 20.x cache: 'npm' - run: npm config set registry ${{ vars.NPM_CI_REGISTRY }} if: ${{ vars.NPM_CI_REGISTRY }} - run: | npm ci npm run lint