Skip to content

Consolidate CI into path-aware component matrix and retire non-executable workflows#5

Merged
Pmaster-dev merged 2 commits into
actionsfrom
copilot/review-test-matrix
Jul 2, 2026
Merged

Consolidate CI into path-aware component matrix and retire non-executable workflows#5
Pmaster-dev merged 2 commits into
actionsfrom
copilot/review-test-matrix

Conversation

Copilot AI commented Jul 2, 2026

Copy link
Copy Markdown

CI was fragmented across inconsistent and partially non-executable workflows, with mixed branch strategy and no unified reporting contract. This change introduces a single component-oriented pipeline that runs deterministically by surface area and emits normalized artifacts/summaries.

  • Unified CI entrypoint

    • Added .github/workflows/ci-matrix.yml as the primary workflow for:
      • pull_request on main (path-aware execution)
      • push on main (full matrix)
      • workflow_dispatch
    • Defines matrix targets for:
      • webapp/frontend
      • webapp/backend
      • marketing-site
  • Path-aware execution model

    • Added a changes job using dorny/paths-filter to detect touched components.
    • On PRs, only relevant matrix entries run; on main pushes, all entries run.
  • Standardized filesystem reports + artifacts

    • Each component writes outputs to ci-reports/<component-id>/.
    • Per-component artifacts are uploaded consistently (ci-reports-*).
    • Added per-component summary artifacts and a final aggregate ci-summary job that publishes run-level summary content.
  • Workflow hygiene / ownership cleanup

    • Moved non-executable placeholders out of active Actions directory:
      • docs/ci/legacy-workflows/PinkFlow-pipeline.yml
      • docs/ci/legacy-workflows/workflow-system.yml
    • Removed obsolete/template workflows not aligned to maintained repo components (rust/go/deno/webpack/static/pages/super-linter/pylint variants).
  • CI contract documentation

    • Updated CONTRIBUTING.md with matrix scope, trigger behavior, and report/artifact contract.
    • Added/adjusted lint config wiring (marketing-site/eslint.config.mjs, script alignment) to match current CI behavior.
jobs:
  changes:
    steps:
      - uses: dorny/paths-filter@v3
        id: filter
        with:
          filters: |
            webapp_frontend:
              - 'webapp/frontend/**'
            webapp_backend:
              - 'webapp/backend/**'
              - 'webapp/tests/**'
            marketing_site:
              - 'marketing-site/**'

  component-checks:
    strategy:
      matrix:
        component:
          - id: webapp-frontend
          - id: webapp-backend
          - id: marketing-site

@Pmaster-dev Pmaster-dev marked this pull request as ready for review July 2, 2026 13:54
@Pmaster-dev Pmaster-dev merged commit 5c8214d into actions Jul 2, 2026
5 of 7 checks passed
@qodo-code-review

Copy link
Copy Markdown

PR Summary by Qodo

Consolidate CI into a path-aware component matrix with normalized reports

⚙️ Configuration changes 📝 Documentation 🕐 20-40 Minutes

Grey Divider

AI Description

• Add a single path-aware CI matrix workflow for frontend, backend, and marketing-site.
• Standardize per-component logs/artifacts under ci-reports// and publish an aggregate run
 summary.
• Retire obsolete/non-executable workflows and document the new CI trigger + reporting contract.
Diagram

graph TD
  A["GitHub event (PR/push/dispatch)"] --> B["changes job (paths-filter)"] --> C["component-checks (matrix)"] --> D[("Artifacts: ci-reports-* / ci-summary-*")] --> E["ci-summary job"] --> F["GITHUB_STEP_SUMMARY"]
Loading
High-Level Assessment

The following are alternative approaches to this PR:

1. Reusable workflow per component (workflow_call)
  • ➕ Keeps per-component logic isolated and easier to evolve independently
  • ➕ Allows per-component permissions/caching/runner selection without a monolithic bash script
  • ➕ Encourages consistent interfaces via inputs/outputs
  • ➖ More YAML indirection; harder to read end-to-end execution in one file
  • ➖ Requires extra care to preserve consolidated reporting/summary behavior
2. Scripted CI runner (repo script + thin workflow)
  • ➕ Moves complex conditional bash into versioned scripts with unit-testable behavior
  • ➕ Easier local reproduction (run the same script locally/CI)
  • ➕ Reduces YAML verbosity and duplication
  • ➖ Requires maintaining a small CI tooling surface (shell/node/python script)
  • ➖ Still needs careful artifact + summary wiring in the workflow
3. Rely only on `on.pull_request.paths` (no changes job)
  • ➕ Simpler workflow graph (no filter job)
  • ➕ Less dependency on third-party actions
  • ➖ Doesn’t support per-matrix-entry gating as cleanly; risks over-running jobs
  • ➖ Harder to keep a single unified matrix while skipping irrelevant entries

Recommendation: The PR’s approach (paths-filter + conditional matrix) is a solid fit for component-scoped CI with consistent artifacts and summary output. If the bash logic grows, consider extracting per-component execution into reusable workflows or a repo script while keeping the same ci-reports// artifact contract.

Files changed (7) +250 / -1

Documentation (3) +34 / -0
CONTRIBUTING.mdDocument CI matrix scope, triggers, and report/artifact contract +34/-0

Document CI matrix scope, triggers, and report/artifact contract

• Adds contributor-facing documentation describing which components participate in CI, which checks are blocking vs non-blocking, and when the matrix runs. Defines the expected filesystem layout under 'ci-reports/<component-id>/' and the artifact naming/summary aggregation behavior.

CONTRIBUTING.md

PinkFlow-pipeline.ymlArchive non-executable legacy CI placeholder as documentation +0/-0

Archive non-executable legacy CI placeholder as documentation

• Moves/keeps a previously non-runnable pipeline concept document under 'docs/ci/legacy-workflows/' to remove it from active Actions workflows while preserving historical context.

docs/ci/legacy-workflows/PinkFlow-pipeline.yml

workflow-system.ymlArchive legacy workflow-system spec under docs +0/-0

Archive legacy workflow-system spec under docs

• Stores the prior workflow-system configuration/spec as documentation rather than an active GitHub Actions workflow, clarifying it is not executed in CI.

docs/ci/legacy-workflows/workflow-system.yml

Other (4) +216 / -1
ci-matrix.ymlAdd unified path-aware CI matrix with standardized artifacts and summaries +191/-0

Add unified path-aware CI matrix with standardized artifacts and summaries

• Introduces a single workflow that (1) detects changed components via dorny/paths-filter, (2) conditionally runs a component matrix on PRs while running the full matrix on main pushes, and (3) uploads normalized per-component 'ci-reports/*' artifacts. Adds per-component summary artifacts and a final aggregator job that publishes a run-level GitHub Actions summary.

.github/workflows/ci-matrix.yml

eslint.config.mjsAdd explicit ESLint flat config based on Next.js core-web-vitals +5/-0

Add explicit ESLint flat config based on Next.js core-web-vitals

• Adds a minimal flat-config entrypoint that imports 'eslint-config-next/core-web-vitals' and exports it as the site lint configuration, aligning tooling expectations with the updated CI lint command.

marketing-site/eslint.config.mjs

package.jsonAlign marketing-site lint script to run ESLint directly +1/-1

Align marketing-site lint script to run ESLint directly

• Changes the 'lint' script from 'next lint' to 'eslint .' to match the CI job’s lint invocation strategy and provide consistent reporting behavior.

marketing-site/package.json

.eslintrc.cjsAdd ESLint configuration for webapp frontend +19/-0

Add ESLint configuration for webapp frontend

• Introduces a frontend ESLint config enabling TypeScript + React hooks recommendations, setting environment defaults, and defining a react-refresh rule to prevent invalid export patterns during hot reload.

webapp/frontend/.eslintrc.cjs

@qodo-code-review

Copy link
Copy Markdown

Code Review by Qodo

🐞 Bugs (3) 📘 Rule violations (0) 📜 Skill insights (0)

Grey Divider


Action required

1. CI changes skip checks 🐞 Bug ☼ Reliability
Description
On pull requests, component-checks only runs when dorny/paths-filter marks a component as
changed, but the filter rules exclude .github/workflows/ci-matrix.yml and CONTRIBUTING.md even
though those files trigger the workflow. As a result, PRs that only modify the CI workflow/docs can
run zero component jobs and provide no validation of the CI change itself.
Code

.github/workflows/ci-matrix.yml[R4-53]

+  pull_request:
+    branches: [main]
+    paths:
+      - 'webapp/frontend/**'
+      - 'webapp/backend/**'
+      - 'webapp/tests/**'
+      - 'marketing-site/**'
+      - '.github/workflows/ci-matrix.yml'
+      - 'CONTRIBUTING.md'
+  push:
+    branches: [main]
+  workflow_dispatch:
+
+permissions:
+  contents: read
+
+jobs:
+  changes:
+    name: Detect changed components
+    runs-on: ubuntu-latest
+    outputs:
+      webapp_frontend: ${{ steps.filter.outputs.webapp_frontend }}
+      webapp_backend: ${{ steps.filter.outputs.webapp_backend }}
+      marketing_site: ${{ steps.filter.outputs.marketing_site }}
+    steps:
+      - name: Checkout
+        uses: actions/checkout@v4
+
+      - name: Filter changed paths
+        id: filter
+        uses: dorny/paths-filter@v3
+        with:
+          filters: |
+            webapp_frontend:
+              - 'webapp/frontend/**'
+            webapp_backend:
+              - 'webapp/backend/**'
+              - 'webapp/tests/**'
+            marketing_site:
+              - 'marketing-site/**'
+
+  component-checks:
+    name: ${{ matrix.component.name }} checks
+    runs-on: ubuntu-latest
+    needs: changes
+    if: |
+      github.event_name != 'pull_request' ||
+      (matrix.component.id == 'webapp-frontend' && needs.changes.outputs.webapp_frontend == 'true') ||
+      (matrix.component.id == 'webapp-backend' && needs.changes.outputs.webapp_backend == 'true') ||
+      (matrix.component.id == 'marketing-site' && needs.changes.outputs.marketing_site == 'true')
Evidence
The workflow is triggered by changes to the workflow/docs, but the paths-filter only considers
component directories, and component-checks is gated solely on those filter outputs for PRs—so
workflow/docs-only PRs will skip all component jobs.

.github/workflows/ci-matrix.yml[4-53]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

### Issue description
`ci-matrix.yml` triggers on changes to `.github/workflows/ci-matrix.yml` and `CONTRIBUTING.md`, but the `changes` job’s `filters` don’t include those paths. For PRs that only touch those files, all `needs.changes.outputs.*` values are false and the entire `component-checks` matrix is skipped, meaning CI workflow changes are not exercised.

### Issue Context
This is specifically caused by the mismatch between `on.pull_request.paths` and the `dorny/paths-filter` `filters`, combined with the `component-checks.if` gate relying exclusively on the filter outputs for PRs.

### Fix Focus Areas
- .github/workflows/ci-matrix.yml[4-53]

### Suggested fix
Add a dedicated filter (e.g., `ci_infra`) for `.github/workflows/ci-matrix.yml` and `CONTRIBUTING.md` (and any other CI-contract files you want), then update the `component-checks.if` condition so that when `ci_infra == 'true'` you run the full matrix (or at least a representative subset).

Example approach:
- In `filters`, add:
 - `ci_infra: ['.github/workflows/ci-matrix.yml', 'CONTRIBUTING.md']`
- In `component-checks.if` (PR case), OR in `needs.changes.outputs.ci_infra == 'true'` for all components (or restructure to: if PR and (ci_infra || component_changed)).

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools



Remediation recommended

2. Frontend install non-deterministic 🐞 Bug ☼ Reliability
Description
The webapp-frontend CI path uses npm install even though webapp/frontend has a
package-lock.json, which is less deterministic than npm ci and can drift dependency resolution
across runs. This can cause CI vs local mismatches and harder-to-reproduce failures.
Code

.github/workflows/ci-matrix.yml[R92-95]

+          if [ "${{ matrix.component.id }}" = "webapp-frontend" ]; then
+            cd "${{ matrix.component.path }}"
+            npm install --legacy-peer-deps 2>&1 | tee "../../${report_root}/install.log"
+            lint_status=0
Evidence
The workflow explicitly runs npm install for the frontend, while the frontend directory has an npm
lockfile, indicating CI can use npm ci for reproducibility.

.github/workflows/ci-matrix.yml[92-95]
webapp/frontend/package-lock.json[1-6]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

### Issue description
`component-checks` runs `npm install --legacy-peer-deps` for `webapp-frontend` even though a lockfile exists. In CI, `npm ci` is the deterministic install mode and better matches the lockfile contract.

### Issue Context
The repo contains `webapp/frontend/package-lock.json`, so CI can use `npm ci` (optionally still with `--legacy-peer-deps` if required by the dependency graph).

### Fix Focus Areas
- .github/workflows/ci-matrix.yml[92-101]

### Suggested fix
Replace:
- `npm install --legacy-peer-deps`
with:
- `npm ci --legacy-peer-deps`
(or `npm ci` if `--legacy-peer-deps` is not needed).

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


3. Summary breaks when none run 🐞 Bug ☼ Reliability
Description
ci-summary always runs actions/download-artifact for ci-summary-*, but when no component jobs
run (e.g., workflow/docs-only PRs), there may be zero matching artifacts and the download step can
fail before the job can emit the intended fallback summary message. This makes the workflow summary
path brittle for empty matrices.
Code

.github/workflows/ci-matrix.yml[R166-190]

+  ci-summary:
+    name: CI summary
+    runs-on: ubuntu-latest
+    needs: [component-checks]
+    if: always()
+    steps:
+      - name: Download summary artifacts
+        uses: actions/download-artifact@v4
+        with:
+          pattern: ci-summary-*
+          path: ci-summary
+          merge-multiple: true
+
+      - name: Publish workflow summary
+        shell: bash
+        run: |
+          set -euo pipefail
+          echo "# CI Matrix Summary" >> "$GITHUB_STEP_SUMMARY"
+          if ls ci-summary/*.md >/dev/null 2>&1; then
+            for file in ci-summary/*.md; do
+              cat "$file" >> "$GITHUB_STEP_SUMMARY"
+              echo >> "$GITHUB_STEP_SUMMARY"
+            done
+          else
+            echo "No component jobs ran for this change set." >> "$GITHUB_STEP_SUMMARY"
Evidence
The workflow attempts artifact download before it checks whether any summary files exist locally; if
the download step errors due to no matching artifacts, the later fallback branch cannot execute.

.github/workflows/ci-matrix.yml[166-190]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

### Issue description
The `ci-summary` job downloads `ci-summary-*` artifacts unconditionally. If the matrix produced no summary artifacts, the download step may fail and prevent the later script from writing the fallback "No component jobs ran" message.

### Issue Context
This is most likely when `component-checks` is skipped for all matrix entries.

### Fix Focus Areas
- .github/workflows/ci-matrix.yml[166-190]

### Suggested fix
Make the download step tolerant of the "no artifacts" case, for example by:
- Skipping download when `needs.component-checks.result == 'skipped'`, OR
- Adding `continue-on-error: true` to the download step and letting the subsequent `ls ci-summary/*.md` gate the messaging, OR
- If supported, configuring the download action to ignore missing artifacts.

Then ensure the publish step still writes the fallback message when no summaries exist.

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


Grey Divider

Qodo Logo

Comment on lines +4 to +53
pull_request:
branches: [main]
paths:
- 'webapp/frontend/**'
- 'webapp/backend/**'
- 'webapp/tests/**'
- 'marketing-site/**'
- '.github/workflows/ci-matrix.yml'
- 'CONTRIBUTING.md'
push:
branches: [main]
workflow_dispatch:

permissions:
contents: read

jobs:
changes:
name: Detect changed components
runs-on: ubuntu-latest
outputs:
webapp_frontend: ${{ steps.filter.outputs.webapp_frontend }}
webapp_backend: ${{ steps.filter.outputs.webapp_backend }}
marketing_site: ${{ steps.filter.outputs.marketing_site }}
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Filter changed paths
id: filter
uses: dorny/paths-filter@v3
with:
filters: |
webapp_frontend:
- 'webapp/frontend/**'
webapp_backend:
- 'webapp/backend/**'
- 'webapp/tests/**'
marketing_site:
- 'marketing-site/**'

component-checks:
name: ${{ matrix.component.name }} checks
runs-on: ubuntu-latest
needs: changes
if: |
github.event_name != 'pull_request' ||
(matrix.component.id == 'webapp-frontend' && needs.changes.outputs.webapp_frontend == 'true') ||
(matrix.component.id == 'webapp-backend' && needs.changes.outputs.webapp_backend == 'true') ||
(matrix.component.id == 'marketing-site' && needs.changes.outputs.marketing_site == 'true')

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Action required

1. Ci changes skip checks 🐞 Bug ☼ Reliability

On pull requests, component-checks only runs when dorny/paths-filter marks a component as
changed, but the filter rules exclude .github/workflows/ci-matrix.yml and CONTRIBUTING.md even
though those files trigger the workflow. As a result, PRs that only modify the CI workflow/docs can
run zero component jobs and provide no validation of the CI change itself.
Agent Prompt
### Issue description
`ci-matrix.yml` triggers on changes to `.github/workflows/ci-matrix.yml` and `CONTRIBUTING.md`, but the `changes` job’s `filters` don’t include those paths. For PRs that only touch those files, all `needs.changes.outputs.*` values are false and the entire `component-checks` matrix is skipped, meaning CI workflow changes are not exercised.

### Issue Context
This is specifically caused by the mismatch between `on.pull_request.paths` and the `dorny/paths-filter` `filters`, combined with the `component-checks.if` gate relying exclusively on the filter outputs for PRs.

### Fix Focus Areas
- .github/workflows/ci-matrix.yml[4-53]

### Suggested fix
Add a dedicated filter (e.g., `ci_infra`) for `.github/workflows/ci-matrix.yml` and `CONTRIBUTING.md` (and any other CI-contract files you want), then update the `component-checks.if` condition so that when `ci_infra == 'true'` you run the full matrix (or at least a representative subset).

Example approach:
- In `filters`, add:
  - `ci_infra: ['.github/workflows/ci-matrix.yml', 'CONTRIBUTING.md']`
- In `component-checks.if` (PR case), OR in `needs.changes.outputs.ci_infra == 'true'` for all components (or restructure to: if PR and (ci_infra || component_changed)).

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools

Comment on lines +92 to +95
if [ "${{ matrix.component.id }}" = "webapp-frontend" ]; then
cd "${{ matrix.component.path }}"
npm install --legacy-peer-deps 2>&1 | tee "../../${report_root}/install.log"
lint_status=0

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remediation recommended

2. Frontend install non-deterministic 🐞 Bug ☼ Reliability

The webapp-frontend CI path uses npm install even though webapp/frontend has a
package-lock.json, which is less deterministic than npm ci and can drift dependency resolution
across runs. This can cause CI vs local mismatches and harder-to-reproduce failures.
Agent Prompt
### Issue description
`component-checks` runs `npm install --legacy-peer-deps` for `webapp-frontend` even though a lockfile exists. In CI, `npm ci` is the deterministic install mode and better matches the lockfile contract.

### Issue Context
The repo contains `webapp/frontend/package-lock.json`, so CI can use `npm ci` (optionally still with `--legacy-peer-deps` if required by the dependency graph).

### Fix Focus Areas
- .github/workflows/ci-matrix.yml[92-101]

### Suggested fix
Replace:
- `npm install --legacy-peer-deps`
with:
- `npm ci --legacy-peer-deps`
(or `npm ci` if `--legacy-peer-deps` is not needed).

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools

Comment on lines +166 to +190
ci-summary:
name: CI summary
runs-on: ubuntu-latest
needs: [component-checks]
if: always()
steps:
- name: Download summary artifacts
uses: actions/download-artifact@v4
with:
pattern: ci-summary-*
path: ci-summary
merge-multiple: true

- name: Publish workflow summary
shell: bash
run: |
set -euo pipefail
echo "# CI Matrix Summary" >> "$GITHUB_STEP_SUMMARY"
if ls ci-summary/*.md >/dev/null 2>&1; then
for file in ci-summary/*.md; do
cat "$file" >> "$GITHUB_STEP_SUMMARY"
echo >> "$GITHUB_STEP_SUMMARY"
done
else
echo "No component jobs ran for this change set." >> "$GITHUB_STEP_SUMMARY"

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remediation recommended

3. Summary breaks when none run 🐞 Bug ☼ Reliability

ci-summary always runs actions/download-artifact for ci-summary-*, but when no component jobs
run (e.g., workflow/docs-only PRs), there may be zero matching artifacts and the download step can
fail before the job can emit the intended fallback summary message. This makes the workflow summary
path brittle for empty matrices.
Agent Prompt
### Issue description
The `ci-summary` job downloads `ci-summary-*` artifacts unconditionally. If the matrix produced no summary artifacts, the download step may fail and prevent the later script from writing the fallback "No component jobs ran" message.

### Issue Context
This is most likely when `component-checks` is skipped for all matrix entries.

### Fix Focus Areas
- .github/workflows/ci-matrix.yml[166-190]

### Suggested fix
Make the download step tolerant of the "no artifacts" case, for example by:
- Skipping download when `needs.component-checks.result == 'skipped'`, OR
- Adding `continue-on-error: true` to the download step and letting the subsequent `ls ci-summary/*.md` gate the messaging, OR
- If supported, configuring the download action to ignore missing artifacts.

Then ensure the publish step still writes the fallback message when no summaries exist.

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools

@Pmaster-dev

Copy link
Copy Markdown
Owner

@copilot review

@Pmaster-dev Pmaster-dev requested a review from Copilot July 2, 2026 15:29

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Consolidates GitHub Actions CI into a single, component-oriented matrix workflow with path-aware execution on PRs, standardized report/artifact outputs, and removes legacy/non-aligned workflows while documenting the new CI contract in CONTRIBUTING.md.

Changes:

  • Added a unified .github/workflows/ci-matrix.yml workflow with a changed-path detector and per-component checks/artifacts plus an aggregated run summary.
  • Standardized CI outputs under ci-reports/<component-id>/ and documented the reporting/artifact contract in CONTRIBUTING.md.
  • Retired multiple legacy/template workflows and moved non-executable placeholders into docs/ci/legacy-workflows/; adjusted marketing-site lint wiring.

Reviewed changes

Copilot reviewed 15 out of 18 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
.github/workflows/ci-matrix.yml New unified CI entrypoint with change-detection, component matrix execution, standardized artifacts, and final summary aggregation.
CONTRIBUTING.md Documents matrix scope, triggers, and the reports/artifacts contract.
webapp/frontend/.eslintrc.cjs Adds an ESLint configuration for the frontend component.
marketing-site/package.json Aligns marketing-site lint script with the updated ESLint wiring.
marketing-site/eslint.config.mjs Introduces flat ESLint config for the marketing site.
docs/ci/legacy-workflows/workflow-system.yml Archives a non-executable legacy workflow placeholder under docs.
docs/ci/legacy-workflows/PinkFlow-pipeline.yml Archives a non-executable legacy pipeline placeholder under docs.
.github/workflows/webpack.yml Removed legacy/template workflow.
.github/workflows/super-linter.yml Removed legacy/template workflow.
.github/workflows/static.yml Removed legacy/template workflow.
.github/workflows/Rust-Core-CI-Gateway-Delivery.yml Removed legacy/non-aligned workflow.
.github/workflows/rust-ci.yml Removed legacy/non-aligned workflow.
.github/workflows/pylint.yml Removed legacy/template workflow.
.github/workflows/nextjs.yml Removed legacy/template workflow.
.github/workflows/go.yml Removed legacy/template workflow.
.github/workflows/github-pages.yml Removed legacy/non-aligned workflow.
.github/workflows/deno.yml Removed legacy/template workflow.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +29 to +30
- name: Checkout
uses: actions/checkout@v4
Comment on lines +93 to +94
cd "${{ matrix.component.path }}"
npm install --legacy-peer-deps 2>&1 | tee "../../${report_root}/install.log"
Comment on lines +1 to +5
import nextVitals from 'eslint-config-next/core-web-vitals'

const config = [...nextVitals]

export default config

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

oxlint

Comment on lines +1 to +3
import nextVitals from 'eslint-config-next/core-web-vitals'

const config = [...nextVitals]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants