From: Vignesh Raman <vignesh.raman@collabora.com>
To: kernelci@lists.linux.dev
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, skhan@linuxfoundation.org,
kunit-dev@googlegroups.com, nfraprado@collabora.com,
davidgow@google.com, cocci@inria.fr, Julia.Lawall@inria.fr,
laura.nao@collabora.com, kernel@collabora.com,
torvalds@linuxfoundation.org, gregkh@linuxfoundation.org,
daniels@collabora.com, helen.koike@collabora.com,
shreeya.patel@collabora.com, denys.f@collabora.com,
nicolas.dufresne@collabora.com, louis.chauvet@bootlin.com,
hamohammed.sa@gmail.com, melissa.srw@gmail.com, simona@ffwll.ch,
airlied@gmail.com, Tim.Bird@sony.com,
laurent.pinchart@ideasonboard.com, broonie@kernel.org,
leobras.c@gmail.com, groeck@google.com, rdunlap@infradead.org,
geert@linux-m68k.org, michel.daenzer@mailbox.org,
sakari.ailus@iki.fi, jarkko@kernel.org
Subject: [PATCH v2 0/5] kci-gitlab: Introducing GitLab-CI Pipeline for Kernel Testing
Date: Thu, 23 Jan 2025 19:23:30 +0530 [thread overview]
Message-ID: <20250123135342.1468787-1-vignesh.raman@collabora.com> (raw)
This patch series introduces "kci-gitlab," a GitLab CI pipeline
specifically designed for kernel testing. It provides kernel
developers with an integrated, efficient, and flexible testing
framework using GitLab's CI/CD capabilities. This patch includes
a .gitlab-ci file in the tools/ci/gitlab-ci/ folder, along with
additional YAML and script files, to define a basic test pipeline
triggered by code pushes to a GitLab-CI instance.
The initial version implements:
- Static checks: Includes checkpatch and smatch for code validation.
- Build tests: Covers various architectures and configurations.
- Boot tests: Utilizes virtme for basic boot testing.
Additionally, it introduces a flexible "scenarios" mechanism to
support subsystem-specific extensions.
This series also introduces a drm scenario that adds a job to run IGT
tests for vkms. This scenario includes helper scripts to build deqp-runner
and IGT, leveraging approaches from the drm-ci/mesa-ci project.
We are working towards creating a generic, upstream GitLab-CI pipeline
(kci-gitlab) that will replace DRM-CI [1]. The proposed GitLab-CI pipeline
is designed with a distributed infrastructure model, making it possible
to run on any gitLab instance. We plan to leverage KernelCI [2] as the
backend, utilizing its hardware, rootfs, test plans, and KCIDB [3]
integration.
For an example of a fully executed pipeline with drm scenario set,
including documentation generation,
see: https://gitlab.freedesktop.org/vigneshraman/kernel/-/pipelines/1350262
Please refer to the documentation included in the patch, or check the
rendered version, here:
https://vigneshraman.pages.freedesktop.org/-/kernel/-/jobs/69787927/artifacts/artifacts/Documentation-output/ci/gitlab-ci/gitlab-ci.html
Differences from v1 to v2:
- moved to tools/ci as suggested by Linus on the previous version
- add arm64 containers for native compilation
- added boot tests using virtme: this is the base structure for boot tests,
next steps would be adding other tests such as kselftests/kunit tests
- added DRM scenario testing on vkms: this should replace current vkms test
in drm-ci. This work shows how a test scenario can be used by different
subsystems to add their tests.
- update documentation
For more details on the motivation behind this work, please refer to the
cover letter of v1: https://patchwork.kernel.org/project/linux-kselftest/cover/20240228225527.1052240-1-helen.koike@collabora.com/
[1] https://www.collabora.com/news-and-blog/blog/2024/02/08/drm-ci-a-gitlab-ci-pipeline-for-linux-kernel-testing/
[2] https://kernelci.org/
[3] https://docs.kernelci.org/kcidb/
Helen Koike (3):
kci-gitlab: Introducing GitLab-CI Pipeline for Kernel Testing
kci-gitlab: Add documentation
kci-gitlab: docs: Add images
Vignesh Raman (2):
MAINTAINERS: Add an entry for ci automated testing
kci-gitlab: Add drm scenario
Documentation/ci/gitlab-ci/gitlab-ci.rst | 471 ++++++++++
.../ci/gitlab-ci/images/drm-vkms.png | Bin 0 -> 73810 bytes
.../ci/gitlab-ci/images/job-matrix.png | Bin 0 -> 20000 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 -> 62464 bytes
.../ci/gitlab-ci/images/variables.png | Bin 0 -> 277518 bytes
Documentation/index.rst | 7 +
MAINTAINERS | 10 +
tools/ci/gitlab-ci/arm_cross_compile.yml | 9 +
tools/ci/gitlab-ci/arm_native_compile.yml | 20 +
tools/ci/gitlab-ci/bootstrap-gitlab-runner.sh | 55 ++
tools/ci/gitlab-ci/build.yml | 43 +
tools/ci/gitlab-ci/cache.yml | 24 +
tools/ci/gitlab-ci/ci-scripts/build-docs.sh | 35 +
tools/ci/gitlab-ci/ci-scripts/build-kernel.sh | 43 +
.../ci/gitlab-ci/ci-scripts/ici-functions.sh | 106 +++
.../ci/gitlab-ci/ci-scripts/install-smatch.sh | 13 +
.../ci-scripts/parse_commit_message.sh | 27 +
.../ci/gitlab-ci/ci-scripts/run-checkpatch.sh | 20 +
tools/ci/gitlab-ci/ci-scripts/run-smatch.sh | 45 +
tools/ci/gitlab-ci/ci-scripts/run-virtme.sh | 52 ++
tools/ci/gitlab-ci/ci-scripts/test-boot.sh | 14 +
tools/ci/gitlab-ci/container.yml | 114 +++
tools/ci/gitlab-ci/docker-compose.yaml | 18 +
tools/ci/gitlab-ci/gitlab-ci.yml | 72 ++
tools/ci/gitlab-ci/scenarios.yml | 15 +
.../scenarios/drm/build-deqp-runner.sh | 42 +
tools/ci/gitlab-ci/scenarios/drm/build-igt.sh | 80 ++
.../ci/gitlab-ci/scenarios/drm/build-rust.sh | 42 +
.../scenarios/drm/create-cross-file.sh | 65 ++
tools/ci/gitlab-ci/scenarios/drm/drm.yml | 44 +
.../scenarios/drm/prepare-container.sh | 18 +
tools/ci/gitlab-ci/scenarios/drm/run-igt.sh | 83 ++
tools/ci/gitlab-ci/scenarios/drm/test.yml | 32 +
.../scenarios/drm/xfails/vkms-none-fails.txt | 22 +
.../scenarios/drm/xfails/vkms-none-flakes.txt | 90 ++
.../scenarios/drm/xfails/vkms-none-skips.txt | 812 ++++++++++++++++++
.../scenarios/file-systems/file-systems.yml | 11 +
tools/ci/gitlab-ci/scenarios/media/media.yml | 11 +
.../gitlab-ci/scenarios/network/network.yml | 11 +
tools/ci/gitlab-ci/static-checks.yml | 21 +
tools/ci/gitlab-ci/test.yml | 16 +
43 files changed, 2613 insertions(+)
create mode 100644 Documentation/ci/gitlab-ci/gitlab-ci.rst
create mode 100644 Documentation/ci/gitlab-ci/images/drm-vkms.png
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 100644 tools/ci/gitlab-ci/arm_cross_compile.yml
create mode 100644 tools/ci/gitlab-ci/arm_native_compile.yml
create mode 100755 tools/ci/gitlab-ci/bootstrap-gitlab-runner.sh
create mode 100644 tools/ci/gitlab-ci/build.yml
create mode 100644 tools/ci/gitlab-ci/cache.yml
create mode 100755 tools/ci/gitlab-ci/ci-scripts/build-docs.sh
create mode 100755 tools/ci/gitlab-ci/ci-scripts/build-kernel.sh
create mode 100644 tools/ci/gitlab-ci/ci-scripts/ici-functions.sh
create mode 100755 tools/ci/gitlab-ci/ci-scripts/install-smatch.sh
create mode 100755 tools/ci/gitlab-ci/ci-scripts/parse_commit_message.sh
create mode 100755 tools/ci/gitlab-ci/ci-scripts/run-checkpatch.sh
create mode 100755 tools/ci/gitlab-ci/ci-scripts/run-smatch.sh
create mode 100755 tools/ci/gitlab-ci/ci-scripts/run-virtme.sh
create mode 100755 tools/ci/gitlab-ci/ci-scripts/test-boot.sh
create mode 100644 tools/ci/gitlab-ci/container.yml
create mode 100644 tools/ci/gitlab-ci/docker-compose.yaml
create mode 100644 tools/ci/gitlab-ci/gitlab-ci.yml
create mode 100644 tools/ci/gitlab-ci/scenarios.yml
create mode 100755 tools/ci/gitlab-ci/scenarios/drm/build-deqp-runner.sh
create mode 100755 tools/ci/gitlab-ci/scenarios/drm/build-igt.sh
create mode 100755 tools/ci/gitlab-ci/scenarios/drm/build-rust.sh
create mode 100755 tools/ci/gitlab-ci/scenarios/drm/create-cross-file.sh
create mode 100644 tools/ci/gitlab-ci/scenarios/drm/drm.yml
create mode 100755 tools/ci/gitlab-ci/scenarios/drm/prepare-container.sh
create mode 100755 tools/ci/gitlab-ci/scenarios/drm/run-igt.sh
create mode 100644 tools/ci/gitlab-ci/scenarios/drm/test.yml
create mode 100644 tools/ci/gitlab-ci/scenarios/drm/xfails/vkms-none-fails.txt
create mode 100644 tools/ci/gitlab-ci/scenarios/drm/xfails/vkms-none-flakes.txt
create mode 100644 tools/ci/gitlab-ci/scenarios/drm/xfails/vkms-none-skips.txt
create mode 100644 tools/ci/gitlab-ci/scenarios/file-systems/file-systems.yml
create mode 100644 tools/ci/gitlab-ci/scenarios/media/media.yml
create mode 100644 tools/ci/gitlab-ci/scenarios/network/network.yml
create mode 100644 tools/ci/gitlab-ci/static-checks.yml
create mode 100644 tools/ci/gitlab-ci/test.yml
--
2.43.0
next reply other threads:[~2025-01-23 13:54 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-01-23 13:53 Vignesh Raman [this message]
2025-01-23 13:53 ` [PATCH v2 1/5] " Vignesh Raman
2025-01-23 13:53 ` [PATCH v2 2/5] MAINTAINERS: Add an entry for ci automated testing Vignesh Raman
2025-01-23 13:53 ` [PATCH v2 3/5] kci-gitlab: Add drm scenario Vignesh Raman
2025-01-23 20:06 ` Simona Vetter
2025-01-24 12:37 ` Helen Mae Koike Fornazier
2025-01-24 15:31 ` Simona Vetter
2025-01-27 4:07 ` Vignesh Raman
2025-01-23 13:53 ` [PATCH v2 4/5] kci-gitlab: Add documentation Vignesh Raman
2025-01-23 13:53 ` [PATCH v2 5/5] kci-gitlab: docs: Add images Vignesh Raman
2025-01-23 15:46 ` Linus Torvalds
2025-01-23 18:04 ` Nicolas Dufresne
2025-01-27 3:56 ` Vignesh Raman
2025-01-23 21:30 ` [PATCH v2 0/5] kci-gitlab: Introducing GitLab-CI Pipeline for Kernel Testing Jarkko Sakkinen
2025-01-23 21:31 ` Jarkko Sakkinen
2025-01-24 12:58 ` Nikolai Kondrashov
2025-01-24 16:32 ` Jarkko Sakkinen
2025-01-24 17:04 ` Nikolai Kondrashov
2025-01-24 17:15 ` Mark Brown
2025-01-24 17:34 ` Laurent Pinchart
2025-01-24 5:11 ` Leonardo Brás
2025-01-24 8:12 ` Laurent Pinchart
2025-01-24 12:16 ` Jarkko Sakkinen
2025-01-24 13:00 ` Nikolai Kondrashov
2025-01-24 14:26 ` Nicolas Dufresne
2025-01-24 15:29 ` Mauro Carvalho Chehab
2025-01-24 19:49 ` Helen Mae Koike Fornazier
2025-01-24 19:59 ` Bird, Tim
2025-01-27 6:39 ` Mauro Carvalho Chehab
2025-01-24 16:36 ` Jarkko Sakkinen
2025-01-24 12:52 ` Mauro Carvalho Chehab
2025-01-24 13:00 ` Laurent Pinchart
2025-01-24 15:45 ` Nicolas Dufresne
2025-01-24 21:12 ` Leonardo Brás
2025-01-27 6:07 ` Laurent Pinchart
2025-01-27 7:07 ` Mauro Carvalho Chehab
2025-01-27 14:43 ` Nicolas Dufresne
2025-01-27 16:23 ` Laurent Pinchart
2025-01-24 20:50 ` Leonardo Brás
2025-01-27 7:32 ` Vignesh Raman
2025-01-27 19:05 ` Leonardo Brás
2025-01-29 9:32 ` Vignesh Raman
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=20250123135342.1468787-1-vignesh.raman@collabora.com \
--to=vignesh.raman@collabora.com \
--cc=Julia.Lawall@inria.fr \
--cc=Tim.Bird@sony.com \
--cc=airlied@gmail.com \
--cc=broonie@kernel.org \
--cc=cocci@inria.fr \
--cc=daniels@collabora.com \
--cc=dave.pigott@collabora.com \
--cc=davidgow@google.com \
--cc=denys.f@collabora.com \
--cc=dri-devel@lists.freedesktop.org \
--cc=geert@linux-m68k.org \
--cc=gregkh@linuxfoundation.org \
--cc=groeck@google.com \
--cc=gustavo.padovan@collabora.com \
--cc=hamohammed.sa@gmail.com \
--cc=helen.koike@collabora.com \
--cc=jarkko@kernel.org \
--cc=kernel@collabora.com \
--cc=kernelci@lists.linux.dev \
--cc=kunit-dev@googlegroups.com \
--cc=laura.nao@collabora.com \
--cc=laurent.pinchart@ideasonboard.com \
--cc=leobras.c@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-kselftest@vger.kernel.org \
--cc=linuxtv-ci@linuxtv.org \
--cc=louis.chauvet@bootlin.com \
--cc=melissa.srw@gmail.com \
--cc=michel.daenzer@mailbox.org \
--cc=mripard@kernel.org \
--cc=nfraprado@collabora.com \
--cc=nicolas.dufresne@collabora.com \
--cc=pawiecz@collabora.com \
--cc=rdunlap@infradead.org \
--cc=sakari.ailus@iki.fi \
--cc=shreeya.patel@collabora.com \
--cc=simona@ffwll.ch \
--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