-
Notifications
You must be signed in to change notification settings - Fork 128
Issue 7595 - Sync the agent docs with the current CI workflows #7793
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
|
|
@@ -19,18 +19,22 @@ The build jobs run in a prebuilt `quay.io/389ds/ci-images` container (`:test` or | |||||
|
|
||||||
| | Workflow | Trigger | Key command | | ||||||
| |---|---|---| | ||||||
| | `pytest.yml` | push (`main`, `389-ds-base-*`), PR, nightly, manual | `SKIP_AUDIT_CI=1 make -f rpm.mk dist-bz2 rpms` in the `:test` image, then one `py.test` job per suite on the BDB backend | | ||||||
| | `pytest.yml` | PR, nightly on `main`, manual | `SKIP_AUDIT_CI=1 make -f rpm.mk dist-bz2 rpms` in the `:test` image, then one `py.test` job per suite on the BDB backend | | ||||||
| | `lmdbpytest.yml` | same | identical build; its test job exports `NSSLAPD_DB_LIB=mdb` to switch the backend and drops the read-only-BDB guard | | ||||||
| | `nightly-dispatch.yml` | nightly on `main` (00:30 UTC), manual | `gh workflow run` of `pytest.yml` and `lmdbpytest.yml` on each `389-ds-base-X.Y[.Z]` branch with a commit in the last 30 days, once per head whatever the result; release branches have no push or schedule trigger of their own | | ||||||
| | `compile.yml` | push, PR, manual | `autoreconf -fvi && ./configure` (no flags), `make V=0`, across a compiler/flag matrix: GCC, GCC Strict, GCC Static Analyzer (`-fanalyzer`), Clang, Clang `-Weverything` | | ||||||
| | `cargotest.yml` | push, PR, nightly, manual | `./configure --enable-debug`, `make V=0`, then `make check-local` | | ||||||
| | `npm.yml` | push, PR, nightly, manual | `npx --yes audit-ci --config audit-ci.json` in `src/cockpit/389-console` | | ||||||
| | `codeql.yml` | PR, push (`main`), weekly, manual | bare `./configure` + `make`; analyses C/C++ and Python only, with `+security-extended` queries | | ||||||
| | `validate.yml` | push, PR, manual | `testimony validate` over `dirsrvtests/tests/suites`, the duplicate-`:id:` check, and `vermin --target=3.8` over both `src/lib389` and `dirsrvtests` | | ||||||
| | `coverity.yml` | weekly cron only | bare `./configure`; the Coverity scan action drives `make` | | ||||||
| | `release.yml` | tag push `389-ds-base-*`, manual | `TAG=<tag> make -f rpm.mk dist-bz2`, then a GitHub release upload | | ||||||
| | `backport.yml` | merged PR carrying a `backport/X.Y` label | cherry-picks the squash commit onto `389-ds-base-X.Y` and opens the backport PR; a conflicting cherry-pick arrives as a draft PR with the markers committed | | ||||||
|
|
||||||
| Facts that change how you use these: | ||||||
|
|
||||||
| - A doc-only change runs no GitHub Actions workflow: every push- or PR-triggered workflow above ignores `**.md`, `docs/agents/**`, `docs/design/**`, `LICENSE*`, `.packit.yaml` and `.github/renovate.json`, while `docs/slapi.doxy.in` and the doxygen assets stay CI-visible because `make all` consumes them. Packit's COPR builds, the `rpm-build:*` checks, still run on such a PR because `.packit.yaml` has no path filter (`.github/workflows/pytest.yml` (`paths-ignore`); `.packit.yaml` (`copr_build`)). | ||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. nitpick: The statement that a doc-only change runs no GitHub Actions workflow is false for a merged doc-only PR carrying a Triggers: When a documentation-only PR is merged with a Suggested fix: Limit the statement to the build/test workflows, or explicitly mention the conditional backport workflow exception.
Suggested change
|
||||||
| - A PR that touches nothing outside `src/cockpit/389-console/` builds the RPMs and then runs only the `webui` suite, on both backends; a renamed file counts under both its paths, and any API failure falls back to the full matrix (`.github/scripts/pr_scope.py`; `.github/workflows/pytest.yml` (Check if the diff is limited to the Web UI step)). | ||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. issue: The documentation says every UI-only PR runs the Triggers: When a UI-only PR changes only one or more Suggested fix: Qualify the statement to apply only when the PR contains at least one non-ignored UI file, or document the Markdown path-ignore exception.
Suggested change
|
||||||
| - In a container, run `git config --global --add safe.directory "$PWD"` before any `rpm.mk` target — `dist-bz2` shells out to `git ls-files`, and without the safe-directory entry the tarball is silently empty (`.github/workflows/pytest.yml` (Add GITHUB_WORKSPACE as a safe directory step); `rpm.mk` (`dist-bz2`)). | ||||||
| - `dist-bz2` tars `git ls-files` output, so uncommitted changes are **excluded**; `rpms` rsyncs the working tree, so uncommitted changes are **included**. Testing an uncommitted patch requires the `rpms` path (`rpm.mk` (`dist-bz2`, `local-archive`)). | ||||||
| - Keep `dist-bz2` in the RPM command: `rpms` does not depend on `download-cargo-dependencies` (`dist-bz2` and `srpms` do), so `make -f rpm.mk rpms` alone can fail on a clean tree (`rpm.mk` (`rpms`)). | ||||||
|
|
@@ -61,7 +65,7 @@ The shipping configuration is the RPM spec's `%configure`: `--enable-cmocka`, `- | |||||
|
|
||||||
| ## The pytest matrix | ||||||
|
|
||||||
| - Every directory under `dirsrvtests/tests/suites/` becomes one CI job; `replication` is split into one job per `*_test.py` file (`.github/scripts/generate_matrix.py`). | ||||||
| - Every directory under `dirsrvtests/tests/suites/` becomes one CI job; `replication` is split into one job per `*_test.py` file (`.github/scripts/generate_matrix.py`). That is the full run; a web-UI-only PR narrows it to `webui` and a manual dispatch to its `pytest_tests` value (see the trigger facts above). | ||||||
| - `dirsrvtests/tests/stress/`, `perf/` and `tickets/` are run by no workflow — the generator walks only `suites/`. | ||||||
| - The per-suite invocation, inside a privileged `:test` container with the freshly built RPMs installed: | ||||||
|
|
||||||
|
|
||||||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nitpick: The recipe claims to document the CI container flow and describes the five-attempt pull backoff, but its executable recipe contains no
docker pullretry loop; following the recipe still relies on an implicit pull fromdocker run, which fails immediately on a transient quay.io timeout instead of retrying.Triggers: When a developer follows the container recipe during a transient quay.io image-pull timeout.
Suggested fix: Add the workflow's character-exact five-attempt
docker pullloop before thedocker runcommand, or clearly state that the loop is intentionally omitted from the local recipe.