19 Commits
Author SHA1 Message Date
Aelin e7fe5dab0e ci: Switch to Alpine 3.24 for CI runs
Now that Alpine 3.24 is out and the issues with Python 3.14 are
resolved, we can safely upgrade in CI.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8859>
2026-06-19 10:52:05 +00:00
Aelin 4e97050cf4 CI: build-jobs: Pull from Alpine's registry
Dockerhub does not support loongarch64, but Alpine's registry does. We
need to hardcode the latest stable release here until the latest tag is
made to point at a stable release rather than edge.

Fixes: a0bc3115a9 ("CI: build-jobs: use Alpine stable")
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8353>
2026-04-14 06:08:31 +00:00
Oliver Smith a0bc3115a9 CI: build-jobs: use Alpine stable
Fix that the build-jobs were using Alpine edge. This seems
unintentional, or at least inconsistent. Before this patch we had:

  $ git grep alpine:latest
  .ci/build-jobs.yaml.j2:image: registry.alpinelinux.org/img/alpine:latest
  .gitlab-ci.yml:image: alpine:latest

It turns out that "registry.alpinelinux.org/img/alpine:latest" is
actually alpine edge:

  $ docker run --rm registry.alpinelinux.org/img/alpine:latest cat /etc/os-release
  Unable to find image 'registry.alpinelinux.org/img/alpine:latest' locally
  latest: Pulling from img/alpine
  d4a983187cfd: Pull complete
  Digest: sha256:47b4a945203d4bad4e0c7840d64044da50a719d0cd0512a50e3ab473240635ea
  Status: Downloaded newer image for registry.alpinelinux.org/img/alpine:latest
  NAME="Alpine Linux"
  ID=alpine
  VERSION_ID=3.21.0_alpha20240923
  PRETTY_NAME="Alpine Linux edge"
  HOME_URL="https://alpinelinux.org/"
  BUG_REPORT_URL="https://gitlab.alpinelinux.org/alpine/aports/-/issues"

And alpine:latest is stable (when fetched from docker hub, with podman
it could be configured to point at alpine's registry as well, which
means it is edge... but the OSUOSL CI runners use docker):

  $ docker run --rm alpine:latest cat /etc/os-release
  Unable to find image 'alpine:latest' locally
  latest: Pulling from library/alpine
  589002ba0eae: Already exists
  Digest: sha256:25109184c71bdad752c8312a8623239686a9a2071e8825f20acb8f2198c3f659
  Status: Downloaded newer image for alpine:latest
  NAME="Alpine Linux"
  ID=alpine
  VERSION_ID=3.23.3
  PRETTY_NAME="Alpine Linux v3.23"
  HOME_URL="https://alpinelinux.org/"
  BUG_REPORT_URL="https://gitlab.alpinelinux.org/alpine/aports/-/issues"

Using stable makes more sense here, so temporary bugs in edge don't
break our CI. It is currently somewhat broken because running
pmbootstrap with python 3.14 and musl results in crashes with "No file
descriptors available" errors in some situations.

Related: https://gitlab.postmarketos.org/postmarketOS/postmarketos/-/work_items/141
Signed-off-by: Oliver Smith <ollieparanoid@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8340>
2026-04-12 19:29:04 +00:00
Pablo Correa Gómez cb182b59ca ci: don't set the CI_TRON_KERNEL_CMDLINE__DEVICEINFO globally
This breaks the oneplus-fajita, since its own console argument is not
picked. And the other options don't make sense there anyway.

Signed-off-by: Pablo Correa Gómez <pabloyoyoista@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7881>
2026-03-12 19:17:36 +00:00
Pablo Correa Gómez ac541f7afb ci: small simplification in generate_build_jobs
We don't need to check against "is_present_in_ci", since we already
did not consider devices that did not have a gitlab_ci_fragment

Signed-off-by: Pablo Correa Gómez <pabloyoyoista@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7881>
2026-03-12 19:17:12 +00:00
Pablo Correa Gómez a74918cca6 ci: define the kind of tests to run in each jinja template
This is the main entrypoint to understand what tests each device is
running. Therefore, it avoids one extra level of indirection, and
allows for different devices to run different kind of tests in the
future.

Signed-off-by: Pablo Correa Gómez <pabloyoyoista@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7881>
2026-03-12 19:17:08 +00:00
Pablo Correa Gómez f31d40626a ci: update ci-common template
Signed-off-by: Pablo Correa Gómez <pabloyoyoista@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7927>
2026-02-04 18:46:15 +01:00
Aelin 2056701d6c ci: Drop KERNEL_NAME
Only Alpine kernels use the vmlinuz-VARIANT naming scheme, postmarketOS
kernel images are always called vmlinuz.

Since we only use our own kernels now, we can completely get rid of the
variable and always look for vmlinuz.

[ci:skip-vercheck]: the checks can't handle bumping pkgver *and* pkgrel
[ci:skip-build]: takes a long time and already built successfully in CI

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7398>
2026-01-24 22:29:22 +00:00
Clayton Craft 2d9bbc368d ci: hardcode ci-tron DUT kernel cmdline
Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7708>
2026-01-23 15:06:19 -08:00
Pablo Correa Gómez 55a97f8085 ci: fix generation of build-jobs.yaml on devices without kernel variants
The check in Python did not work with devices without kernel variants
due to it returning None and that breaking the has_kernel_variants
check. Fix that, and also adding the kernel variant to install
packages, which was missed. In the process, rename kernels to
kernel_variants. All devices have at least one kernel, but not all
have "variants" :)

Signed-off-by: Pablo Correa Gómez <pabloyoyoista@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7489>
2026-01-15 07:48:41 +00:00
Pablo Correa Gómez b7de1b3108 ci: enable support for fastboot devices in ci-tron
Signed-off-by: Pablo Correa Gómez <pabloyoyoista@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7489>
2026-01-15 07:48:41 +00:00
Pablo Correa Gómez 37ec13a7ee ci: update ci-tron vendored dependencies
This should fix missing logs on error like in
https://gitlab.postmarketos.org/postmarketOS/pmaports/-/jobs/1465845

[ci:skip-vercheck]

Signed-off-by: Pablo Correa Gómez <pabloyoyoista@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7761>
2026-01-14 15:26:51 -08:00
Aelin 47f342bfcb ci: Use base image from Alpine container registry
Docker does not support loongarch64 for official images yet. Alpine
publishes images for all architectures on their registry, so just use
that instead.

See also https://gitlab.alpinelinux.org/alpine/docker-abuild/-/merge_requests/71

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7738>
2026-01-13 14:31:30 +00:00
Pablo Correa Gómez 41d7b0c4b7 ci: improve dependency resolution in build-jobs.yaml.j2
The gitlab issue is now resolved! Although we still need gitlab 18.6
to test it.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7590>
2025-12-26 13:29:15 +00:00
Pablo Correa Gómez 9efda70d16 build-jobs: use parallel:matrix instead of copy-pasting job definitions
This has the additional benefit that the job is always defined, and
then we can just add the placeholder as any other job

Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6693
[ci:skip-build]: already built successfully in CI
2025-08-13 12:59:38 +02:00
Martin Roukala (né Peres) a0fd5e421c ci: add support for building and testing device boot images
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6696
2025-07-30 12:54:24 +02:00
Pablo Correa Gómez 0257d1ee5c build-jobs: expose the locally-generated key as an artifact
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6696
2025-07-30 12:54:24 +02:00
Samuel Dionne-Riel 2533d06c90 ci: Always add build jobs, but disable by default
This sounds counter-productive and counter-intuitive, but hear me out:
this allows using `needs` to depend on those jobs, without further
templating downstream jobs.

In turn, those jobs depending on a disabled jobs, while they still exist
in the “graph” of the pipeline, are also transitively disabled.

This change, for all intents and purpose, is a no-op regarding the
amounts of jobs being sent to CI runners.

Also updates the comment for the placeholder job, since the wording
could lead to think that *having jobs* is sufficient. In reality, having
jobs that ran succesfully is necessary for the child pipeline to be
successful.

Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6399
2025-05-13 09:34:45 -07:00
Pablo Correa GómezandClayton Craft 218d0b1745 ci: build packages in a child pipeline instead of in the main one (MR 6366)
Following Alpine's example. This allows some optimizations:
* Don't start one job per architecture simply to skip them after
  rebase and before merge
* If there are no packages, don't start the jobs at all (not true,
  gitlab bug)
* Avoid creating jobs for architectures that don't have changed
  packages, thus further reducing the unnecessary
  jobs and possibly reducing transient failures

Co-authored-by: Clayton Craft <clayton@craftyguy.net>
2025-04-11 12:26:20 -07:00