ci: run code-pushup on self in monorepo mode
Related to #888 ... sort of. I want to be able to evaluate our CI logs in a representative environment, which requires completing what @BioPhoton started in #1062.
I split our Code PushUp workflow into 2 distinct jobs:
- standalone (see logs)
- basic "all in one" setup
- single config file at repository root
- no Nx task dependencies or plugin caching
- includes all plugins
- monorepo (see logs)
- enterprise-level "mega Nx" setup
- heavily reliant on Nx task graph and plugin caching
- each package has its own config
- skips
print-configcommands by providingconfigPatterns - only includes plugins that make sense on project-level
Each job posts separate PR comments (I added a special jobId to @code-pushup/ci for this use case).
I refactored the code-pushup.preset.ts file to minimize duplication in code-pushup.config.ts files.
View your CI Pipeline Execution ↗ for commit a61f9917ff408fb2ef3250aeccf542e85b3e0faa
| Command | Status | Duration | Result |
|---|---|---|---|
nx code-pushup -- compare |
✅ Succeeded | 6s | View ↗ |
nx code-pushup -- |
✅ Succeeded | 6m 39s | View ↗ |
nx code-pushup -- print-config --output=/home/r... |
✅ Succeeded | 5s | View ↗ |
☁️ Nx Cloud last updated this comment at 2025-11-28 17:43:11 UTC
@code-pushup/ci
npm i https://pkg.pr.new/code-pushup/cli/@code-pushup/ci@1154
@code-pushup/cli
npm i https://pkg.pr.new/code-pushup/cli/@code-pushup/cli@1154
@code-pushup/core
npm i https://pkg.pr.new/code-pushup/cli/@code-pushup/core@1154
@code-pushup/create-cli
npm i https://pkg.pr.new/code-pushup/cli/@code-pushup/create-cli@1154
@code-pushup/models
npm i https://pkg.pr.new/code-pushup/cli/@code-pushup/models@1154
@code-pushup/axe-plugin
npm i https://pkg.pr.new/code-pushup/cli/@code-pushup/axe-plugin@1154
@code-pushup/nx-plugin
npm i https://pkg.pr.new/code-pushup/cli/@code-pushup/nx-plugin@1154
@code-pushup/coverage-plugin
npm i https://pkg.pr.new/code-pushup/cli/@code-pushup/coverage-plugin@1154
@code-pushup/eslint-plugin
npm i https://pkg.pr.new/code-pushup/cli/@code-pushup/eslint-plugin@1154
@code-pushup/js-packages-plugin
npm i https://pkg.pr.new/code-pushup/cli/@code-pushup/js-packages-plugin@1154
@code-pushup/jsdocs-plugin
npm i https://pkg.pr.new/code-pushup/cli/@code-pushup/jsdocs-plugin@1154
@code-pushup/lighthouse-plugin
npm i https://pkg.pr.new/code-pushup/cli/@code-pushup/lighthouse-plugin@1154
@code-pushup/typescript-plugin
npm i https://pkg.pr.new/code-pushup/cli/@code-pushup/typescript-plugin@1154
@code-pushup/utils
npm i https://pkg.pr.new/code-pushup/cli/@code-pushup/utils@1154
@code-pushup/models-transformers
npm i https://pkg.pr.new/code-pushup/cli/@code-pushup/models-transformers@1154
commit: a61f991
Code PushUp
🤨 Code PushUp report has both improvements and regressions – compared current commit df4cd753ff6392d3eb8d8ffa64509433875adb28 with previous commit d21a99c139fac25662d41845cea1f1d9bed964f2.
🕵️ See full comparison in Code PushUp portal 🔍
🏷️ Categories
| 🏷️ Category | ⭐ Previous score | ⭐ Current score | 🔄 Score change |
|---|---|---|---|
| Type Safety | 🟢 100 | 🟡 56 | |
| Bug prevention | 🟢 100 | 🟡 67 | |
| Miscellaneous | 🟢 100 | 🟡 67 | |
| Performance | 🔴 36 | 🔴 41 | |
| Code coverage | 🟡 89 | 🟡 89 | |
| Documentation | 🔴 35 | 🔴 35 | |
| Code style | 🟢 100 | 🟢 100 | – |
| Security | 🔴 43 | 🔴 43 | – |
| Updates | 🟡 71 | 🟡 71 | – |
| Accessibility | 🟢 92 | 🟢 92 | – |
| Best Practices | 🟢 100 | 🟢 100 | – |
| SEO | 🟢 92 | 🟢 92 | – |
👍 1 group improved, 👎 4 groups regressed, 👍 5 audits improved, 👎 9 audits regressed, 16 audits changed without impacting score
🗃️ Groups
| 🔌 Plugin | 🗃️ Group | ⭐ Previous score | ⭐ Current score | 🔄 Score change |
|---|---|---|---|---|
| TypeScript | Problems | 🟢 100 | 🔴 0 | |
| TypeScript | Miscellaneous | 🟢 100 | 🟡 67 | |
| Lighthouse | Performance | 🔴 36 | 🔴 41 | |
| Code coverage | Code coverage metrics | 🟡 89 | 🟡 89 | |
| JSDoc coverage | Documentation coverage | 🔴 35 | 🔴 35 |
18 other groups are unchanged.
🛡️ Audits
| 🔌 Plugin | 🛡️ Audit | 📏 Previous value | 📏 Current value | 🔄 Value change |
|---|---|---|---|---|
| TypeScript | Semantic errors | 🟩 passed | 🟥 2608 errors | |
| TypeScript | No implicit any errors | 🟩 passed | 🟥 96 errors | |
| TypeScript | Syntax errors | 🟩 passed | 🟥 5 errors | |
| TypeScript | Declaration and language service errors | 🟩 passed | 🟥 2 errors | |
| Lighthouse | Total Blocking Time | 🟥 2,000 ms | 🟥 1,030 ms | |
| Lighthouse | Speed Index | 🟥 6.9 s | 🟥 6.2 s | |
| Lighthouse | First Contentful Paint | 🟥 3.1 s | 🟥 3.3 s | |
| Lighthouse | Time to Interactive | 🟥 13.7 s | 🟥 12.4 s | |
| Code coverage | Line coverage | 🟨 85.3 % | 🟨 84.5 % | |
| Code coverage | Branch coverage | 🟨 87.3 % | 🟨 87.1 % | |
| JSDoc coverage | Types coverage | 🟥 238 undocumented types | 🟥 241 undocumented types | |
| JSDoc coverage | Functions coverage | 🟥 557 undocumented functions | 🟥 561 undocumented functions | |
| Code coverage | Function coverage | 🟩 90.3 % | 🟩 90.4 % | |
| JSDoc coverage | Variables coverage | 🟥 248 undocumented variables | 🟥 245 undocumented variables | |
| Lighthouse | Avoids enormous network payloads | 🟩 Total size was 2,020 KiB | 🟩 Total size was 2,048 KiB | |
| Lighthouse | Minimizes main-thread work | 🟥 12.6 s | 🟥 8.9 s | |
| Lighthouse | JavaScript execution time | 🟥 5.9 s | 🟥 3.6 s | |
| Lighthouse | Metrics | 🟩 100% | 🟩 100% | |
| Lighthouse | Uses efficient cache policy on static assets | 🟨 30 resources found | 🟨 30 resources found | |
| Lighthouse | Server Backend Latencies | 🟩 1,040 ms | 🟩 1,240 ms | |
| Lighthouse | Max Potential First Input Delay | 🟥 1,230 ms | 🟥 1,080 ms | |
| Lighthouse | Reduce unused CSS | 🟥 Potential savings of 105 KiB | 🟥 Potential savings of 94 KiB | |
| Lighthouse | Avoids an excessive DOM size | 🟥 2,242 elements | 🟥 2,358 elements | |
| Lighthouse | Reduce unused JavaScript | 🟥 Potential savings of 184 KiB | 🟥 Potential savings of 184 KiB | |
| Lighthouse | Remove duplicate modules in JavaScript bundles | 🟥 Potential savings of 102 KiB | 🟥 Potential savings of 105 KiB | |
| Axe Accessibility | ARIA hidden element must not be focusable or contain focusable elements | 🟩 190 elements | 🟩 200 elements | |
| Axe Accessibility | IDs used in ARIA and labels must be unique | 🟩 37 elements | 🟩 28 elements | |
| Lighthouse | Network Round Trip Times | 🟩 50 ms | 🟩 60 ms | |
| Lighthouse | Initial server response time was short | 🟩 Root document took 600 ms | 🟩 Root document took 600 ms | |
| Lighthouse | Largest Contentful Paint | 🟥 11.1 s | 🟥 11.1 s |
648 other audits are unchanged.
Code PushUp
😐 Code PushUp report is unchanged – compared current commit df4cd753ff6392d3eb8d8ffa64509433875adb28 with previous commit df4cd753ff6392d3eb8d8ffa64509433875adb28.
All of 14 projects are unchanged.