chore: update angular-cli monorepo to v21.0.2 #10408
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI | |
| on: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| branches: [main, 'next-major-release/**'] | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.event.number || github.ref }} | |
| cancel-in-progress: true | |
| env: | |
| NX_BRANCH: ${{ github.event.pull_request.number || github.ref_name }} | |
| NX_VERBOSE_LOGGING: false | |
| NX_CLOUD_DEBUG_URLS: false | |
| NX_CLOUD_ACCESS_TOKEN: ${{ secrets.NX_CLOUD_ACCESS_TOKEN }} | |
| # Minimal permissions by default | |
| permissions: | |
| contents: read | |
| jobs: | |
| main: | |
| name: Main | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: pnpm/action-setup@v4 | |
| name: Install pnpm | |
| with: | |
| run_install: false | |
| - name: Install Node.js per package.json | |
| uses: actions/setup-node@v6 | |
| with: | |
| # Use the volta.node property as the source of truth | |
| node-version-file: 'package.json' | |
| cache: 'pnpm' | |
| - name: Set the resolved node version in NX_CI_EXECUTION_ENV | |
| run: echo "NX_CI_EXECUTION_ENV=Node $(node --version)" >> $GITHUB_ENV | |
| - name: Start Nx Cloud CI Run | |
| run: pnpm dlx nx-cloud start-ci-run --distribute-on=".nx/workflows/distribution-config.yaml" --auto-apply-fixes="*format*,*sync*,*check-rule-*" --stop-agents-after="e2e-ci" | |
| - name: Install dependencies (skipping postinstall) | |
| # We use --ignore-scripts to skip automatic postinstall and give us more control over distributing build tasks | |
| run: | | |
| pnpm install --frozen-lockfile --prefer-offline --ignore-scripts | |
| pnpm check-clean-workspace-after-install | |
| - name: Formatting and config file checks | |
| run: | | |
| pnpm nx-cloud record -- pnpm format-check | |
| pnpm nx-cloud record -- pnpm nx sync:check | |
| - name: Run parallel distributed tasks for build, typecheck, unit tests with coverage, check-rule-docs, check-rule-lists, check-rule-configs, lint targets, and atomized e2e tests | |
| # Note that the typecheck target *also* typechecks tests and tools, | |
| # whereas the build only checks src files | |
| run: pnpm nx run-many -t build typecheck test check-rule-docs lint check-rule-lists check-rule-configs e2e-ci --configuration ci | |
| - name: Collect coverage data from Nx Cloud cache | |
| # Re-run the test:ci target directly on the main job to pull down the coverage outputs | |
| run: pnpm nx run-many -t test --configuration ci | |
| env: | |
| NX_CLOUD_DISTRIBUTED_EXECUTION: false | |
| - name: Publish code coverage report | |
| uses: codecov/codecov-action@v5 | |
| with: | |
| files: coverage/packages/**/lcov.info | |
| flags: unittest | |
| name: codecov | |
| token: ${{ secrets.CODECOV_TOKEN }} | |
| - name: Fix CI | |
| if: failure() | |
| run: pnpm nx-cloud fix-ci | |
| - name: Stop all running agents for this CI run | |
| # It's important that we always run this step, otherwise in the case of any failures in preceding non-Nx steps, the agents will keep running and waste billable minutes | |
| if: ${{ always() }} | |
| run: pnpm nx-cloud stop-all-agents | |
| unit_tests_on_other_node_versions: | |
| name: Unit tests on other supported Node versions | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| # Additionally supported node versions taken from: | |
| # https://angular.dev/reference/versions | |
| node: ['^20.19.0', '^24.0.0'] | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: pnpm/action-setup@v4 | |
| name: Install pnpm | |
| with: | |
| run_install: false | |
| - name: Install Node.js ${{ matrix.node }} | |
| uses: actions/setup-node@v6 | |
| with: | |
| node-version: ${{ matrix.node }} | |
| cache: 'pnpm' | |
| - name: Set the resolved node version in NX_CI_EXECUTION_ENV | |
| run: echo "NX_CI_EXECUTION_ENV=Node $(node --version)" >> $GITHUB_ENV | |
| - name: Install dependencies (skipping postinstall) | |
| # We use --ignore-scripts to skip automatic postinstall and give us more control over distributing build tasks | |
| run: | | |
| pnpm install --frozen-lockfile --prefer-offline --ignore-scripts | |
| - name: Run build targets on Node ${{ matrix.node }} (not distributable) | |
| env: | |
| # We cannot distribute these because the agents are set up to run the primary node version, not this alternative we are testing | |
| NX_CLOUD_DISTRIBUTED_EXECUTION: false | |
| run: pnpm build | |
| - name: Run test targets on Node ${{ matrix.node }} (not distributable) | |
| env: | |
| # We cannot distribute these because the agents are set up to run the primary node version, not this alternative we are testing | |
| NX_CLOUD_DISTRIBUTED_EXECUTION: false | |
| run: pnpm test | |
| - name: Fix CI | |
| if: always() | |
| run: pnpm nx-cloud fix-ci | |
| - run: pnpm nx-cloud complete-ci-run | |
| # It's important that we always run this step, otherwise in the case of any failures in preceding non-Nx steps, the agents will keep running and waste billable minutes | |
| if: ${{ always() }} |