Further clean-up rules_nodejs
npm
workspace and remove yarn.lock
#4622
Workflow file for this run
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: Pull Request | |
on: | |
pull_request: | |
types: [opened, synchronize, reopened] | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
permissions: {} | |
defaults: | |
run: | |
shell: bash | |
jobs: | |
analyze: | |
runs-on: ubuntu-latest | |
outputs: | |
snapshots: ${{ steps.filter.outputs.snapshots }} | |
steps: | |
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 | |
with: | |
persist-credentials: false | |
- uses: dorny/paths-filter@de90cc6fb38fc0963ad72b210f1f284cd68cea36 # v3.0.2 | |
id: filter | |
with: | |
filters: | | |
snapshots: | |
- 'tests/legacy-cli/e2e/ng-snapshot/package.json' | |
lint: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Initialize environment | |
uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b79ac7f5d6689becb7f2d559affbab5afb361389 | |
- name: Setup ESLint Caching | |
uses: actions/cache@d4323d4df104b026a6aa633fdb11d772146be0bf # v4.2.2 | |
with: | |
path: .eslintcache | |
key: ${{ runner.os }}-${{ hashFiles('.eslintrc.json') }} | |
- name: Install node modules | |
run: pnpm install --frozen-lockfile | |
- name: Generate JSON schema types | |
# Schema types are required to correctly lint the TypeScript code | |
run: pnpm run admin build-schema | |
- name: Run ESLint | |
run: pnpm run lint --cache-strategy content | |
- name: Validate NgBot Configuration | |
run: pnpm run ng-dev ngbot verify | |
- name: Validate Circular Dependencies | |
run: pnpm run ts-circular-deps check | |
- name: Run Validation | |
run: pnpm run admin validate | |
- name: Check Package Licenses | |
uses: angular/dev-infra/github-actions/linting/licenses@f2a610b26cd7a451eddd50eb071dc495e3346a80 | |
- name: Check tooling setup | |
run: pnpm run check-tooling-setup | |
- name: Check commit message | |
# Commit message validation is only done on pull requests as its too late to validate once | |
# it has been merged. | |
run: pnpm run ng-dev commit-message validate-range ${{ github.event.pull_request.base.sha }} ${{ github.event.pull_request.head.sha }} | |
- name: Check code format | |
# Code formatting checks are only done on pull requests as its too late to validate once | |
# it has been merged. | |
run: pnpm run ng-dev format changed --check ${{ github.event.pull_request.base.sha }} | |
build: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Initialize environment | |
uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b79ac7f5d6689becb7f2d559affbab5afb361389 | |
- name: Setup Bazel | |
uses: angular/dev-infra/github-actions/bazel/setup@f2a610b26cd7a451eddd50eb071dc495e3346a80 | |
- name: Setup Bazel RBE | |
uses: angular/dev-infra/github-actions/bazel/configure-remote@f2a610b26cd7a451eddd50eb071dc495e3346a80 | |
- name: Install node modules | |
run: pnpm install --frozen-lockfile | |
- name: Build release targets | |
run: pnpm run ng-dev release build | |
- name: Store PR release packages | |
uses: actions/upload-artifact@4cec3d8aa04e39d1a68397de0c4cd6fb9dce8ec1 # v4.6.1 | |
with: | |
name: packages | |
path: dist/releases/*.tgz | |
retention-days: 14 | |
test: | |
needs: build | |
runs-on: ubuntu-latest | |
steps: | |
- name: Initialize environment | |
uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b79ac7f5d6689becb7f2d559affbab5afb361389 | |
- name: Setup Bazel | |
uses: angular/dev-infra/github-actions/bazel/setup@f2a610b26cd7a451eddd50eb071dc495e3346a80 | |
- name: Setup Bazel RBE | |
uses: angular/dev-infra/github-actions/bazel/configure-remote@f2a610b26cd7a451eddd50eb071dc495e3346a80 | |
- name: Install node modules | |
run: pnpm install --frozen-lockfile | |
- name: Run module and package tests | |
run: pnpm run bazel test //modules/... //packages/... | |
env: | |
ASPECT_RULES_JS_FROZEN_PNPM_LOCK: '1' | |
e2e: | |
needs: build | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-latest] | |
node: [22] | |
subset: [npm, esbuild] | |
shard: [0, 1, 2, 3, 4, 5] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Initialize environment | |
uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b79ac7f5d6689becb7f2d559affbab5afb361389 | |
- name: Install node modules | |
run: pnpm install --frozen-lockfile | |
- name: Setup Bazel | |
uses: angular/dev-infra/github-actions/bazel/setup@f2a610b26cd7a451eddd50eb071dc495e3346a80 | |
- name: Setup Bazel RBE | |
uses: angular/dev-infra/github-actions/bazel/configure-remote@f2a610b26cd7a451eddd50eb071dc495e3346a80 | |
- name: Run CLI E2E tests | |
run: pnpm run bazel test --test_env=E2E_SHARD_TOTAL=6 --test_env=E2E_SHARD_INDEX=${{ matrix.shard }} --config=e2e //tests/legacy-cli:e2e.${{ matrix.subset }}_node${{ matrix.node }} | |
e2e-windows-subset: | |
needs: build | |
runs-on: windows-2025 | |
steps: | |
- name: Initialize environment | |
uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b79ac7f5d6689becb7f2d559affbab5afb361389 | |
- name: Run CLI E2E tests | |
uses: ./.github/shared-actions/windows-bazel-test | |
with: | |
test_target_name: e2e_node22 | |
test_args: --esbuild --glob "tests/basic/{build,rebuild}.ts" | |
e2e-package-managers: | |
needs: build | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-latest] | |
node: [22] | |
subset: [yarn, pnpm] | |
shard: [0, 1, 2] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Initialize environment | |
uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b79ac7f5d6689becb7f2d559affbab5afb361389 | |
- name: Install node modules | |
run: pnpm install --frozen-lockfile | |
- name: Setup Bazel | |
uses: angular/dev-infra/github-actions/bazel/setup@f2a610b26cd7a451eddd50eb071dc495e3346a80 | |
- name: Setup Bazel RBE | |
uses: angular/dev-infra/github-actions/bazel/configure-remote@f2a610b26cd7a451eddd50eb071dc495e3346a80 | |
- name: Run CLI E2E tests | |
run: pnpm run bazel test --test_env=E2E_SHARD_TOTAL=3 --test_env=E2E_SHARD_INDEX=${{ matrix.shard }} --config=e2e //tests/legacy-cli:e2e.${{ matrix.subset }}_node${{ matrix.node }} | |
e2e-snapshots: | |
needs: [analyze, build] | |
if: needs.analyze.outputs.snapshots == 'true' | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-latest] | |
node: [22] | |
subset: [npm, esbuild] | |
shard: [0, 1, 2, 3, 4, 5] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Initialize environment | |
uses: angular/dev-infra/github-actions/npm/checkout-and-setup-node@b79ac7f5d6689becb7f2d559affbab5afb361389 | |
- name: Install node modules | |
run: pnpm install --frozen-lockfile | |
- name: Setup Bazel | |
uses: angular/dev-infra/github-actions/bazel/setup@f2a610b26cd7a451eddd50eb071dc495e3346a80 | |
- name: Setup Bazel RBE | |
uses: angular/dev-infra/github-actions/bazel/configure-remote@f2a610b26cd7a451eddd50eb071dc495e3346a80 | |
- name: Run CLI E2E tests | |
run: pnpm run bazel test --test_env=E2E_SHARD_TOTAL=6 --test_env=E2E_SHARD_INDEX=${{ matrix.shard }} --config=e2e //tests/legacy-cli:e2e.snapshots.${{ matrix.subset }}_node${{ matrix.node }} |