name: CI on: pull_request: paths-ignore: - 'build/**' - 'docs/**' - 'files/**' permissions: contents: read jobs: lint: name: Lint testing runs-on: ubuntu-latest steps: - name: Git checkout uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 - name: Install Node uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4 with: node-version: 18 cache: 'npm' - name: Install dependencies run: npm ci - name: === Lint testing === run: npm run lint unit: name: Unit testing runs-on: ubuntu-latest steps: - name: Git checkout uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 - name: Install Node uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4 with: node-version: 18 cache: 'npm' - name: Install dependencies run: npm ci - name: === Unit testing === run: npm run test-unit circular: name: Circular dependencies testing runs-on: ubuntu-latest steps: - name: Git checkout uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 - name: Install Node uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4 with: node-version: 18 cache: 'npm' - name: Install dependencies run: npm ci - name: === Circular dependencies testing === run: npm run test-circular-deps e2e: name: E2E testing runs-on: ${{ matrix.os }} timeout-minutes: 20 strategy: fail-fast: false matrix: os: [ windows-latest ] CI: [ 0, 1, 2, 3 ] env: CI: ${{ matrix.CI }} steps: - name: Git checkout uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 - name: Install Node uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4 with: node-version: 18 cache: 'npm' - name: Install dependencies run: npm ci - name: Build run: npm run build-module - name: === E2E testing === run: npm run test-e2e - name: Upload output screenshots uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4 if: always() with: name: Output screenshots-${{ matrix.os }}-${{ matrix.CI }} path: test/e2e/output-screenshots if-no-files-found: ignore e2e-cov: name: Examples ready for release runs-on: ubuntu-latest steps: - name: Git checkout uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4 - name: Install Node uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4 with: node-version: 18 cache: 'npm' - name: Install dependencies run: npm ci - name: === Examples ready for release === run: npm run test-e2e-cov