Commit Graph
287 Commits
Author SHA1 Message Date
Geza Lore ec2f3cb2d4 CI: Avoid OOM on coverage merge in GitHub actions 2026-10-04 11:43:44 +01:00
Geza Lore 9e2c30faab CI: Move Code coverage to 26.04 2026-09-27 13:35:03 +01:00
Geza Lore 4c4d9cc7d2 CI: Fix previous commit 2026-09-26 12:01:57 +01:00
Geza Lore 98250f6cd2 CI: Format as the Verilator bot when running on main repo 2026-09-26 11:56:58 +01:00
Todd Strader e9a24647d8 CI: Fix regress wording (#8471) 2026-09-23 08:29:06 -04:00
dependabot[bot] 5883a5a40d CI: Bump the everything group with 4 updates (#8432) 2026-09-21 17:45:59 -04:00
Geza Lore e5384c7b68 CI: Fix yaml format 2026-09-20 23:56:59 +01:00
Geza Lore 33d1e4e685 CI: Fix more unintended cancellations 2026-09-20 23:38:41 +01:00
Geza Lore bef6c8afa0 CI: Fix imprecise 'onMaster' checks 2026-09-20 20:40:22 +01:00
Geza Lore 77e9938188 CI: Prevent concurrent format jobs on same ref 2026-09-20 20:40:22 +01:00
Geza Lore 8f0bd99449 CI: Fold pr-conflicting into pr-automation 2026-09-20 20:40:22 +01:00
Geza Lore 2ee6f7435d CI: Fix unlabeling closed PRs canceling unrelated jobs 2026-09-20 20:08:41 +01:00
Geza Lore 9e3ec98461 CI: Don't skip CI on format (#8408) 2026-09-20 07:14:47 -04:00
Geza Lore 8c6dd7a164 CI: Auto label on RTLMeter and Code coverage failure 2026-09-19 21:45:20 +01:00
Geza Lore 87983308c7 CI: Add job to block PR merges with pr-blocked: labels (#8415) 2026-09-19 21:18:29 +01:00
Geza Lore 23a4c8ef46 CI: Label as the CI app to trigger workflows 2026-09-19 20:50:50 +01:00
Geza Lore acb1333a85 CI: Auto label PRs with pr-blocked: improve-coverage 2026-09-19 19:59:34 +01:00
Geza Lore ba68360819 CI: Auto label PRs with pr-blocked: fix-regression 2026-09-19 19:33:25 +01:00
Geza Lore b0b4714a9d CI: Make regressions label driven (#8413) 2026-09-19 18:31:58 +01:00
Geza Lore ee51f322c7 CI: Fix previous commit 2026-09-19 18:00:57 +01:00
Geza Lore f6801633f8 CI: Add Regression passed job for status checks 2026-09-19 17:57:43 +01:00
Geza Lore f2fcacfe3d CI: Rename build-test.yml to regression.yml 2026-09-19 17:04:09 +01:00
Geza Lore 0b661a00c1 CI: Also mop up after the Regression job 2026-09-19 16:59:19 +01:00
Geza Lore 7400d28e6d CI: Don't restart RTLMeter/Coverage on unrelated label changes (#8411) 2026-09-19 16:52:27 +01:00
Geza Lore 36aa3e88c7 CI: Add PR automation job (#8203) 2026-09-19 16:30:50 +01:00
Geza Lore a9f959ff28 CI: Fix yaml format 2026-09-19 15:51:59 +01:00
Geza Lore b75ceeb121 CI: Delete skipped PR workflows 2026-09-19 15:48:24 +01:00
Kaleb Barrett d797c2009b CI: Move macOS build from 15 to 26 #8409 (#8409) 2026-09-19 13:02:48 +01:00
Geza Lore 1f9c9681a7 CI: Move RTLMeter jobs to 26.04 (#8387)
Fixes #8379
2026-09-17 22:47:06 +01:00
dependabot[bot] 2bffeec8b9 CI: Bump the everything group with 2 updates (#8304) 2026-09-07 10:58:37 -04:00
dependabot[bot] 2cd0efbc0f CI: Bump docker/setup-buildx-action in the everything group (#8210) 2026-08-24 12:28:51 -04:00
Geza Lore 8fc78e31d7 CI: Name build-test.yml 'Regressions' 2026-08-24 08:03:00 +02:00
Wilson Snyder 477b48fb3d CI: Add pr-conflicting.yml 2026-08-23 18:48:57 -04:00
Geza Lore 8a45a2d46e CI: Reduce verbosity of the Pages job 2026-08-23 19:56:26 +02:00
Geza Lore 063b938f41 CI: Fold up old notification comments on PRs
Notifications posted on pull requests now carry a marker naming their
source, as an HTML comment on their first line, which is invisible when
rendered. When posting, 'ci-pages-notify.bash' finds its own earlier
notifications with the same marker on that pull request, and deletes them.
A pull request therefore holds a single comment per source, rather than
accumulating one per run.

The superseded comments are not lost entirely. Each notification carries a
one line summary linking its report, stashed in an HTML comment, and the
notification superseding it inherits that summary, together with the
history the superseded one held itself, into a collapsed 'Workflow history'
section. That section therefore lists all the earlier reports, stays flat
however many runs a pull request sees, and holds no entry for the report
shown right above it.

The 'pr-notification' artifact is now uploaded via the new reusable
'upload-pr-notification' action, which validates the content the reporting
scripts produced, and records the source key and the pull request number
alongside it.

Fixes #8037
2026-08-22 18:40:14 +02:00
Geza Lore cb618d6f9c CI: Factor out coverage report generation 2026-08-22 18:40:14 +02:00
Geza Lore 38ae4e617d CI: Cache archives downloaded by apt (#8159)
Belt-and-braces in case GitHub apt mirrors start acting up again: On any
successful apt install, cache the deb files downloaded/needed for the
step, so on next run the mirrors need not be consulted. (That is: trade
apt mirror access with GitHub cache access, which is more reliable)
2026-08-20 11:16:17 +02:00
Geza Lore cacadd6c7d CI: Add timeout to apt install steps (#8154)
These tend to hang for hours on occasion. Install all apt dependencies
via ci-install.bash, and add a hard timeout and retry for each attempt.

Also removed unnecessary man-db config (GitHub has this off by default
now) and ineffective install path exclusions.
2026-08-19 15:34:57 +02:00
dependabot[bot] 3c47e5735a CI: Bump docker/login-action from 4.5.1 to 4.6.0 in the everything group (#8033) 2026-08-03 15:55:00 +01:00
Krzysztof Bieganski 66808eec27 CI: Make light debug opt-in in CI build script (#8013) (#8027) 2026-08-02 02:34:38 -04:00
dependabot[bot] de4de1c3f8 CI: Bump the everything group with 2 updates (#7989) 2026-07-27 19:52:43 +05:30
Geza Lore 56b0b679c6 CI: Disable ccache on coverage jobs (#7887)
gcc --coverage is unsupported by ccache and results in a bypass. Don't
save unnecessary caches.
2026-07-06 17:05:14 +01:00
dependabot[bot] 6baea8d846 CI: Bump the everything group with 5 updates (#7884) 2026-07-06 09:50:16 -04:00
Geza Lore fcc7acbfc6 CI: Factor out artifact based caching as a reusable action (#7883) 2026-07-06 14:16:06 +01:00
Geza Lore c78a342bdc CI: Don't Python make venv on cache hit 2026-07-06 11:30:59 +01:00
Geza Lore c2ed0aab00 CI: Use ci-install.bash for lint-py dependencies (#7880) 2026-07-06 11:27:58 +01:00
Geza Lore 5563b3b6f8 CI: Cache Python venv (#7879)
This is smallish and mostly static, should cache well, avoid setup cost.
2026-07-06 11:03:35 +01:00
Geza Lore 5750c888a6 CI: Improve ccache handling in build and test jobs (#7874)
Cache key isolation: Include the build flavour (ccwarn/asan/gcov) in the
build ccache key, so the coverage (gcov), asan, and RTLMeter
(ccwarn-off) configurations no longer share and thrash the single
'<runs-on>-<cc>' bucket, nor warm-start from each other's (near-useless)
caches.

Prune stale entries instead of a fixed size cap: After building/testing,
evict ccache entries this run did not touch (--evict-older-than, based
on the run's own duration).  This bounds the saved cache to the current
working set, so CCACHE_MAXSIZE and CCACHE_LIMIT_MULTIPLE are no longer
needed and are removed (ccache falls back to its 5G default ceiling, but
is realistically much smaller).

ccache configuration:
- Drop CCACHE_COMPRESS (already the default in ccache 4.x).
- Add CCACHE_COMPILERCHECK=content, so a changed compiler mtime on a rebuilt
  ephemeral runner image does not invalidate the whole restored cache.
- Hoist all ccache-related variables (CACHE_BASE_KEY, CCACHE_*, CXX) to the
  workflow-level env.

Remove dead ccache scaffolding:
- reusable-lint-py: the job never compiles or caches; drop its ccache env.
- reusable-rtlmeter-run: remove the disabled persistent-cache step and its
  storage variables; keep CCACHE_DISABLE=1, since caching must stay off to
  keep RTLMeter timings representative.

Store test job ccache as artifacts for reuse
2026-07-06 01:44:32 +01:00
Geza Lore 8b564f509b CI: Remove macos-15 gcc job
On macOS, gcc is an alias for clang, so this job was effectively the
same as the clang job.
2026-07-05 21:18:36 +01:00
Geza Lore c7c778f109 CI: Improve Pages job
Code coverage and RTLMeter complete (concluding 'skipped') on branch
pushes where they do no work, and each completion fires the Pages
workflow_run trigger. Rebuilding and redeploying master's pages for
these no-op events is wasteful.

Gate the build job so a workflow_run whose upstream conclusion is
'skipped' does nothing; deploy and notify need build, so they
cascade-skip.

Route such no-op runs to their own throwaway concurrency group. In the
shared 'pages' group they would, as the newest queued run, cancel a
pending real run and then deploy nothing (concurrency keeps only the
in-progress and newest pending run). Real runs keep sharing 'pages' and
serialize as before.

Add retry to deploy step to reduce flakyness due to the Pages back end.

Fix trigger on workflow file changes.
2026-07-05 21:11:45 +01:00