Skip to content
Matthieu Baerts edited this page Dec 12, 2024 · 5 revisions

Continuous Integration

Workflow

Patchew is used to create a tag each time new patches are sent to our mailing list. This new tag will trigger multiple builds and results will be displayed on Patchwork.

Base patches

Patches should be based on top of ones of these branches: export, for-review, and eventually export-net, for-review-net, net-next and net. Check the Git Branches page for more details about them. Fixes that are valid for older versions have to be applied on top of one of these branches before being backported.

If patches depend on other ongoing work that has not been applied yet, the cover-letter (or the individual patch) should contain a tag line Based-on: <$MESSAGE_ID> where $MESSAGE_ID is the Message-ID of the previous cover-letter (or the individual patch), so Patchew can resolve the dependence, and trigger the CI.

Jobs

Once per day, a Github Action is scheduled to sync our tree with the Netdev's net-next and net repos.

Each time the tree is updated, a new tag, export/<date>T<time> is created.

New tags trigger multiple jobs: build with different kernel options (e.g. i386/x86_64, with/without v6 and/or MPTCP), run the test suite (selftests, kunit, packetdrill), checkpatch, shellcheck, etc. Check our GitHub Actions workflows for more details.

Results

Results are published on the "Flakes" webpage.

They are also posted on our IRC channel.

Local development

The Docker image used by the public CIs can be used to create a basic kernel dev environment.

Download the kernel source code and then run these two commands to download the latest Docker image and run it:

docker run --pull always -v "${PWD}:${PWD}:rw" -w "${PWD}" --privileged --rm -it \
  mptcp/mptcp-upstream-virtme-docker:latest \
  <manual-normal | manual-debug | auto-normal | auto-debug | auto-all>

For more details: https://github.com/multipath-tcp/mptcp-upstream-virtme-docker

Clone this wiki locally