Debian bookworm uses golang 1.19, which is rather outdated. In
preperation of switching to go modules that require a newer go stop
build testing with Debian bookworm. Leaving current Debian stable
(trixie), testing (forky) and arch.
Fixes: #564
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
The user-mode-linux backend appears to be buggy in trixie. Disable
the user-mode-linux backend tests.
Signed-off-by: Christopher Obbard <christopher.obbard@linaro.org>
Let verify (indirectly) save the cleaned keyring paths back to the
action arguments so those are used for the Run as well
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Since forky is the codename for the new version of debian testing, run
the CI tests under forky.
Signed-off-by: Christopher Obbard <christopher.obbard@linaro.org>
Ensure that submitted merge requests are run through a go linter check to keep
high code quality. Run the linter job in parallel with the unit test jobs
but do not run subsequent Docker container tests (which are heavy on
resources) if the linter job fails.
For now, disable all linters and simply run a `go fmt` check due to
older codebase. The intention is to enable linters one-by-one once the code
quality is manually cleaned up.
Signed-off-by: Christopher Obbard <christopher.obbard@linaro.org>
To ensure that we don't ship broken example recipes (as reported in some
previous bugs), we should build the example recipes and make sure they
build before pushing new container images to the registry.
Signed-off-by: Christopher Obbard <christopher.obbard@linaro.org>
parted will return an error code if the partition
table is not found, and will print the message:
"unrecognised disk label"
Signed-off-by: Julien Massot <julien.massot@collabora.com>
Since the introduction of sectorsize header,
the raw action have to handle sector size computation.
Add a test recipe, to cover this feature.
Signed-off-by: Julien Massot <julien.massot@collabora.com>
GitHub deprecated the v1 comands of compose in their images, so all jobs
needs to be migrated to v2 (eg. replace docker-compose with docker
compose). This will fix the unit test job.
See [1] for more details.
[1] https://github.com/orgs/community/discussions/116610
Signed-off-by: Nicolai Buchwitz <nb@tipi-net.de>
Convert Dockerfile so multiple target architecturebuilds are possible. Also
modify the CI pipeline, in order to built a single multi-platform container.
Note that at the current time-being docker cannot export multi-platform
containers without an intermediate registry. Thus only the amd64 image
is exported for the test stage. Nevertheless the arm64 image is built in
the pipeline and also published later to the registry.
Co-authored-by: Thomas Böhler <t.boehler@kunbus.com>
Signed-off-by: Nicolai Buchwitz <n.buchwitz@kunbus.com>
The qemu and uml backends are very slow doing arm build so just run it
on kvm builds; The testing on the other ones doesn't add so much value
especially now kvm capable runners are also available on github
Setting up the test fixtures takes quite some time, so merge the uuid5
tests into the templating tests. Also simplify it somewhat by just using
`test` rather then diff
Signed-off-by: Sjoerd Simons <sjoerd@collabora.com>
Add a test for partitioning an msdos label with more then 4 partitions.
The expectation is that the 4th partition will be an extended partition
in this case.
Renaming the escaping test to a general templating test and add tests
for a selection of functions from sprig-slim as well as the builtin
sector function
Signed-off-by: Sjoerd Simons <sjoerd@collabora.com>
Move to fakemachine 0.0.8. This requires dropping the test builds on
bullseeye as it bumps the minimal golang requirement.
Signed-off-by: Sjoerd Simons <sjoerd@collabora.com>
In go-debos/test-containers#30 we simplified the test containers by
only creating one container for both fakemachine/debos instead of creating
separate containers for each project. Use the new container.
Signed-off-by: Christopher Obbard <chris.obbard@collabora.com>
kvm is the recommended backend for fakemachine; Unfortunately github
hosted runners don't always support virtualization[0]. Luckily the debos
organisation now has a kvm supported self-hosted runner sponsored by
Collabora, so use that for kvm tests.
This also simplifies the matrix properties for jobs, moving their quirks
into expressions instead. Simple tests for building non-debian
distributions (arch, apertis) are now ran on kvm as well
0: The github-hosted runners are sometimes the documented intel xeon
based-instance type without virt support.. and sometimes amd epyc
with virt support.
Signed-off-by: Sjoerd Simons <sjoerd@collabora.com>
Setting up each required job by hand is annoying; So similar to what we
did with bors have one job that concludes the overall status. As opposed
to bors this *always* runs rather then only when everything is good, as
that allows github to trigger properly.
Signed-off-by: Sjoerd Simons <sjoerd@collabora.com>
377: Arch support - aka pacstrap, pacman and tests r=obbardc a=evelikov
This PR adds support for creating pacman based images (be that Arch or alike). Similar to the Debian variant we have two important actions - pacstrap and pacman.
- pacstrap, requires pacman.conf and mirrorlist files
- pacman is a simple list of packages, just like apt
This PR supersedes https://github.com/go-debos/debos/pull/276 and https://github.com/go-debos/debos/pull/277, where the most significant changes are within the pacstrap action. In particular, we no longer write the config/mirrorlist files.
Considering that pacman is changing faster than debos, it makes sense to have the files as drop-ins instead of trying to hard-code them within debos itself.
Note: the final commit adds a simple CI file, which is not wired. Tips on how to achieve that would be appreciated.
Co-authored-by: Emil Velikov <emil.velikov@collabora.com>
Co-authored-by: Arnaud Rebillout <arnaud.rebillout@collabora.com>
The --no-fakemachine tests currently fail when the test recipe
uses the apt actions with:
2022/12/07 15:22:25 apt clean | Failed to mount cgroup (type cgroup) on /tmp/unifiedANLvrW (MS_NOSUID|MS_NODEV|MS_NOEXEC "none,name=systemd,xattr"): Operation not permitted
For whatever reason the docker container hasn't figured out
the correct cgroup heirarchy from the GitHub actiosn
environment. Fix it by forcing unified cgroup heirarchy in
the container used for the tests.
Signed-off-by: Christopher Obbard <chris.obbard@collabora.com>
Nothing special here - a simple test.yaml akin to the existing ones.
The pacman.conf file is effectively vanilla config that comes with the
pacman package, while the mirrorlist file is a list of UK https mirrors
that I've been using for years.
Note that there is no canonical mirror for Arch. The top-level/tier 1
Arch server should _not_ be used as per the official recommendation.
Instead we use the mirrors set in the official arch docker tooling.
v2:
- Also install archlinux-keyring and makepkg
- Use arch + backend=qemu only testing matrix
v3:
- Use the same mirrors as the Arch docker images tooling
- Build and install pacman locally, until we get an official package
v4:
- Remove the local pacman build - it's available in backports
v5:
- Explicitly pull arch-install-scripts from backports, normal one lack
pacstrap
v6:
- Manually pull the latest keyring - Debian one is outdated
Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
We have issues with the CI workflow randomly failing
when users submit pull requests. It's not great to
block features added by users on these failures; let's
run the CI more frequently such that these issues are
caught earlier.
Signed-off-by: Christopher Obbard <chris.obbard@collabora.com>