Since non-booting and non-packaged devices were merged into one list, any
device that was listed as booting but wasn't packaged would get detected
as non-booting. That created a loop where to pass CI one would have to set
packaged = yes, which they shouldn't do until the port has actually been
merged, which they can't do unless it passes CI...
Now the section has been split into two sub-sections, thus the non-booting
section is separate once again. This fixes the issue, but we need to tell
the CI script to use that section name.
This effectively reverts commit e9d2ac8021.
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6579
[ci:skip-build]: already built successfully in CI
The APKBUILD reference seems to suggest that versioned provides= can
have any valid version string (e.g. 0.12-r3) in the `provides=` var, and
that it doesn't have to match `$pkgver-r$pkgrel` for the APKBUILD. IIRC
this test intends to catch typos like `provides=foo=$pkgver-$pkgrel`, so
this makes it pass when any valid version string is given.
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6475
[ci:skip-build]: already built successfully in CI
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
Some phones sold under the Jolla brand are manufactured by a partner,
e.g. the Jolla C2 is manufactured by Reeder. Although these phones
usually have another name given to them by the manufacturer, the name
used by Jolla is more recognizable. Allow specifying a name that
starts with "Jolla" instead of the manufacturer name.
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6426
The wrong branch was not only used for pytest, but for all CI tests that
used pmbootstrap. I've fixed the bug in pmbootstrap now and added a
generic check to ensure we would catch a similar bug if we had one in
the future.
This reverts commit 7fd9e01f7f.
Related: pmaports issue 3674
Related: pmbootstrap MR 2586
Related: ci-common MR 14
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6439
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>
Introduce some basic infrastructure to allow running per-package unit
test jobs, as well as a library to support unit-testing shell scripts.
Packages can provide their own unit tests by adding a tests/
subdirectory to the package, this should contain a .gitlab-ci.yml file
with jobs that extend the .package-test job template as well as any
supporting data and scripts.
Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6182
This way you can add e.g. [ci:skip-vercheck] to the commit it actually
belongs to instead of having to add it to the last one in the series,
which is unintuitive. It still doesn't only run the check on commits
that contain the message, which might be a nice future improvement.
We now have a bot that reads those lines from APKBUILD files, instead
of using a proprietary gitlab feature. Relevant changes:
* Change @ollieparanoid for @Newbyte as maintainer for GNOME packages
where Oliver was listed.
* Don't add @craftyguy as Librem5 maintainer, as he dropped it long
ago
* Remove entries referencing archived ports
* Don't touch jenneron's maintainership. That's a task for another day
* Don't add "balejk" as maintainer. We have tried pinging them, but
seem to be currently idle
person is. Help figuring it out would be welcomed.
* Don't add "binarycraft" as maintainer. Last contribution was years
ago: https://gitlab.com/binarycraft
* Don't add more maintainers to linux-postmarketos-qcom-msm8953, as it
would have ended up with 7, which might be a bit too much
* Don't add more maintainers to the PinePhone. The current ones seem
to actually be the most active
* Don't add Danct12 to N900. Sicelo has been single-handedly managing
it for a long while
* Update maintainer emails for Nikita Travkin, Alexey Minnekhanov, and
Barnabás Czémán
[ci:skip-vercheck] Co-Maintainer changes require no pkgrel updates
since the names do not make it to the package itself
[ci:ignore-count]
Fixes#3530
[ci:skip-build]: already built successfully in CI
This check is present for "normal" packages, duplicate it for
ones that are thrown into "retry build with systemd later" list.
We need to explicitly pass with_extra_repos="enabled" arg to
find() to avoid getting cached "package not found in repos" result.
Signed-off-by: Alexey Minnekhanov <alexeymin@postmarketos.org>
[ci:skip-build]: already built successfully in CI
Right now we have two similar implementations of setting up a USB mass
storage gadget, in init_functions.sh and as separate script for the
debug-shell. Given that init_functions.sh is available in debug-shell
anyway, unify both in a common setup_usb_storage_configfs() function.
Having this included in the initramfs debug-shell by default (without
installing postmarketos-mkinitfs-hook-debug-shell) also simplifies
recovery, since you can set up the USB storage for repairing the flashed
postmarketOS installation in case of boot failures. The size overhead is
minimal, since this has no extra dependencies.
Fix TypeError when RuntimeError is thrown
Example:
FAILED testcases/test_device.py::test_aports_device -
TypeError: can only concatenate str (not "PosixPath") to str
The current test script disallows these kinds of comments:
deviceinfo_some_variable="some_value" # an inline comment
Since deviceinfo is essentially a shell script, it does make sense to
allow inline comments. It is relatively simple to implement as well, by
adjusting the regex.
[ci:skip-build]: already built successfully in CI
The project access token disappeared (maybe expired?), let's avoid
hardcoding this and put it in a CI variable instead.
Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
pmbootstrap used to exit with 0 if "pmbootstrap lint" failed. This was
the case in 2.3.x too, but I assumed this was a regression and fixed it
recently in pmbootstrap MR 2398.
It turns out that the CI code relied on this assumption, it captured the
output of "pmbootstrap lint", and only after it is done it checks if the
output wasn't empty and prints it in that case followed by exit 1.
Now that pmbootstrap actually exits with 1, CI already fails at
"common.run_pmbootstrap" and doesn't get to the part where it would be
printed.
I think "exit 1" on error is actually the right thing to do in
pmbootstrap, so I'll leave that in. Adjust CI to just run "pmbootstrap
lint", removing the additional output capture logic that isn't used
anywhere besides here. This also has the advantage that we get the
output "live", without buffering it completely first.
Update the bot email address, and don't enable the script for local CI
since it relies on protected GitLab CI variables. This could be fixed in
the future by safely handling these not being available.
Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
I was confused for a while about why the SHA printed by CI differed from
the actual upstream/master SHA:
commit upstream/master: f822b7ee0d06f05ff6d2eb37bcf4a1825569be692
real upstream/master: 822b7ee0d0
With this change, the build test will only build changed aports when
they are in an enabled repo. It will also detect when a changed aport is
in extra-repos/systemd, and build it later with systemd support enabled.
[ci:skip-build]: already built successfully in CI