Commit graph

293 commits

Author SHA1 Message Date
Stefan Hansson
a9897a91e2
CI: Adapt to new pmbootstrap arch checking API
See https://gitlab.postmarketos.org/postmarketOS/pmbootstrap/-/merge_requests/3004

Signed-off-by: Stefan Hansson <newbyte@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/9104>
2026-07-21 21:01:58 +02:00
Aster Boese
0715fcdb82
ci: grep: always run nonfree-firmware check
Changes the nonfree-firmware check to check all APKBUILDs outside
of 'archived' to align better with the other checks. This is now
possible now that no package uses the old nonfree-firmware logic
outside of 'archived'.

Signed-off-by: Aster Boese <asterboese@mailbox.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/9086>
2026-07-20 15:10:00 +00:00
Aelin
a83b5f262f
ci: Commit all changes in linux-next
We regenerate the configs, but we only commit the APKBUILD. This
resulted in checksum mismatches.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/9095>
2026-07-20 09:14:05 +00:00
Aelin
7c34fe98a2
ci: Regenerate linux-next configs
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7937>
2026-07-11 02:30:02 +02:00
Aster Boese
1ab5c4ed75
ci: fix test_providers.py to not fail if provider_priority is 0
As per the apk-tools and abuild source code, 0 is a perfectly valid integer
for provider_priority, but our Python tests currently fail with a priority of 0
because 0 and None are the same in the if statement that checks priority.

Changes the if statement that checks priority to fail if the priority is
explicitly None.

Signed-off-by: Aster Boese <asterboese@mailbox.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8973>
2026-07-06 20:47:06 +00:00
Aster Boese
a6cef777a0
ci: grep: disallow contributor comments
[ci:skip-grep]
[ci:skip-kconfigcheck]
[ci:skip-vercheck]

Signed-off-by: Aster Boese <asterboese@mailbox.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8950>
2026-07-06 20:41:44 +02:00
Aster Boese
a74048b1e2
ci: grep: disallow /etc/phoc.ini
Signed-off-by: Aster Boese <asterboese@mailbox.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8845>
2026-07-05 12:05:55 +02:00
Aster Boese
12ed1e8f99
ci: grep: remove device exceptions from wallpaper check
Every excepted device is either fixed or in archived. If the devices are
moved back, they should be fixed during the move.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8922>
2026-06-27 21:56:52 +00:00
Aster Boese
51d322dd4b
ci: grep: disallow nonfree-firmware subpackages
The original disallowing of these subpackages happened in 2024.
It was expected that device packages would be voluntarily migrated
by the maintainers to reflect this new rule. But, this never happened.
Thus, enforcing this on all new and changed packages will force
the fixing of these packages.

This is not a treewide because so many packages still use the
nonfree-firmware subpackage logic that an MR would be an absolute pain
to handle and rebase. This is also a very easy fix to incorporate into
unrelated changes.

See https://postmarketos.org/edge/2024/02/15/default-nonfree-fw/

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8914>
2026-06-27 12:39:53 +02:00
Aelin
34a631a01e
ci: Tag x86 and x86_64 jobs with architecture tags
The OSUOSL x86_64 runners have the x86, x86_64 and shared tags. Let's
unify this and use the architecture tags instead of "shared" for these
as well.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8913>
2026-06-26 23:42:11 +00:00
Aster Boese
e603f09fd6
CI: grep: disallow /etc/local.d
/etc/local.d/ is reserved entirely for sysadmins for usage with OpenRC.
There was an effort to move this path to *-openrc subpackages in
abuild!484, but it was stalled for this reason. As such, it makes
the most sense to disallow all files in /etc/local.d/ in packaging.

Signed-off-by: Aster Boese <asterboese@mailbox.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8745>
2026-06-24 12:15:19 +02:00
Aelin
093fd51946
ci: Also require building with LLVM for modified kernel packages
Previously, we only checked that new or moved kernel APKBUILDs in
testing or above were building the kernel with LLVM. Now that it is also
formally a requirement for testing, we should change this check to also
enforce it when making modifications to a kernel APKBUILD in testing or
above.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8888>
2026-06-23 22:50:18 +00:00
Ferass El Hafidi
16125a7bbf
CI: remove armhf
Signed-off-by: Ferass El Hafidi <funderscore@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8884>
2026-06-23 05:03:43 +00:00
Pablo Correa Gómez
e06d0ec2f2
ci: removed drop pmb options
Signed-off-by: Pablo Correa Gómez <pabloyoyoista@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8854>
2026-06-21 14:39:53 +00:00
Pablo Correa Gómez
3c159f1682
ci: simplify pmb usage
pmb.helpers.package.check_arch with binary=False is a complex way of
fetching the APKBUILD and checking it against
pmb.helpers.pmaports.check_arches. Since we already have the APKBUILD,
just check the arches directly.

Signed-off-by: Pablo Correa Gómez <pabloyoyoista@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8854>
2026-06-21 14:39:53 +00:00
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
Oliver Smith
734884e864
CI: apkbuild-lint: add a skip-apkbuild-lint tag
As we are now moving to a newer, stricter version, we might want to skip
fixing APKBUILDs in some MRs. And this is in general useful to have.

Signed-off-by: Oliver Smith <ollieparanoid@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8735>
2026-06-07 10:09:20 +00:00
Oliver Smith
87502f982e
CI: apkbuild-lint: make output more readable
Add empty lines around the apkbuild-lint output, so it is easy to spot.
Also note when it is starting and if it was successful (vs. not having
any output on success).

Signed-off-by: Oliver Smith <ollieparanoid@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8735>
2026-06-07 10:09:20 +00:00
Oliver Smith
ac3e4f8a70
CI: apkbuild-lint: fix checking only the 1st file
apkbuild-lint only checks the file from the first parameter:

$ apkbuild-lint main/postmarketos-ui-phosh/APKBUILD
IC[AL65]:main/postmarketos-ui-phosh/APKBUILD:66:2:non-local 'install' variable in function 'openrc'. Add install scripts to global install variable instead.
MC[AL49]:main/postmarketos-ui-phosh/APKBUILD:46:1:invalid option 'pmb:drm'
MC[AL49]:main/postmarketos-ui-phosh/APKBUILD:46:1:invalid option 'pmb:systemd'

$ apkbuild-lint main/hello-world/APKBUILD main/postmarketos-ui-phosh/APKBUILD
(empty output!)

Loop over the APKBUILDs we want to lint so all of them get checked.

Signed-off-by: Oliver Smith <ollieparanoid@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8735>
2026-06-07 10:09:17 +00:00
Aster Boese
67d104aa0b
ci: verify-checksums: ignore archived
Because archived is neglected, the sources of packages therein can have
dead links, causing any MR that touches them to fail. Since we don't want
to fix archived packages, just ignore them entirely.

Signed-off-by: Aster Boese <asterboese@mailbox.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8661>
2026-05-29 17:36:08 +00:00
Clayton Craft
4121c0d740
main/postmarketos-duranium: drop subpartition script, expand udev disk hack
systemd 261 can now natively detect and mount subpartitions.

Fixes #4544

This also works around an issue where udiskie will prompt for mounting
the /usr partitions on disk, when they are subpartitions. I didn't
file a bug upstream because it's really not clear to me what to blame
(udisks2? udiskie? udev?)

Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8660>
2026-05-28 22:56:37 +00:00
Aelin
ed13c0ed9e
ci: Run armhf jobs natively
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8654>
2026-05-27 18:35:22 +00:00
Aster Boese
7a6d8d5e9c
ci: grep: add option to ignore grep.sh errors
Adds an option to ignore grep.sh errors in instances where there may be false
positives due to git weirdness. e.g. git not tracking renames and instead
seeing them as new packages.

Signed-off-by: Aster Boese <asterboese@mailbox.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8652>
2026-05-27 15:29:12 +02:00
Stefan Hansson
2dec667f00
CI: Add check for required pmbootstrap version's age
While ideally everyone would be running the latest pmbootstrap version,
in practice people don't always update right away. And even if they want
to, their distribution may not have the latest version packaged yet.
Let's enforce some wiggle room here so distributions have time to catch
up before we require newer versions.

Signed-off-by: Stefan Hansson <newbyte@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8550>
2026-05-13 21:16:39 +00:00
Aelin
531c8cdcaa
ci: Run armv7 jobs on native runner
We now have a runner capable of running 32-bit ARM jobs natively, so
switch to it to relieve the QEMU runner and get faster builds.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8539>
2026-05-12 21:03:00 +02:00
Aelin
2b26a11a85
ci: Tag aarch64 builds for aarch64 rather than arm64
Our aarch64 runners are tagged with both the aarch64 and the arm64 tag,
let's use the aarch64 tag to be consistent with the architecture naming
in APK.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8539>
2026-05-12 20:46:34 +02:00
Stefan Hansson
aa19f54ef9
Revert "ci: shellcheck: update mkinitfs hook paths"
This reverts commit 59beb3ba91.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8511>
2026-05-10 13:43:38 +00:00
Casey Connolly
3622865c9e CI: fix autoupdate
Reference the main branch instead of master.

Signed-off-by: Casey Connolly <kcxt@postmarketos.org>
2026-05-07 23:14:34 +02:00
Aster Boese
c883d781bd
ci: grep: enforce installing kernel modules to /usr/lib/modules/
Signed-off-by: Aster Boese <asterboese@mailbox.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8374>
2026-05-04 09:43:12 +02:00
Stefan Hansson
c6caa19a8f
Revert "linux-postmarketos-allwinner: HACK: disable cross-native"
This was only needed as a temporary workaround[1].

This reverts commit a184bf63e2.

 [1]: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8295#note_546725

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8476>
2026-05-03 09:27:01 +02:00
Aster Boese
59beb3ba91
ci: shellcheck: update mkinitfs hook paths
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8413>
2026-04-23 19:04:55 +00:00
Stefan Hansson
a184bf63e2
linux-postmarketos-allwinner: HACK: disable cross-native
To avoid issue described here:
https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8295#note_5453

Signed-off-by: Stefan Hansson <newbyte@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8295>
2026-04-18 14:40:07 +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
Clayton Craft
5d73bec629
ci/shellcheck: add duranium scripts
Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8330>
2026-04-12 17:17:55 +00:00
Achill Gilgenast
e38532b7f7
ci: relax pkgrel changes for packages that don’t have remote sources
Motivation is to avoid unnecessary overhead for MR authors & no reason to
actually use pkgrel for meta-packages.

So instead, recommend pkgver-bumps & pkgrel=0 for metapackages, but don't
block MRs when they bumped the "wrong" one. Just make everyone's life easier.

Discussed at <https://docs.postmarketos.org/policies-and-processes/governance/team-meetings/meeting-notes.html> (2026-03-16)

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8302>
2026-04-10 12:08:26 +00:00
Luca Weiss
1ab8eefdd5
CI: Run dint job on all files on deviceinfo_schema.toml change
Similar to kconfigcheck.toml, let's run the dint job on all deviceinfo
files when the spec itself is changed. This allows to catch possible new
warnings and errors early and fix them.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8139>
2026-03-20 01:57:32 +00:00
Aster Boese
5da1b74db0
ci: replace master strings with main
Signed-off-by: Aster Boese <asterboese@mailbox.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8183>
2026-03-15 17:47:40 +00:00
Aelin
a3e0b0db8d
ci: Require maintainers for new packages
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8171>
2026-03-14 11:23:21 +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
ee7c30c4f6
ci: skip "docs" folder as part of get_changed_packages test
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
Stefan Hansson
cfff222fb2
CI: Add mypy check
Signed-off-by: Stefan Hansson <newbyte@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7960>
2026-03-12 18:53:15 +00:00
Stefan Hansson
38434fbed9
CI: lib/generate_build_jobs.py: Fix type error
Caught by mypy.

Signed-off-by: Stefan Hansson <newbyte@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7960>
2026-03-12 18:53:15 +00:00
Luca Weiss
eecf3e2080
ci: check_devices_in_wiki: Skip packages in 'archived' category
Per definition, those are not available anymore, so stop trying to
validate them.

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8035>
2026-02-18 22:04:39 +01: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
4b01acf1ec
ci: Lint when LLVM is not used for a new or moved mainline kernel package
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7920>
2026-02-04 13:35:24 +00:00
Pablo Correa Gómez
bad5420f36
ci: fix typo and more printing in generate_build_jobs
There is usually a benefit of having CI jobs print properly what is
going on.

Signed-off-by: Pablo Correa Gómez <pabloyoyoista@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7868>
2026-02-01 21:06:25 +00:00
Pablo Correa Gómez
ddb822187a
ci: make removed=False the default for get_changed_files
Eventually we probably want this everywhere.

Signed-off-by: Pablo Correa Gómez <pabloyoyoista@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/7868>
2026-02-01 21:06:25 +00:00