From 573ba81afe9fe49b994fed6cc5b88b0fa310737c Mon Sep 17 00:00:00 2001 From: Aviv Keller Date: Mon, 12 Jan 2026 17:15:32 -0500 Subject: [PATCH 1/5] chore(ci): modernize --- .cspell.json | 1 + .github/workflows/ci.yml | 97 +++++++++++++++ .github/workflows/commitlint.yml | 34 ++++++ .github/workflows/dependency-review.yml | 18 ++- .github/workflows/nodejs.yml | 149 ------------------------ 5 files changed, 146 insertions(+), 153 deletions(-) create mode 100644 .github/workflows/ci.yml create mode 100644 .github/workflows/commitlint.yml delete mode 100644 .github/workflows/nodejs.yml diff --git a/.cspell.json b/.cspell.json index 1aa1b21e8a2..b25b508e2c1 100644 --- a/.cspell.json +++ b/.cspell.json @@ -2,6 +2,7 @@ "version": "0.2", "language": "en,en-gb", "words": [ + "amannn", "Atsumu", "autoprefixer", "barbaz", diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 00000000000..7728935562a --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,97 @@ +name: CI + +on: + push: + branches: + - main + pull_request: + +permissions: + contents: read + +concurrency: + group: "${{ github.workflow }} ✨ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}" + cancel-in-progress: true + +jobs: + lint: + name: Lint + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 + + - name: Setup Node.js + uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6.1.0 + with: + node-version: "lts/*" + cache: "npm" + + - name: Install dependencies + run: npm ci + + - name: Build + run: npm run build + + - name: Lint + run: npm run lint + + test: + name: Test - ${{ matrix.os }} (Node.js ${{ matrix.node-version }}) + + strategy: + fail-fast: false + matrix: + os: [ubuntu-latest, windows-latest, macos-latest] + node-version: [18.x, 20.x, 22.x, 24.x] + + runs-on: ${{ matrix.os }} + + steps: + - name: Checkout code + uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 + + - name: Setup Node.js ${{ matrix.node-version }} + uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6.1.0 + with: + node-version: ${{ matrix.node-version }} + cache: "npm" + + - uses: pnpm/action-setup@41ff72655975bd51cab0327fa583b6e92b6d3061 # 4.2.0 + + - name: Install dependencies + run: npm ci + + - name: Prepare environment for tests + run: npm run build:ci + + - name: Run tests + run: npm run test:coverage -- --ci + + - name: Upload coverage to Codecov + if: always() + uses: codecov/codecov-action@671740ac38dd9b0130fbe1cec585b89eea48d3de # v5.5.2 + + smoketests: + name: Smoketests + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 + + - name: Setup Node.js + uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6.1.0 + with: + node-version: lts/* + cache: "npm" + + - name: Install dependencies + run: npm ci + + - name: Prepare environment for tests + run: npm run build:ci + + - name: Run tests + run: npm run test:smoketests diff --git a/.github/workflows/commitlint.yml b/.github/workflows/commitlint.yml new file mode 100644 index 00000000000..ed375baf2c8 --- /dev/null +++ b/.github/workflows/commitlint.yml @@ -0,0 +1,34 @@ +name: Check PR title + +on: + pull_request: + types: + - opened + - reopened + - edited + +concurrency: + group: "${{ github.workflow }} ✨ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}" + cancel-in-progress: true + +permissions: + pull-requests: read + +jobs: + commitlint: + name: Lint Commit Messages + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 + with: + fetch-depth: 0 + + - uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6.1.0 + with: + node-version: "lts/*" + cache: "npm" + + - run: npm ci + + - name: Validate PR commits with commitlint + run: npx commitlint --from ${{ github.event.pull_request.head.sha }}~${{ github.event.pull_request.commits }} --to ${{ github.event.pull_request.head.sha }} --verbose diff --git a/.github/workflows/dependency-review.yml b/.github/workflows/dependency-review.yml index 5a47668e87f..a30d16cabac 100644 --- a/.github/workflows/dependency-review.yml +++ b/.github/workflows/dependency-review.yml @@ -1,5 +1,14 @@ -name: "Dependency Review" -on: [pull_request] +# Dependency Review Action +# +# This Action will scan dependency manifest files that change as part of a Pull Request, +# surfacing known-vulnerable versions of the packages declared or updated in the PR. +# Once installed, if the workflow run is marked as required, +# PRs introducing known-vulnerable packages will be blocked from merging. +# +# Source repository: https://github.com/actions/dependency-review-action +name: Review Dependencies + +on: pull_request permissions: contents: read @@ -8,7 +17,8 @@ jobs: dependency-review: runs-on: ubuntu-latest steps: - - name: "Checkout Repository" + - name: Git Checkout uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 - - name: "Dependency Review" + + - name: Review Dependencies uses: actions/dependency-review-action@3c4e3dcb1aa7874d2c16be7d79418e9b7efd6261 # v4.8.2 diff --git a/.github/workflows/nodejs.yml b/.github/workflows/nodejs.yml deleted file mode 100644 index ce2d1547393..00000000000 --- a/.github/workflows/nodejs.yml +++ /dev/null @@ -1,149 +0,0 @@ -name: webpack-cli - -on: - push: - branches: - - main - - next - pull_request: - branches: - - main - - next - -permissions: - contents: read - -jobs: - lint: - name: Lint - ${{ matrix.os }} - Node v${{ matrix.node-version }} - - runs-on: ${{ matrix.os }} - - concurrency: - group: lint-${{ github.ref }} - cancel-in-progress: true - - strategy: - matrix: - os: [ubuntu-latest] - node-version: [lts/*] - webpack-version: [latest] - - steps: - - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 - - - name: Using Node v${{ matrix.node-version }} - uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6.1.0 - with: - node-version: ${{ matrix.node-version }} - cache: "npm" - - - name: Install dependencies - run: npm ci - - - name: Build - run: npm run build - - - name: Lint - run: npm run lint - - build: - name: Tests and Coverage - ${{ matrix.os }} - Node v${{ matrix.node-version }}, Webpack ${{ matrix.webpack-version }}, DevServer ${{ matrix.dev-server-version }} (${{ matrix.shard }}) - - runs-on: ${{ matrix.os }} - - concurrency: - group: build-${{ matrix.os }}-v${{ matrix.node-version }}-${{ matrix.webpack-version }}-${{ matrix.dev-server-version }}-${{ matrix.shard }}-${{ github.ref }} - cancel-in-progress: true - - strategy: - matrix: - os: [ubuntu-latest, windows-latest, macos-latest] - node-version: [18.x, 20.x, 22.x, 24.x] - shard: ["1/4", "2/4", "3/4", "4/4"] - webpack-version: [latest] - dev-server-version: [latest] - - steps: - - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 - with: - fetch-depth: 0 - - - name: Using Node v${{ matrix.node-version }} - uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6.1.0 - with: - node-version: ${{ matrix.node-version }} - cache: "npm" - - - uses: pnpm/action-setup@41ff72655975bd51cab0327fa583b6e92b6d3061 #4.2.0 - with: - version: 9 - - - name: Install dependencies - run: npm ci --ignore-scripts - - - name: Prepare environment for tests - run: npm run build:ci - - - name: Run tests and generate coverage - run: npm run test:coverage --ci --shard=${{ matrix.shard }} - - - name: Upload coverage to Codecov - uses: codecov/codecov-action@671740ac38dd9b0130fbe1cec585b89eea48d3de # v5.5.2 - with: - token: ${{ secrets.CODECOV_TOKEN }} - verbose: true - - smoketests: - name: Smoketests - ${{ matrix.os }} - Node v${{ matrix.node-version }} - runs-on: ubuntu-latest - concurrency: - group: smoketests-${{ github.ref }} - cancel-in-progress: true - strategy: - matrix: - os: [ubuntu-latest] - node-version: [lts/*] - steps: - - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 - with: - fetch-depth: 0 - - - name: Using Node v${{ matrix.node-version }} - uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6.1.0 - with: - node-version: ${{ matrix.node-version }} - cache: "npm" - - - name: Install dependencies - run: npm ci - - - name: Prepare environment for tests - run: npm run build:ci - - - name: Run smoketests - run: npm run test:smoketests - - commitlint: - name: Lint Commit Messages - runs-on: ubuntu-latest - concurrency: - group: commitlint-${{ github.ref }} - cancel-in-progress: true - steps: - - uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 - with: - fetch-depth: 0 - - - uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6.1.0 - with: - node-version: "lts/*" - cache: "npm" - - - run: npm ci - - - name: Validate PR commits with commitlint - if: github.event_name == 'pull_request' - run: npx commitlint --from ${{ github.event.pull_request.head.sha }}~${{ github.event.pull_request.commits }} --to ${{ github.event.pull_request.head.sha }} --verbose - env: - NODE_PATH: ${{ github.workspace }}/node_modules From d4e1c281cd19bf4e8490aaf3729aa73b81400da6 Mon Sep 17 00:00:00 2001 From: Aviv Keller Date: Mon, 12 Jan 2026 17:16:32 -0500 Subject: [PATCH 2/5] fixup! --- .github/workflows/commitlint.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/commitlint.yml b/.github/workflows/commitlint.yml index ed375baf2c8..4e763344d36 100644 --- a/.github/workflows/commitlint.yml +++ b/.github/workflows/commitlint.yml @@ -1,4 +1,4 @@ -name: Check PR title +name: Validate PR on: pull_request: From 9d12346482c23d5f096473b7965641edbb2eba3a Mon Sep 17 00:00:00 2001 From: Aviv Keller Date: Mon, 12 Jan 2026 17:16:58 -0500 Subject: [PATCH 3/5] fixup! --- .cspell.json | 1 - 1 file changed, 1 deletion(-) diff --git a/.cspell.json b/.cspell.json index b25b508e2c1..1aa1b21e8a2 100644 --- a/.cspell.json +++ b/.cspell.json @@ -2,7 +2,6 @@ "version": "0.2", "language": "en,en-gb", "words": [ - "amannn", "Atsumu", "autoprefixer", "barbaz", From 11f582ea45234abc6c797bb7ac881496ac910fdd Mon Sep 17 00:00:00 2001 From: Aviv Keller Date: Mon, 12 Jan 2026 17:17:29 -0500 Subject: [PATCH 4/5] fixup! --- .github/workflows/commitlint.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/commitlint.yml b/.github/workflows/commitlint.yml index 4e763344d36..6f64e9a435f 100644 --- a/.github/workflows/commitlint.yml +++ b/.github/workflows/commitlint.yml @@ -12,7 +12,7 @@ concurrency: cancel-in-progress: true permissions: - pull-requests: read + contents: read jobs: commitlint: From 879b17e59e6329acc7cf3e6baaf844a622cd8bfd Mon Sep 17 00:00:00 2001 From: Aviv Keller Date: Mon, 12 Jan 2026 17:18:09 -0500 Subject: [PATCH 5/5] fixup! --- .github/workflows/ci.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 7728935562a..b61bb2fdcf1 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -59,6 +59,8 @@ jobs: cache: "npm" - uses: pnpm/action-setup@41ff72655975bd51cab0327fa583b6e92b6d3061 # 4.2.0 + with: + version: 10 - name: Install dependencies run: npm ci