mirror of
https://github.com/RIOT-OS/RIOT.git
synced 2025-12-27 07:21:18 +01:00
Merge #18910
18910: CI: add bors.toml r=kaspar030 a=kaspar030 <!-- The RIOT community cares a lot about code quality. Therefore, before describing what your contribution is about, we would like you to make sure that your modifications are compliant with the RIOT coding conventions, see https://github.com/RIOT-OS/RIOT/blob/master/CODING_CONVENTIONS.md. --> ### Contribution description This adds configuration for [bors](https://bors.tech). This has been discussed in CI meetings. The intended workflow is: 1. regular PR commits get built by CI as usual, but doing a quick-build (building only a subset of all boards), unless "CI: full build" is set 2. once that passes and the PR is ACKed, instead of merging using the merge button, we use bors to merge by typing "bors merge". 3. bors takes the PR, pushes it to the "testing" branch 4. CI does a full build of "testing" 5. on success, bors merges testing into master The main benefits are 1. a quickbuild / full build scheme ("regular" PR builds will be <5 minutes, but only fully built branches get merged into master) 2. bors does "rollups", meaning, if multiple PRs are to be "bors merged", bors merges them together, tests them together and merges them together. That's more efficient than doing this sequentially, and prevents semantic merge conflicts (e.g., PR a and b pass CI individually, but fail when both merged, breaking master). Once fully implemented, using bors will be a workflow change (no more "pressing the green button", but typing "bors merge" instead). But we've been using bors for RIOT-OS/riotdocker for a long time now, the experience was good (as opposed to disruptive). This PR just adds the necessary bors configuration, and once merged will allow using bors to merge PRs using "bors merge", but the previous workflow is still in place (manual merging can be done, and "regular" PR builds are still full builds). <!-- Put here the description of your contribution: - describe which part(s) of RIOT is (are) involved - if it's a bug fix, describe the bug that it solves and how it is solved - you can also give more information to reviewers about how to test your changes --> ### Testing procedure <!-- Details steps to test your contribution: - which test/example to compile for which board and is there a 'test' command - how to know that it was not working/available in master - the expected success test output --> ### Issues/PRs references bors tracking issue: #18911 <!-- Examples: Fixes #1234. See also #5678. Depends on PR #9876. Please use keywords (e.g., fixes, resolve) with the links to the issues you resolved, this way they will be automatically closed when your pull request is merged. See https://help.github.com/articles/closing-issues-using-keywords/. --> Co-authored-by: Kaspar Schleiser <kaspar@schleiser.de>
This commit is contained in:
commit
bf20287229
1
.github/labeler.yml
vendored
1
.github/labeler.yml
vendored
@ -20,6 +20,7 @@
|
||||
- ".github/**/*.yml"
|
||||
- ".murdock"
|
||||
- ".murdock.yml"
|
||||
- "bors.toml"
|
||||
|
||||
"Area: CoAP":
|
||||
- "sys/net/application_layer/*coap/**/*"
|
||||
|
||||
2
.github/workflows/static-test.yml
vendored
2
.github/workflows/static-test.yml
vendored
@ -4,6 +4,8 @@ on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- staging
|
||||
- trying
|
||||
tags:
|
||||
- '[0-9][0-9][0-9][0-9].[0-9][0-9]-RC[0-9]*'
|
||||
- '[0-9][0-9][0-9][0-9].[0-9][0-9]'
|
||||
|
||||
2
.github/workflows/tools-buildtest.yml
vendored
2
.github/workflows/tools-buildtest.yml
vendored
@ -4,6 +4,8 @@ on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- staging
|
||||
- trying
|
||||
tags:
|
||||
- '*'
|
||||
pull_request:
|
||||
|
||||
35
bors.toml
Normal file
35
bors.toml
Normal file
@ -0,0 +1,35 @@
|
||||
# List of commit statuses that must pass on the PR commit when it is r+-ed.
|
||||
# (listed in same order as in the repo's branch protection settings)
|
||||
pr_status = [
|
||||
"python-tests",
|
||||
"tools-build",
|
||||
"check-labels",
|
||||
"static-tests",
|
||||
"check-commits (commit-msg)",
|
||||
"check-commits (pr_check)",
|
||||
"Murdock",
|
||||
]
|
||||
|
||||
# List of commit statuses that must pass on the merge commit before it is
|
||||
# pushed to master.
|
||||
status = [
|
||||
"Murdock",
|
||||
"static-tests",
|
||||
"tools-build",
|
||||
]
|
||||
|
||||
# Number of project members who must approve the PR (using GitHub Reviews)
|
||||
# before it is pushed to master.
|
||||
# This necessary even with the check-labels action (which checks for >1 ACKs),
|
||||
# as that passes when there's no review or no special label set.
|
||||
required_approvals = 1
|
||||
|
||||
# delete branch after successful merge
|
||||
delete_merged_branches = true
|
||||
|
||||
# timeout for bors-initiated builds.
|
||||
# unfortunately bors is not the only entity queuing builds, so this needs
|
||||
# to take a full nightly build *plus* another full bors build *plus* some
|
||||
# possible intermediate PR builds into accound.
|
||||
# let's try ten hours (36000s)
|
||||
timeout_sec = 36000
|
||||
Loading…
x
Reference in New Issue
Block a user