workflows.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Jarkko Sakkinen" <jarkko@kernel.org>
To: "Helen Koike" <helen.koike@collabora.com>,
	<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: Tue, 21 May 2024 12:28:22 +0300	[thread overview]
Message-ID: <D1F7SODNAG8W.1OR5BWUWSM4EA@kernel.org> (raw)
In-Reply-To: <20240228225527.1052240-1-helen.koike@collabora.com>

On Thu Feb 29, 2024 at 12:55 AM EET, 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.

Not to criticize but I can do  tests I ever want with either Github
or Gitlab simply by bootstrapping BuildRoot on top of whatever the CI
runner has. So I essentially need just enough deps to make a BR build,
and that's it. And e.g. could run x86 tests on ARM ISA runner with zero
issues. And can even have emulated TPM chip in the QEMU VM by building
swtpm.

I had this for some time running actually Gitlab runner. It does not
currently build QEMU but then it also did that:

https://gitlab.com/jarkkojs/linux-tpmdd-test

Essentially just executing this sequence:

git clone https://gitlab.com/jarkkojs/linux-tpmdd-test.git
cd linux-tpmdd-test
cmake -Bbuild && make -Cbuild buildroot-prepare
make -Cbuild/buildroot/build
build/buildroot/build/images/run-tests.sh

I use TCL's "expect" to make conclusions from the output :-)

I'm assuming that this has a bigger point that I can understand right
now but makes me a bit puzzled given that it is quite trivial problem
to my understanding (if you want to pursue to it). Like one work 
week maybe but not more than that...

Especially it feels weird that it needs kernel to be patched at all and
when I did read the motivation but it has sort of whitepaperish stuff
that does not really explain me the edge of this compared to e.g. to my
ad-hoc but still very usable solution (which is agnostic to runner's CPU
architecture, can emulated hardware and works in any possible hosting
with CI).

So maybe my review comment it this: do not assume that this would be
entirely new thing. It is not, and I'm sure some other people have
done this too in the past rather than just me. Instead this should
explain why this is so great that even kernel tree needs to be patched?

BR, Jarkko

      parent reply	other threads:[~2024-05-21  9:28 UTC|newest]

Thread overview: 58+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-02-28 22:55 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 ` [PATCH 0/3] kci-gitlab: Introducing GitLab-CI Pipeline for Kernel Testing Laurent Pinchart
2024-02-29  8:43   ` 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 [this message]

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=D1F7SODNAG8W.1OR5BWUWSM4EA@kernel.org \
    --to=jarkko@kernel.org \
    --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