From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
To: Helen Koike <helen.koike@collabora.com>
Cc: linuxtv-ci@linuxtv.org, dave.pigott@collabora.com,
mripard@kernel.org, linux-kernel@vger.kernel.org,
dri-devel@lists.freedesktop.org, linux-kselftest@vger.kernel.org,
gustavo.padovan@collabora.com, pawiecz@collabora.com,
spbnick@gmail.com, tales.aparecida@gmail.com,
workflows@vger.kernel.org, kernelci@lists.linux.dev,
skhan@linuxfoundation.org, kunit-dev@googlegroups.com,
nfraprado@collabora.com, davidgow@google.com, cocci@inria.fr,
Julia.Lawall@inria.fr, laura.nao@collabora.com,
ricardo.canuelo@collabora.com, kernel@collabora.com,
torvalds@linuxfoundation.org, gregkh@linuxfoundation.org
Subject: Re: [PATCH 0/3] kci-gitlab: Introducing GitLab-CI Pipeline for Kernel Testing
Date: Thu, 29 Feb 2024 01:07:25 +0200 [thread overview]
Message-ID: <20240228230725.GF1659@pendragon.ideasonboard.com> (raw)
In-Reply-To: <20240228225527.1052240-1-helen.koike@collabora.com>
Hi Helen,
I appreciate the amount of work you've put into this, to improve testing
of the kernel as a whole. I'll need more time to answer, but please see
below for a quick comment already.
On Wed, Feb 28, 2024 at 07:55:24PM -0300, Helen Koike wrote:
> Dear Kernel Community,
>
> This patch introduces a `.gitlab-ci` file along with a `ci/` folder, defining a
> basic test pipeline triggered by code pushes to a GitLab-CI instance. This
> initial version includes static checks (checkpatch and smatch for now) and build
> tests across various architectures and configurations. It leverages an
> integrated cache for efficient build times and introduces a flexible 'scenarios'
> mechanism for subsystem-specific extensions.
>
> tl;dr: check this video to see a quick demo: https://youtu.be/TWiTjhjOuzg,
> but don't forget to check the "Motivation for this work" below. Your feedback,
> whether a simple thumbs up or down, is crucial to determine if it is worthwhile
> to pursue this initiative.
>
> GitLab is an Open Source platform that includes integrated CI/CD. The pipeline
> provided in this patch is designed to work out-of-the-box with any GitLab
> instance, including the gitlab.com Free Tier. If you reach the limits of the
> Free Tier, consider using community instances like https://gitlab.freedesktop.org/.
> Alternatively, you can set up a local runner for more flexibility. The
> bootstrap-gitlab-runner.sh script included with this patch simplifies this
> process, enabling you to run tests on your preferred infrastructure, including
> your own machine.
>
> For detailed information, please refer to the documentation included in the
> patch, or check the rendered version here: https://koike.pages.collabora.com/-/linux/-/jobs/298498/artifacts/artifacts/Documentation-output/ci/gitlab-ci/gitlab-ci.html .
>
>
> Motivation for this Work
> ========================
>
> We all know tests are a major topic in the community, so let's mention the
> specificities of this approach:
>
> 1. **Built-in User Interface:** GitLab CI/CD is growing in popularity and has an
> user-friendly interface. Our experience with the upstream DRM-CI in the kernel
> tree (see this blog post [https://www.collabora.com/news-and-blog/blog/2024/02/08/drm-ci-a-gitlab-ci-pipeline-for-linux-kernel-testing/] )
> has provided insights into how such a system can benefit the wider community.
>
> 2. **Distributed Infrastructure:**
> The proposed GitLab-CI pipeline is designed with a distributed infrastructure
> model, being possible to run in any gitlab instance.
>
> 3. **Reduce regressions:** Fostering a culture where people habitually run
> validated tests and post their results can prevent many issues in post-merge
> tests.
>
> 4. **Collaborative Testing Environment:** The kernel community is already
> engaged in numerous testing efforts, including various GitLab-CI pipelines such
> as DRM-CI, which I maintain, along with other solutions like KernelCI and
> BPF-CI. This proposal is designed to further stimulate contributions to the
> evolving testing landscape. Our goal is to establish a comprehensive suite of
> common tools and files.
>
> 5. **Ownership of QA:**
> Discrepancies between kernel code and outdated tests often lead to misattributed
> failures, complicating regression tracking. This issue, often arising from
> neglected or deprioritized test updates, creates uncertainty about the source of
> failures. Adopting an "always green pipeline" approach, as detailed in this
> patch's documentation, encourages timely maintenance and validation of tests.
> This ensures that testing accurately reflects the current state of the kernel,
> thereby improving the effectiveness of our QA processes.
>
> Additionally, if we discover that this method isn't working for us, we can
> easily remove it from the codebase, as it is primarily contained within the ci/
> folder.
>
>
> Future Work
> ===========
>
> **Expanding Static Checks:**
> We have the opportunity to integrate a variety of static analysis tools,
> including:
> - dtbs_checks
> - sparse
> - yamllint
> - dt-doc-validate
> - coccicheck
>
> **Adding Userspace Tests on VMs:**
> To further our testing, we can implement userspace tests that run on virtual
> machines (VMs), such as:
> - kselftests
> - kunit tests
> - Subsystem-specific tests, customizable in the scenarios.
>
> **Leveraging External Test Labs:**
> We can extend our testing to external labs, similar to what DRM-CI currently
> does. This includes:
> - Lava labs
> - Bare metal labs
> - Using KernelCI-provided labs
>
> **Other integrations**
> - Submit results to KCIDB
>
> **Lightweight Implementation for All Developers:**
> We aim to design these tests to be lightweight, ensuring developers with limited
> computing resources can still run essential tests. Resource-intensive tests can
> be set to trigger manually, rather than automatically, to accommodate diverse
> development environments.
>
>
> Chat Discussions
> ================
>
> For those interested in further discussions:
>
> **Join Our Slack Channel:**
> We have a Slack channel, #gitlab-ci, on the KernelCI Slack instance https://kernelci.slack.com/ .
> Feel free to join and contribute to the conversation. The KernelCI team has
> weekly calls where we also discuss the GitLab-CI pipeline.
Could we communicate using free software please ? Furthermore, it's not
possible to create an account on that slack instance unless you have an
e-mail address affiliated with a small number of companies
(https://kernelci.slack.com/signup#/domain-signup). That's a big no-go
for me.
> **Acknowledgments:**
> A special thanks to Nikolai Kondrashov, Tales da Aparecida - both from Red Hat -
> and KernelCI community for their valuable feedback and support in this proposal.
>
>
> I eagerly await your thoughts and suggestions on this initiative.
>
> Also, if you want to see this initiave move faster, we are happy to discuss
> funding options.
>
> Best regards,
> Helen Koike
>
> Helen Koike (3):
> kci-gitlab: Introducing GitLab-CI Pipeline for Kernel Testing
> kci-gitlab: Add documentation
> kci-gitlab: docs: Add images
>
> .gitlab-ci.yml | 2 +
> Documentation/ci/gitlab-ci/gitlab-ci.rst | 404 ++++++++++++++++++
> .../ci/gitlab-ci/images/job-matrix.png | Bin 0 -> 159752 bytes
> .../gitlab-ci/images/new-project-runner.png | Bin 0 -> 607737 bytes
> .../ci/gitlab-ci/images/pipelines-on-push.png | Bin 0 -> 532143 bytes
> .../ci/gitlab-ci/images/the-pipeline.png | Bin 0 -> 91675 bytes
> .../ci/gitlab-ci/images/variables.png | Bin 0 -> 277518 bytes
> Documentation/index.rst | 7 +
> MAINTAINERS | 9 +
> ci/gitlab-ci/bootstrap-gitlab-runner.sh | 55 +++
> ci/gitlab-ci/ci-scripts/build-docs.sh | 35 ++
> ci/gitlab-ci/ci-scripts/build-kernel.sh | 35 ++
> ci/gitlab-ci/ci-scripts/ici-functions.sh | 104 +++++
> ci/gitlab-ci/ci-scripts/install-smatch.sh | 13 +
> .../ci-scripts/parse_commit_message.sh | 27 ++
> ci/gitlab-ci/ci-scripts/run-checkpatch.sh | 19 +
> ci/gitlab-ci/ci-scripts/run-smatch.sh | 45 ++
> ci/gitlab-ci/docker-compose.yaml | 18 +
> ci/gitlab-ci/linux.code-workspace | 11 +
> ci/gitlab-ci/yml/build.yml | 43 ++
> ci/gitlab-ci/yml/cache.yml | 26 ++
> ci/gitlab-ci/yml/container.yml | 36 ++
> ci/gitlab-ci/yml/gitlab-ci.yml | 71 +++
> ci/gitlab-ci/yml/kernel-combinations.yml | 18 +
> ci/gitlab-ci/yml/scenarios.yml | 12 +
> ci/gitlab-ci/yml/scenarios/file-systems.yml | 21 +
> ci/gitlab-ci/yml/scenarios/media.yml | 21 +
> ci/gitlab-ci/yml/scenarios/network.yml | 21 +
> ci/gitlab-ci/yml/static-checks.yml | 21 +
> 29 files changed, 1074 insertions(+)
> create mode 100644 .gitlab-ci.yml
> create mode 100644 Documentation/ci/gitlab-ci/gitlab-ci.rst
> create mode 100644 Documentation/ci/gitlab-ci/images/job-matrix.png
> create mode 100644 Documentation/ci/gitlab-ci/images/new-project-runner.png
> create mode 100644 Documentation/ci/gitlab-ci/images/pipelines-on-push.png
> create mode 100644 Documentation/ci/gitlab-ci/images/the-pipeline.png
> create mode 100644 Documentation/ci/gitlab-ci/images/variables.png
> create mode 100755 ci/gitlab-ci/bootstrap-gitlab-runner.sh
> create mode 100755 ci/gitlab-ci/ci-scripts/build-docs.sh
> create mode 100755 ci/gitlab-ci/ci-scripts/build-kernel.sh
> create mode 100644 ci/gitlab-ci/ci-scripts/ici-functions.sh
> create mode 100755 ci/gitlab-ci/ci-scripts/install-smatch.sh
> create mode 100755 ci/gitlab-ci/ci-scripts/parse_commit_message.sh
> create mode 100755 ci/gitlab-ci/ci-scripts/run-checkpatch.sh
> create mode 100755 ci/gitlab-ci/ci-scripts/run-smatch.sh
> create mode 100644 ci/gitlab-ci/docker-compose.yaml
> create mode 100644 ci/gitlab-ci/linux.code-workspace
> create mode 100644 ci/gitlab-ci/yml/build.yml
> create mode 100644 ci/gitlab-ci/yml/cache.yml
> create mode 100644 ci/gitlab-ci/yml/container.yml
> create mode 100644 ci/gitlab-ci/yml/gitlab-ci.yml
> create mode 100644 ci/gitlab-ci/yml/kernel-combinations.yml
> create mode 100644 ci/gitlab-ci/yml/scenarios.yml
> create mode 100644 ci/gitlab-ci/yml/scenarios/file-systems.yml
> create mode 100644 ci/gitlab-ci/yml/scenarios/media.yml
> create mode 100644 ci/gitlab-ci/yml/scenarios/network.yml
> create mode 100644 ci/gitlab-ci/yml/static-checks.yml
--
Regards,
Laurent Pinchart
next prev parent reply other threads:[~2024-02-28 23:07 UTC|newest]
Thread overview: 58+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-02-28 22:55 [PATCH 0/3] kci-gitlab: Introducing GitLab-CI Pipeline for Kernel Testing Helen Koike
2024-02-28 22:55 ` [PATCH 1/3] " Helen Koike
2024-02-29 2:44 ` Bird, Tim
2024-02-29 16:15 ` Nicolas Dufresne
2024-02-29 9:02 ` Maxime Ripard
2024-02-29 9:23 ` Nikolai Kondrashov
2024-02-29 9:56 ` Maxime Ripard
2024-02-29 10:05 ` Laurent Pinchart
2024-02-29 20:21 ` Linus Torvalds
2024-03-01 10:27 ` Nikolai Kondrashov
2024-03-01 14:07 ` Mark Brown
2024-03-01 14:21 ` Nikolai Kondrashov
2024-03-01 20:10 ` Linus Torvalds
2024-03-04 21:45 ` Helen Koike
2024-03-07 22:43 ` Leonardo Brás
2024-05-23 13:21 ` Daniel Vetter
2024-03-02 22:10 ` Guenter Roeck
2024-03-03 0:01 ` Randy Dunlap
2024-03-03 9:30 ` Geert Uytterhoeven
2024-03-04 8:12 ` Geert Uytterhoeven
2024-03-04 9:15 ` Maxime Ripard
2024-03-04 10:07 ` Geert Uytterhoeven
2024-03-04 10:19 ` Maxime Ripard
2024-03-04 11:12 ` Geert Uytterhoeven
2024-03-04 11:28 ` Maxime Ripard
2024-03-04 9:24 ` Maxime Ripard
2024-03-04 15:46 ` Guenter Roeck
2024-03-04 16:05 ` Maxime Ripard
2024-03-04 16:17 ` Guenter Roeck
2024-03-04 17:09 ` Maxime Ripard
2024-03-04 17:22 ` Guenter Roeck
2024-03-04 19:44 ` Guenter Roeck
2024-03-05 11:54 ` Michel Dänzer
2024-03-07 18:05 ` Nicolas Dufresne
2024-03-11 8:40 ` Maxime Ripard
2024-02-28 22:55 ` [PATCH 2/3] kci-gitlab: Add documentation Helen Koike
2024-02-28 22:55 ` [PATCH 3/3] kci-gitlab: docs: Add images Helen Koike
2024-02-28 23:07 ` Laurent Pinchart [this message]
2024-02-29 8:43 ` [PATCH 0/3] kci-gitlab: Introducing GitLab-CI Pipeline for Kernel Testing Maxime Ripard
2024-02-29 9:26 ` Nikolai Kondrashov
2024-02-29 9:34 ` Laurent Pinchart
2024-02-29 11:10 ` Nikolai Kondrashov
2024-02-29 11:19 ` Laurent Pinchart
2024-02-29 11:22 ` Nikolai Kondrashov
2024-02-29 11:41 ` Mark Brown
2024-02-29 11:53 ` Guillaume Tucker
2024-02-29 12:20 ` Laurent Pinchart
2024-02-29 12:25 ` Laurent Pinchart
2024-02-29 14:12 ` Nikolai Kondrashov
2024-02-29 9:39 ` Sakari Ailus
2024-02-29 11:09 ` Mark Brown
2024-02-29 12:20 ` Guillaume Tucker
2024-02-29 14:16 ` Nikolai Kondrashov
2024-02-29 16:28 ` Nicolas Dufresne
2024-03-01 21:56 ` Guillaume Tucker
2024-03-02 21:48 ` Gustavo Padovan
2024-03-04 8:33 ` Guillaume Tucker
2024-05-21 9:28 ` Jarkko Sakkinen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240228230725.GF1659@pendragon.ideasonboard.com \
--to=laurent.pinchart@ideasonboard.com \
--cc=Julia.Lawall@inria.fr \
--cc=cocci@inria.fr \
--cc=dave.pigott@collabora.com \
--cc=davidgow@google.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=gregkh@linuxfoundation.org \
--cc=gustavo.padovan@collabora.com \
--cc=helen.koike@collabora.com \
--cc=kernel@collabora.com \
--cc=kernelci@lists.linux.dev \
--cc=kunit-dev@googlegroups.com \
--cc=laura.nao@collabora.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-kselftest@vger.kernel.org \
--cc=linuxtv-ci@linuxtv.org \
--cc=mripard@kernel.org \
--cc=nfraprado@collabora.com \
--cc=pawiecz@collabora.com \
--cc=ricardo.canuelo@collabora.com \
--cc=skhan@linuxfoundation.org \
--cc=spbnick@gmail.com \
--cc=tales.aparecida@gmail.com \
--cc=torvalds@linuxfoundation.org \
--cc=workflows@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox