[PATCH] CONTRIBUTING: refine steps for running CI tests prior to submission

14 views
Skip to first unread message

Cedric Hombourger

unread,
Mar 21, 2025, 4:49:12 AM3/21/25
to isar-...@googlegroups.com, ub...@ilbers.de, Cedric Hombourger
Signed-off-by: Cedric Hombourger <cedric.h...@siemens.com>
---
CONTRIBUTING.md | 36 +++++++++++++++++++++++++++++++++---
1 file changed, 33 insertions(+), 3 deletions(-)

diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index f932417b..06f09aed 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -80,11 +80,16 @@ Plan merges to `master` so that both fit the two-week window; short extensions s
* It's highly suggested to test your patchset before submitting it to the mailing
by launching CI tests scripts. The procedure is described below:

+ ```
git clone https://github.com/siemens/kas
cat > kas.yml <<EOF
header:
version: 12
- build_system: isar
+ build_system: isar
+ defaults:
+ repos:
+ patches:
+ repo: isar
repos:
isar:
url: "http://github.com:/ilbers/isar"
@@ -94,6 +99,7 @@ Plan merges to `master` so that both fit the two-week window; short extensions s
meta-isar:
EOF
kas/kas-container shell kas.yml
+ ```

In kas shell:

@@ -102,13 +108,37 @@ Plan merges to `master` so that both fit the two-week window; short extensions s
|sudo dd of=/etc/apt/trusted.gpg.d/debian-isar.gpg
echo "deb [signed-by=/etc/apt/trusted.gpg.d/debian-isar.gpg] \
http://deb.isar-build.org/debian-isar bookworm-isar main" \
- |sudo /etc/apt/sources.list.d/10-isar_build.list
+ |sudo tee /etc/apt/sources.list.d/10-isar_build.list
sudo apt-get update
- sudo apt-get install avocado
+ sudo apt-get install -y avocado qemu-system-arm qemu-system-x86
cd /work/isar/testsuite
avocado run citest.py -t dev --max-parallel-tasks=1
```

+ Your git-formatpatches may be listed in the `kas.yml` file as illustrated below:
+
+ ```
+ ...
+ repos:
+ isar:
+ url: "http://github.com:/ilbers/isar"
+ refspec: master
+ patches:
+ 0001:
+ path: /work/0001-my-contribution-to-isar.patch
+ layers:
+ meta:
+ meta-isar:
+ ```
+
+ Perform the above steps from a clean directory for your CI run to be as close as
+ possible to the environment that our project maintainers will be using. That
+ directory would contain: *.patch isar/ kas/ kas.yml
+
+ Be also mindful of community-provided resources such as deb.debian.org or
+ snapshot.debian.org and consider using a caching proxy in your setup to
+ reduce traffic as much as possible.
+
Active developers may request from maintainers an account on isar-build.org
to analyze CI logs or to launch their own CI builds there.

--
2.39.5

Cedric Hombourger

unread,
Mar 21, 2025, 7:01:19 AM3/21/25
to isar-...@googlegroups.com, ub...@ilbers.de, Cedric Hombourger
Our CONTRIBUTING guide lists several manual steps to be done prior
to running avocado: introduce a ci_setup script that we will use
as entry-point to the kas container. This will help developers
reproduce the CI environment they should use to validate their
changes prior to submitting them.

Signed-off-by: Cedric Hombourger <cedric.h...@siemens.com>
---
CONTRIBUTING.md | 9 +--------
scripts/ci_setup.sh | 32 ++++++++++++++++++++++++++++++++
2 files changed, 33 insertions(+), 8 deletions(-)
create mode 100755 scripts/ci_setup.sh

diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 06f09aed..b4fa64ff 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -98,19 +98,12 @@ Plan merges to `master` so that both fit the two-week window; short extensions s
meta:
meta-isar:
EOF
- kas/kas-container shell kas.yml
+ kas/kas-container --entrypoint /work/scripts/ci_setup.sh shell kas.yml
```

In kas shell:

```
- wget -q http://deb.isar-build.org/debian-isar.key -O- |gpg --dearmor \
- |sudo dd of=/etc/apt/trusted.gpg.d/debian-isar.gpg
- echo "deb [signed-by=/etc/apt/trusted.gpg.d/debian-isar.gpg] \
- http://deb.isar-build.org/debian-isar bookworm-isar main" \
- |sudo tee /etc/apt/sources.list.d/10-isar_build.list
- sudo apt-get update
- sudo apt-get install -y avocado qemu-system-arm qemu-system-x86
cd /work/isar/testsuite
avocado run citest.py -t dev --max-parallel-tasks=1
```
diff --git a/scripts/ci_setup.sh b/scripts/ci_setup.sh
new file mode 100755
index 00000000..f373d1c0
--- /dev/null
+++ b/scripts/ci_setup.sh
@@ -0,0 +1,32 @@
+#!/bin/sh
+# Script to setup a container for CI builds
+#
+# Cedric Hombourger <cedric.h...@siemens.com>
+# Copyright (c) Siemens AG, 2025
+# SPDX-License-Identifier: MIT
+
+gpg_key=/etc/apt/trusted.gpg.d/debian-isar.gpg
+[ -f "${gpg_key}" ] || {
+ wget -q http://deb.isar-build.org/debian-isar.key -O- \
+ | gpg --dearmor \
+ | sudo dd of="${gpg_key}"
+}
+
+list=/etc/apt/sources.list.d/10-isar_build.list
+[ -f "${list}" ] || {
+ echo "deb [signed-by=/etc/apt/trusted.gpg.d/debian-isar.gpg] \
+ http://deb.isar-build.org/debian-isar bookworm-isar main" \
+ | sudo tee /etc/apt/sources.list.d/10-isar_build.list
+}
+
+tools="avocado qemu-system-aarch64 qemu-system-arm qemu-system-i386 qemu-system-x86_64"
+need_install=0
+for tool in ${tools}; do
+ which "${tool}" || need_install=1
+done
+[ "${need_install}" = "0" ] || {
+ sudo apt-get update
+ sudo apt-get install -y avocado qemu-system-arm qemu-system-x86
+}
+
+exec /container-entrypoint ${*}
--
2.39.5

Cedric Hombourger

unread,
Mar 21, 2025, 7:01:20 AM3/21/25
to isar-...@googlegroups.com, ub...@ilbers.de, Cedric Hombourger
Changes compared to v1:
- introduce ci_setup to reduce the number of manual steps we would
require

Cedric Hombourger (2):
CONTRIBUTING: refine steps for running CI tests prior to submission
ci: add ci_setup script to ease provisioning of the test container

CONTRIBUTING.md | 41 ++++++++++++++++++++++++++++++++---------
scripts/ci_setup.sh | 32 ++++++++++++++++++++++++++++++++
2 files changed, 64 insertions(+), 9 deletions(-)
create mode 100755 scripts/ci_setup.sh

--
2.39.5

Cedric Hombourger

unread,
Mar 21, 2025, 7:01:21 AM3/21/25
to isar-...@googlegroups.com, ub...@ilbers.de, Cedric Hombourger

Uladzimir Bely

unread,
Mar 27, 2025, 6:33:37 AM3/27/25
to Cedric Hombourger, isar-...@googlegroups.com
Applied to next, thanks.

--
Best regards,
Uladzimir.
Reply all
Reply to author
Forward
0 new messages