Skip to content

Conversation

@hanna-skryl
Copy link
Collaborator

Problem

The Axe plugin failed during its first test run in an external repository:

Running Axe accessibility checks for 1 URL...
  Testing URL 1/1: https://example.com
  Checking Chromium browser installation...
  Axe execution failed for https://example.com: Internal Logger error - concurrent spinners are not supported

Root cause: The logger only supports one spinner at a time. When plugins execute concurrently, the Axe plugin's browser installation attempts to start a second spinner while another plugin's spinner is active, triggering the error.

Solution

Added a silent flag to executeProcess to bypass the logger spinner for background operations:

await executeProcess({
  command: 'npx',
  args: ['playwright-core', 'install', 'chromium'],
  silent: true,
});

Testing

  1. Reproduced the error by running multiple Code PushUp plugins in the external repository
  2. Applied the fix by modifying executeProcess source code
  3. Verified the execution succeeded without the concurrent spinner error

@hanna-skryl hanna-skryl self-assigned this Nov 13, 2025
@nx-cloud
Copy link

nx-cloud bot commented Nov 13, 2025

View your CI Pipeline Execution ↗ for commit 75993eb

Command Status Duration Result
nx code-pushup --nx-bail -- compare ✅ Succeeded 56s View ↗
nx code-pushup --nx-bail -- ✅ Succeeded 1m 3s View ↗
nx code-pushup --nx-bail -- print-config --outp... ✅ Succeeded 4m 18s View ↗

☁️ Nx Cloud last updated this comment at 2025-11-13 20:38:13 UTC

@pkg-pr-new
Copy link

pkg-pr-new bot commented Nov 13, 2025

Open in StackBlitz

@code-pushup/ci

npm i https://pkg.pr.new/code-pushup/cli/@code-pushup/ci@1144

@code-pushup/cli

npm i https://pkg.pr.new/code-pushup/cli/@code-pushup/cli@1144

@code-pushup/core

npm i https://pkg.pr.new/code-pushup/cli/@code-pushup/core@1144

@code-pushup/create-cli

npm i https://pkg.pr.new/code-pushup/cli/@code-pushup/create-cli@1144

@code-pushup/models

npm i https://pkg.pr.new/code-pushup/cli/@code-pushup/models@1144

@code-pushup/nx-plugin

npm i https://pkg.pr.new/code-pushup/cli/@code-pushup/nx-plugin@1144

@code-pushup/axe-plugin

npm i https://pkg.pr.new/code-pushup/cli/@code-pushup/axe-plugin@1144

@code-pushup/coverage-plugin

npm i https://pkg.pr.new/code-pushup/cli/@code-pushup/coverage-plugin@1144

@code-pushup/eslint-plugin

npm i https://pkg.pr.new/code-pushup/cli/@code-pushup/eslint-plugin@1144

@code-pushup/js-packages-plugin

npm i https://pkg.pr.new/code-pushup/cli/@code-pushup/js-packages-plugin@1144

@code-pushup/jsdocs-plugin

npm i https://pkg.pr.new/code-pushup/cli/@code-pushup/jsdocs-plugin@1144

@code-pushup/lighthouse-plugin

npm i https://pkg.pr.new/code-pushup/cli/@code-pushup/lighthouse-plugin@1144

@code-pushup/typescript-plugin

npm i https://pkg.pr.new/code-pushup/cli/@code-pushup/typescript-plugin@1144

@code-pushup/utils

npm i https://pkg.pr.new/code-pushup/cli/@code-pushup/utils@1144

@code-pushup/models-transformers

npm i https://pkg.pr.new/code-pushup/cli/@code-pushup/models-transformers@1144

commit: 75993eb

@github-actions
Copy link
Contributor

Code PushUp

🤨 Code PushUp report has both improvements and regressions – compared current commit 1ef1c5b with previous commit c90eea2.

🕵️ See full comparison in Code PushUp portal 🔍

🏷️ Categories

🏷️ Category ⭐ Previous score ⭐ Current score 🔄 Score change
Performance 🔴 35 🔴 31 ↓ −4.6
Code coverage 🟡 88 🟡 88 ↑ +0.1
Security 🟡 56 🟡 56
Updates 🟡 75 🟡 75
Accessibility 🟢 92 🟢 92
Best Practices 🟢 100 🟢 100
SEO 🟡 61 🟡 61
Type Safety 🟢 100 🟢 100
Bug prevention 🟢 100 🟢 100
Miscellaneous 🟢 100 🟢 100
Code style 🟢 100 🟢 100
Documentation 🔴 35 🔴 35
👍 1 group improved, 👎 1 group regressed, 👍 1 audit improved, 👎 4 audits regressed, 14 audits changed without impacting score

🗃️ Groups

🔌 Plugin 🗃️ Group ⭐ Previous score ⭐ Current score 🔄 Score change
Lighthouse Performance 🔴 35 🔴 31 ↓ −4.6
Code coverage Code coverage metrics 🟡 88 🟡 88 ↑ +0.1

21 other groups are unchanged.

🛡️ Audits

🔌 Plugin 🛡️ Audit 📏 Previous value 📏 Current value 🔄 Value change
Lighthouse First Contentful Paint 🟨 3.0 s 🟥 3.6 s ↑ +21.1 %
Lighthouse Speed Index 🟥 6.6 s 🟥 7.9 s ↑ +20.4 %
Lighthouse Total Blocking Time 🟥 2,430 ms 🟥 3,700 ms ↑ +52.6 %
Lighthouse Time to Interactive 🟥 13.3 s 🟥 14.2 s ↑ +6.9 %
Code coverage Function coverage 🟨 89.7 % 🟨 89.7 % ↑ +0.1 %
Lighthouse Minimizes main-thread work 🟥 13.3 s 🟥 15.6 s ↑ +17.2 %
Lighthouse JavaScript execution time 🟥 4.9 s 🟥 6.6 s ↑ +33.1 %
Lighthouse Metrics 🟩 100% 🟩 100% ↑ +6.9 %
Lighthouse Max Potential First Input Delay 🟥 1,060 ms 🟥 1,800 ms ↑ +69.4 %
Lighthouse Largest Contentful Paint 🟥 11.3 s 🟥 12.0 s ↑ +6.5 %
Lighthouse Server Backend Latencies 🟩 1,230 ms 🟩 830 ms ↓ −32.4 %
Lighthouse Uses efficient cache policy on static assets 🟨 30 resources found 🟨 30 resources found ↑ +0.1 %
Lighthouse Remove duplicate modules in JavaScript bundles 🟥 Potential savings of 102 KiB 🟥 Potential savings of 98 KiB ↓ −38.8 %
Lighthouse Initial server response time was short 🟩 Root document took 560 ms 🟩 Root document took 420 ms ↓ −25.1 %
Lighthouse Reduce unused JavaScript 🟥 Potential savings of 183 KiB 🟥 Potential savings of 179 KiB ↓ −7.1 %
Lighthouse Reduce unused CSS 🟥 Potential savings of 105 KiB 🟥 Potential savings of 105 KiB ↓ −8.2 %
Lighthouse Network Round Trip Times 🟩 50 ms 🟩 80 ms ↑ +70.7 %
Lighthouse Avoids enormous network payloads 🟩 Total size was 2,034 KiB 🟩 Total size was 2,034 KiB ↑ +0.1 %
Code coverage Line coverage 🟨 84.5 % 🟨 84.5 % ↑ +0.1 %

659 other audits are unchanged.

@hanna-skryl hanna-skryl marked this pull request as ready for review November 13, 2025 20:39
@matejchalk
Copy link
Collaborator

Hi, you've run into a bug I discovered recently. The plugins are supposed to be run sequentially. I designed the logger groups and spinners based on this assumption, then I found out that it was (probably mistakenly) refactored to concurrent execution some time ago. 😅

I've opened a PR to prevent concurrent execution. This should enable the Axe plugin to log processes just like any other plugin. The problem isn't specific to Axe, any 2 plugins that execute some shell command would run into the same conflict.

@hanna-skryl
Copy link
Collaborator Author

Closing this PR in favor of the fix that restores sequential plugin execution.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants