You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: AGENTS.md
+13Lines changed: 13 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -439,6 +439,19 @@ table: see [doc/build/JdkUpgrades.md](doc/build/JdkUpgrades.md).
439
439
- All code needs to strive to be lean in terms of resources consumption and easy to follow -
440
440
do not shy away from factoring out self containing code to shorter functions with explicit name
441
441
442
+
## CI / Automation Script Changes
443
+
- Before rewriting or replacing a script invoked from `.gitlab-ci.yml`, `.gitlab/**/*.yml`, or any CI job,
444
+
run `git log -p -- <script>` (or diff against the version being replaced) and enumerate every behavior
445
+
branch it has — fallbacks, env-var-driven paths, error exits. Preserve all of them unless explicitly
446
+
asked to drop one;do not silently narrow behavior while refactoring.
447
+
- Grep the calling `.gitlab-ci.yml` / `.gitlab/**/*.yml`jobsfor how the script is invoked (env vars set,
448
+
exit codes expected) and confirm the rewrite still satisfies every caller, not just the common/local case.
449
+
- When removing an item from a default list or config (an antagonist, a test tag, a feature flag), cite
450
+
the exact file/line proving it is inert or unused in that context before removing it — never remove
451
+
based on assumption alone.
452
+
- After changing a CI-invoked script, run a syntax check (e.g. `bash -n <script>`) and trace through each
453
+
CI job that calls it before considering the change complete.
454
+
442
455
### C/C++ Code Style
443
456
- **Indentation**: Match the exact indentation style of the surrounding code in each file. Do not introduce inconsistent indentation — reviewers will flag it.
444
457
- **Minimal complexity**: Do not split inline logic into separate helper functions unless the helpers are reused or the original is genuinely hard to follow. Unnecessary splits add indirection without value.
-`--gtest` (enable C++ gtests, disabled by default for faster runs)
184
-
-`--gtest-task=Task` (run one C++ gtest task; accepts `elfparser_ut` or a full task path like `:ddprof-lib:gtestAsan_elfparser_ut`)
196
+
-`--gtest-task=Task` (run one C++ gtest task; matrix runs require a short name like `elfparser_ut`, while single-cell runs also accept a full task path like `:ddprof-lib:gtestAsan_elfparser_ut`)
185
197
-`--shell` (interactive shell instead of running tests)
186
198
-`--mount` (mount local repo instead of cloning - faster but may have stale artifacts)
187
199
-`--rebuild` (force rebuild of all container images)
188
200
-`--rebuild-base` (force rebuild of base image only)
201
+
-`--matrix` (preview a full test matrix; unset dimensions expand to `all`)
202
+
-`--run` (execute an inferred matrix without prompting)
203
+
-`--fail-fast` (stop matrix execution on first failure)
204
+
205
+
Single-value commands run one configuration immediately. When any dimension expands to multiple cells, the script prints a compact status table first; interactive terminals ask for confirmation, while non-interactive runs require `--run` to execute. Matrix execution prints the status table again after all cells finish and writes summaries to `build/reports/container-matrix/summary.md` and `build/reports/container-matrix/summary.json`. Cells not run because of `--fail-fast` are reported as cancelled separately from unsupported cells that are skipped.
0 commit comments