Skip to content

conf,ci: Transition to KAS for build and workflow management#86

Merged
psaavedra merged 1 commit intomainfrom
migration_to_kas
Mar 12, 2026
Merged

conf,ci: Transition to KAS for build and workflow management#86
psaavedra merged 1 commit intomainfrom
migration_to_kas

Conversation

@psaavedra
Copy link
Copy Markdown
Member

KAS for build and workflow management brings significant improvements in efficiency, maintainability, and consistency to our build process. Replacingthe repo tool with kas streamlines the management of Yocto build configurations.

  • Replace repo with kas for managing Yocto build configurations.
  • Update GitHub Actions to use kas for checkout, build, and test processes.
  • Simplify build environment setup in README.md with kas commands.
  • Remove obsolete manifest-scarthgap.xml and related repo configurations.
  • Introduce new KAS configuration files for machines and presets.
  • Enhance workflow automation by integrating timestamp generation and matrix strategies.

Change-Type: major
Maintenance-Type: ci

@psaavedra psaavedra self-assigned this Nov 16, 2025
@psaavedra psaavedra marked this pull request as ready for review November 20, 2025 12:31
@psaavedra psaavedra force-pushed the migration_to_kas branch 2 times, most recently from 2311237 to e11be66 Compare November 20, 2025 14:43
@TingPing
Copy link
Copy Markdown
Member

TingPing commented Feb 16, 2026

This looks really good. One comment is we shouldn't document that users run kas, they should always use kas-container with an appropriate image.

I've made an image for this: https://github.com/TingPing/kas-ubuntu (ghcr.io/tingping/kas-ubuntu-22.04:latest)

I was also using that for the CI runner.

@psaavedra
Copy link
Copy Markdown
Member Author

psaavedra commented Feb 16, 2026 via email

@psaavedra
Copy link
Copy Markdown
Member Author

@TingPing working on it. I expect to have something for today.

@psaavedra psaavedra force-pushed the migration_to_kas branch 2 times, most recently from 36aa76b to 8217783 Compare February 19, 2026 14:27
@github-actions
Copy link
Copy Markdown

💿️ Image for wpe-2_50-wandboard-mesa (ref: 8348a22).

@github-actions
Copy link
Copy Markdown

💿️ Image for wpe-2_50-raspberrypi5 (ref: 8348a22).

@github-actions
Copy link
Copy Markdown

💿️ Image for wpe-2_50-wandboard-mesa (ref: fc1f43e).

@github-actions
Copy link
Copy Markdown

💿️ Image for wpe-2_50-wandboard-mesa (ref: fc1f43e).

@github-actions
Copy link
Copy Markdown

💿️ Image for wpe-2_50-raspberrypi5 (ref: fc1f43e).

@github-actions
Copy link
Copy Markdown

💿️ Image for wpe-2_50-raspberrypi3-mesa (ref: fc1f43e).

Copy link
Copy Markdown
Member

@TingPing TingPing left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All of the kas usage looks good.

Just left some questions more about the workflow of end users.

Presets:
```sh
export KAS_WORK_DIR="workdir/wpe-image-rpi3"
kas-container build kas.yml:kas/machines/raspberrypi3-mesa.yml:kas/presets/wpe-nightly.yml
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We can't just recommend kas-container. It has to use an image based on Ubuntu 22.04 just as the CI does, ideally the same image.

This was why I suggested https://github.com/TingPing/kas-ubuntu/pkgs/container/kas-ubuntu-22.04

Then you'd set the env var KAS_CONTAINER_IMAGE='ghcr.io/tingping/kas-ubuntu-22.04:latest'.

I could move this repo to the Igalia org if you'd like, though I don't have an automated action atm I can set that up later.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We can't just recommend kas-container. It has to use an image based on Ubuntu 22.04 just as the CI does, ideally the same image.

Why not I think the default kas container has all the specifics for build a yocto image with wpewebkit. I will double check but I think it is enough.

Copy link
Copy Markdown
Member

@TingPing TingPing Feb 27, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The default image is some Debian release. I'm pretty sure Scarthgap doesn't support it. Various recipes simply don't work and may break over time. No matter what the output is not comparable to what CI does so doubles the support effort.

Copy link
Copy Markdown
Member Author

@psaavedra psaavedra Feb 28, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This image is still based on scarthgap. Yocto is officially compatible with the following distributions:

  • Debian 11
  • Debian 12 <<<<
  • Fedora 39
  • Fedora 40
  • Fedora 41
  • Rocky Linux 8
  • Rocky Linux 9
  • Ubuntu 20.04 (LTS)
  • Ubuntu 22.04 (LTS)
  • Ubuntu 24.04 (LTS)

Reference: https://docs.yoctoproject.org/scarthgap/ref-manual/system-requirements.html#supported-linux-distributions

By default, kas-container uses the official images from the kas project hosted on ghcr.io/siemens/kas/kas:<version>.

The <version> tag matches the local kas-container script version (e.g, kas:4.8 if you are using kas 4.8).

These kas images are, as you mentioned, based on Debian. Depending on the kas version in use, we get:

psaavedra@golpe ~ $ podman run -it --rm ghcr.io/siemens/kas/kas cat /etc/debian_version
Trying to pull ghcr.io/siemens/kas/kas:latest...
13.3
psaavedra@golpe ~ $ podman run -it --rm ghcr.io/siemens/kas/kas:5.2 cat /etc/debian_version
Trying to pull ghcr.io/siemens/kas/kas:5.2...
13.3
psaavedra@golpe ~ $ podman run -it --rm ghcr.io/siemens/kas/kas:4.7 cat /etc/debian_version
12.9
psaavedra@golpe ~ $ podman run -it --rm ghcr.io/siemens/kas/kas:4.0 cat /etc/debian_version
Trying to pull ghcr.io/siemens/kas/kas:4.0...
12.0

Debian 12 is officially supported by Yocto, so it has been extensively tested by the community across many projects. In addition, I have used kas 5 for a long time in projects without encountering any issues when building scarthgap-based Yocto images with WPEWebKit.

We could also rely on a bare-metal Ubuntu or Debian installation, but in that case we must install all required packages manually, as documented here:
https://docs.yoctoproject.org/scarthgap/ref-manual/system-requirements.html#ubuntu-and-debian

Given that the kas images already provide a suitable, preconfigured Debian environment and are maintained by the kas project, I do not see any real advantage in switching to a bare-metal setup.

Therefore, we could agree that kas images with version >= 4 provide a valid and reliable environment for the meta-wpe-image build process as default.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah my kas version was newer and used Debian 13.

KAS for build and workflow management brings improvements in
maintainability and consistency to our build process. Replacing the
repo tool with kas simplifies the management of Yocto build
configurations.

* Replace `repo` with `kas` for managing Yocto build configurations.
* Update GitHub Actions to use `kas` for checkout, build, and test
  processes.
* Simplify build environment setup in `README.md` with `kas` commands.
  * Add detailed steps for installing `kas` and setting up the work
    directory.
  * Include instructions for building images for various Raspberry Pi
    models.
* Remove obsolete `manifest-scarthgap.xml` and related `repo`
  configurations.
* Introduce new KAS configuration files for machines and presets.
* Enhance workflow automation by integrating timestamp generation and
  matrix strategies.

Change-Type: major
Maintenance-Type: ci
Signed-Off-By: Pablo Saavedra <psaavedra@igalia.com>
@github-actions
Copy link
Copy Markdown

💿️ Image for wpe-2_50-raspberrypi5 (ref: 93f62e9).

@github-actions
Copy link
Copy Markdown

💿️ Image for wpe-2_50-wandboard-mesa (ref: 93f62e9).

@github-actions
Copy link
Copy Markdown

github-actions bot commented Feb 27, 2026

💿️ Image for wpe-2_50-raspberrypi3-mesa (ref: e9ebec6).

@github-actions
Copy link
Copy Markdown

github-actions bot commented Feb 27, 2026

💿️ Image for wpe-2_50-raspberrypi5 (ref: e9ebec6).

@github-actions
Copy link
Copy Markdown

💿️ Image for wpe-2_50-wandboard-mesa (ref: e9ebec6).

@psaavedra psaavedra merged commit a32d5dd into main Mar 12, 2026
27 of 29 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants