GCC Documentation: https://gcc.gnu.org/wiki/PreCommitCI
Postcommit CI dashboard: https://patrick-rivos.github.io/gcc-postcommit-ci/
Sources:
Precommit CI: https://github.com/ewlu/gcc-precommit-ci
Postcommit CI: https://github.com/patrick-rivos/gcc-postcommit-ci
Summary
TBD
Process
...
RISE hosts pre-merge CI build systems for the RISC-V build and testsuite runs for GCC.
This project is intended to help answer the question of whether a patch meets some of the minimum requirements to be merged into GCC, as an aid to maintainers and developers. We also run postcommit CI runs to monitor the health of trunk and assist in triaging unintended breakages.
Process
The GCC CI is a 2 part system.
The post-commit CI runs on a regular cadence and performs a full build+test for a variety of targets. Assuming the build+test finishes without issue, those testsuite results are registered as a new baseline.
When a new patch with "RISC-V" in the title is submitted to the mailing list the precommit pulls it from patchworks. A variety of checks (does the patch apply, linting, build, test) are then run using the post-commit CI as a baseline and source-of-truth for expected failures.
The build/test logic is as follows:
Code Block |
---|
if patch_applies_to_baseline:
perform build+test, comparing testsuite results with the baseline testsuite results
if patch_does_not_apply_to_baseline and patch_applies_to_trunk:
perform build
if patch_does_not_apply_to_baseline_or_trunk:
report a warning |
Results are reported to patchworks and may be manually interpreted/directly emailed to upstream maintainers.
Postcommit CI
An example output from postcommit ci:
https://github.com/patrick-rivos/gcc-postcommit-ci/issues/86
Dashboards:
https://github.com/patrick-rivos/gcc-postcommit-ci#dashboards
Precommit CI
An example output from precommit ci:
https://github.com/ewlu/gcc-precommit-ci/issues/491
Status
Project is up and running.
...