Commit Graph

4 Commits

Author SHA1 Message Date
Tarik Moussa
7df47c0435 ci: switch to commit-message triggers (replace issue_comment)
issue_comment triggers had two problems: Gitea did not reliably fire
them, and the refs/pull/N/head checkout was fragile.  Commit-message
keywords are simpler and guaranteed to work on any push event.

Trigger keywords (add anywhere in the commit message):
  /test-cgal      → CGAL test suite (277 tests, LOW_MEMORY_BUILD)
  /quality-gates  → license/codespell/shellcheck/cgal-conventions
  /docs           → Doxygen build + warning summary
  /links          → Markdown internal link check

test-fast still runs on every push (no keyword needed).

All `issue_comment` event handlers and `refs/pull/N/head` checkouts
removed from all three workflow files.  review/** added to push branch
filters so this PR branch triggers normally.

CLAUDE.md CI table updated.

/test-cgal /quality-gates
2026-05-31 01:17:27 +02:00
Tarik Moussa
018484a94d ci: switch all non-fast jobs to comment triggers
Every CI job except test-fast and mirror-to-codeberg now runs only
when explicitly requested via a PR comment, instead of on every push
or PR sync.  This keeps the Pi runner idle during WIP commits and lets
the author decide when to pay each job's cost.

Trigger commands:
  /test-cgal       → CGAL test suite (277 tests, ~5 min build + 31 s run)
  /quality-gates   → license/codespell/shellcheck/cgal-conventions (~30 s)
  /docs            → Doxygen build + warning summary (~2 min)
  /links           → Markdown internal link check (~10 s)

All comment-triggered jobs check:
  event is issue_comment
  AND comment is on a PR (issue.pull_request != null)
  AND comment body contains the trigger word
  AND checkout uses refs/pull/N/head (not the default branch)

Jobs that stay automatic:
  test-fast         — runs on every push (26 pure-math tests, < 5 s)
  mirror-to-codeberg — unchanged

Jobs that keep additional triggers:
  markdown-links — weekly cron (Mon 05:00 UTC) + workflow_dispatch
  doc-build      — workflow_dispatch (for manual runs outside a PR)

quality-gates drops `needs: test-fast` — it now runs independently
when comment-triggered (caller decides whether test-fast passed first).

CLAUDE.md CI pipeline table updated with all five jobs and their new
trigger descriptions.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-31 01:17:27 +02:00
Tarik Moussa
311360f925 ci: remove unsupported upload-artifact@v4 from doc-build job
Some checks failed
C++ Tests / test-fast (push) Successful in 2m19s
C++ Tests / test-fast (pull_request) Successful in 3m28s
API Docs / doc-build (pull_request) Successful in 40s
C++ Tests / test-cgal (push) Has been skipped
C++ Tests / test-cgal (pull_request) Failing after 10m57s
Gitea Actions on GHES does not support actions/upload-artifact@v4 — the
v4 release switched to GitHub-only APIs (artifact backend rewritten).
The doc-build job was failing with "artifact@v4+ are not currently
supported on GHES."

Changes
───────
* Removed the artifact-upload step entirely.  Rationale: the warning
  summary in the job log is the primary reviewer signal for the
  documentation health check.  Reviewers who want to inspect the HTML
  locally can rebuild it with `cmake --build build --target doc`.
* Removed the apt-get install step.  Doxygen is now pre-installed in
  the ci-cpp container (Dockerfile change earlier in this PR).
* Added an explanatory comment so the missing artifact step is not
  re-introduced unknowingly.
* Added a "Report HTML output" step that prints file count + total size
  for visibility (a no-op if the HTML directory is absent).

When/if a real artifact host appears (Gitea Pages, S3, GitHub mirror
release), this job can be extended to publish the HTML there.  For now,
the in-log warning summary is sufficient.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-19 22:51:17 +02:00
Tarik Moussa
3cc96703cc ci: fix test-cgal OOM + add Doxygen API-docs job
Some checks failed
C++ Tests / test-fast (push) Successful in 4m47s
C++ Tests / test-fast (pull_request) Successful in 3m42s
API Docs / doc-build (pull_request) Failing after 7m19s
C++ Tests / test-cgal (push) Has been skipped
C++ Tests / test-cgal (pull_request) Failing after 15m9s
Two CI improvements:

1. **test-cgal OOM fix**
   * memory limit  1400m → 1600m  (cc1plus needs ~700 MB for CGAL + Eigen)
   * memory-swap   1400m → 1600m  (was less than memory, Docker rejected
                                    the config; now disables swap entirely
                                    so OOM fails fast)
   * build parallelism  -j2 → -j1  (single worker leaves headroom)

   These three changes together address the test-cgal failures observed
   since the test_scalability_smoke.cpp was added.  Locally the full
   suite (183 tests including the brezel.obj genus-2 mesh) runs in
   ~1 s with peak ~700 MB; the ARM64 CI runner now has the same
   headroom.

2. **API-docs job (new, soft-fail)**
   * .gitea/workflows/doc-build.yaml — separate workflow, distinct name
     "API Docs"
   * Runs only on pull requests; `continue-on-error: true` ensures
     warnings never block the merge
   * Installs doxygen, runs `doxygen Doxyfile`, uploads the generated
     HTML as a 14-day artifact for reviewer inspection
   * Dockerfile.ci-cpp also pre-installs doxygen so future iterations
     can drop the in-job install step

   When Doxygen coverage matures (Phase 8c — User_manual.md), this job
   can be promoted to a hard requirement and the HTML deployed to
   Pages.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-19 22:18:21 +02:00