Commit Graph
283 Commits
Author SHA1 Message Date
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
Pablo Correa Gómez 67045e0cbd ci: use more removed=False for get_changed_files
Most of the things don't really need it.

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:22 +00:00
Pablo Correa Gómez 6fb42ecb3f ci: enable unused-import in ruff
This was not possible to remove while add_pmbootstrap_to_import_path
was in use, since that module wasn't actually used, but just
imported. As the previous commit shows, this was important to have
enabled.

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:18 +00:00
Pablo Correa Gómez fe7af59c58 ci: remove unused imports
As detected and fixed by ruff

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:18 +00:00
Pablo Correa Gómez 41e2d23210 ci: remove add_pmbootstrap_to_import_path
Unused since the previous commit

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:18 +00:00
Pablo Correa Gómez 69e772d561 ci: remove unnecessary add_pmbootstrap_to_import_path
Since the previous commit we just set the PYTHONPATH globally, which
is saner than include 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:18 +00:00
Pablo Correa Gómez e01c66bb46 ci: set PYTHONPATH for the pmb module globally
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:14 +00:00
Pablo Correa Gómez c38534993e ci: rename script run by kconfig.sh to be consistent with its name
This makes it easier to navigate the CI code

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:14 +00:00
Pablo Correa Gómez 32e058f2ea ci: rename commits ci script to check-changed-versions
So it actually explains what it does. In the process, make the name of
the Python file it executes also consistent.

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:14 +00:00
Pablo Correa Gómez ba2237700a ci: update reasons for using 'native'
Just requiring pmbootstrap installed is no reason to run 'native', as
other tests show. Now the messages are also consistent.

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:11 +00:00
Pablo Correa Gómez 5d8c30c8e9 ci: enable a few ruff checks
These are all already functional. The only one missing is unused
imports due to "add_pmbootstrap_to_import_path"

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:07 +00:00