Repository navigation
Commit 492decb
authored
fix: run full local CI lanes in parallel and speed up Python codegen (#450)
* ci: run the full local CI as parallel lanes and fix the slow steps at the root
The flagless scripts/ci-local.sh took about 85 minutes, every lane one after
another. Measured on the same 24-core machine it now takes 10m17s, green, with
the same tests: every suite reports the same counts, less the duplicate below.
- Parallel lanes. The tree-writing steps (install, drift gates, one workspace
build) run first; the rest run as independent lanes, at most MO_CI_JOBS (8)
at once, each into its own log printed as one block when it ends. The
summary lists every step's time, the slowest steps and each lane's wall
time. --quick and --only stay serial and select exactly what they did.
- Each test runs once. tests/integration ran inside "conformance: python" and
again as "integration-tests (python)"; the java and kotlin conformance
classes ran inside the reactor and again on their own; the workspace was
rebuilt and reinstalled by several lanes; mvn install ran three times.
- Python codegen ran ruff as `python -m ruff`, a second interpreter per call,
twice per emitted file: ~90% of codegen time. It now runs ruff's binary
(find_ruff_bin), same version, same output. Python conformance 16m49s ->
1m20s alone (with xdist).
- The shared Java test logback config was never wired, so every module but
metadata logged at DEBUG (1.86M lines a run). Surefire now points every
module at it.
- Runners in parallel: pytest-xdist, bun test --parallel for the TS
integration suite, surefire forkCount=3 for the JVM integration modules.
TS integration 15m52s -> 2m49s, Java 6m57s -> 1m55s, Kotlin 4m52s -> 2m33s,
Python integration 5m51s -> 56s, each measured alone.
- The Postgres sidecar is named per checkout; each scenario still gets its own
database.
* no-mistakes(review): apply reviewer inline fixes
* no-mistakes(review): Keep python integration tests in conformance when docker down
* no-mistakes(test): Bind servers and containers to OS-assigned ports
* no-mistakes(document): Fix stale cube lane ordering in cube-export docs1 parent 899b774 commit 492decb
37 files changed
Lines changed: 1036 additions & 881 deletions
File tree
- docs
- features
- fixtures/api-contract-conformance/jsonb
- scripts
- server
- csharp/MetaObjects.IntegrationTests
- Api
- Runner
- java
- codegen-kotlin-exposed1x-check/src/test/kotlin/com/metaobjects/generator/kotlin/exposed1x
- integration-tests-kotlin/src/test/kotlin/com/metaobjects/integration/kotlin
- integration-tests/src/test/java/com/metaobjects/integration
- python
- src/metaobjects/codegen
- tests
- codegen
- integration
- typescript/packages/integration-tests/src
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
10 | 10 | | |
11 | 11 | | |
12 | 12 | | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
13 | 23 | | |
14 | 24 | | |
15 | 25 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
91 | 91 | | |
92 | 92 | | |
93 | 93 | | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
94 | 102 | | |
95 | 103 | | |
96 | 104 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
34 | 34 | | |
35 | 35 | | |
36 | 36 | | |
37 | | - | |
| 37 | + | |
38 | 38 | | |
39 | 39 | | |
40 | 40 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
648 | 648 | | |
649 | 649 | | |
650 | 650 | | |
651 | | - | |
652 | | - | |
| 651 | + | |
| 652 | + | |
653 | 653 | | |
654 | 654 | | |
655 | 655 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
132 | 132 | | |
133 | 133 | | |
134 | 134 | | |
135 | | - | |
| 135 | + | |
136 | 136 | | |
137 | 137 | | |
138 | 138 | | |
| |||
0 commit comments