RISE gcc CI

GCC Documentation: https://gcc.gnu.org/wiki/PreCommitCI
Postcommit CI dashboard: https://patrick-rivos.github.io/gcc-postcommit-ci/

Sources:

Summary

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:

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.


Project Sponsors

  • Edwin Lu (Rivos)
  • Patrick O'Neill (Rivos)