Hi! I just deployed a new, and hopefully improved, version of the Linux RISC-V Patchwork CI. The PW CI is the thing that posts the "check stoplights" to the Linux RISC-V Patchwork instance [1]. IOW, a pre-commit CI. Changes ------- * The test framework is now using Python, instead of a pile of Bash. A lot of the code is heavily based on bzcafe [2]. Bash only takes you that far. ;-) * Email support; The framework will mail the submitter(s) with the CI results, for better visibility. Currently, I'm the only recipient of mails to make sure that the framework doesn't spam too much. I'll flip the switch sometime this week. * Failed tests will have the details in a Github Gist page, linked from the Patchwork patch view. * The framework will post updates/results as comments to the pull request corresponding to the Patchwork series, e.g. [3]. This is in addition to the Gist links above. * Moved from Meta's KDP daemon (external Python daemon that synchronizes the mailing list with Github), in favor of the Bluetooth folks bzcafe scripts [2]. This change makes the whole PW CI self-contained as a set of Github Action set of files, and hopefully open up for other folks to hack the CI (nudge, nudge). Details (for those who care, or would like to push PRs) ------------------------------------------------------- The CI code resides in linux-riscv/github-ci [4]. Additions to this repo will automatically be picked up the linux-riscv/linux [5] where the CI is run. Currently, there are 6 branches: master, workflow {master,workflow}__riscv__fixes {master,workflow}__riscv__for-next master is a mirror of Linus' master [6], and fixes/for-next is the RISC-V tree [7]. The "workflow" is the master, but with the PW CI [4] applied as one commit on top. The branches above are synched by a Github cronjob, run by sync.yml [8]. The sync.yml action synchronizes all the branches, and then fetches the latest "New" patches from Patchwork in the last 7 days. The script then tries to apply the series in the following order: 1. workflow__riscv__fixes 2. workflow__riscv__for-next 3. workflow If all three fail, the submitter will be notified. If any of them succeeds, a Github PR is created for the series. IOW, all the ongoing tests for patches can be found here [9]. The test for a series will be run in the context of a PR, and all information can be found there. The code for the Patchwork tests can be followed from the workflow [10]. RISE is continuing to sponsor the self hosted Github Runners, and soon we'll move from 4 to 8 instances, which will allow for more tests. Cheers, Björn [1] https://patchwork.kernel.org/project/linux-riscv/list/ [2] https://github.com/tedd-an/bzcafe [3] https://github.com/linux-riscv/linux/pull/2 [4] https://github.com/linux-riscv/github-ci/ [5] https://github.com/linux-riscv/linux/ [6] git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git [7] git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux.git [8] https://github.com/linux-riscv/github-ci/blob/main/.github/workflows/sync.yml [9] https://github.com/linux-riscv/linux/pulls [10] https://github.com/linux-riscv/github-ci/blob/main/.github/workflows/patchwork.yml