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>
Running the docker container build in the copilot coding agent
environment need some workarounds. Document this in more detail for
copilot, while also emphasizing it should always run integration tests
before committing changes.
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>