Commit Graph

8 Commits (7946b8c0844398790b3dab541291e5a6052f78e7)

Author SHA1 Message Date
Dustin 825e1c17b1 ci: Mount ephemeral volume for container storage
Aimee OS/container-images/pipeline/head There was a failure building this commit Details
Without a specific volume mount, the Buildah working container will be
stored in the Jenkins pod container filesystem.  This not only affects
performance, but limits the size of the working container filesystem and
the final image, as the worker nodes do not have very much space for
container filesystems.  Thus, we need to mount an ephemeral Longhorn
volume in the job pod to provide more space to Buildah.

Using a read-only root filesystem helps ensure that no temporary data
get written to container storage.  This of course breaks the work-around
we had in place for overriding the broken default `storage.conf` in the
_buildah_ image, so we mount a _tmpfs_ filesystem at `/home/build` as a
different work-around.
2024-12-21 15:09:07 -06:00
Dustin 359e5f3c3b split-repo: Populate cross branch
In order to create multiple Jenkins build pipelines for this repository,
I'm splitting it up with branches.  There will be a branch for each
image:

* base/main: The base image
* cross/main: The image with a cross-compiler toolchain
* build/main: The final build image

Note _/main_ in each name.  The intent here is to be able to have
different "sub-branches" for each image, so e.g. there might be a
_base/dev_.

In addition to the branches for each image, there will be branches for
the shared library code as well, named like _lib/main_.  The image
branches will checkout this branch using `git worktree`.
2024-12-21 15:09:07 -06:00
Dustin 9377c9423c ci: Fix file ownership before archiving
Several log files in `/var/log` are owned by users other than root.
From outside the user namespace, these files are inaccessible to the
unprivileged user, so we need to change their ownership before we can
archive them.
2024-12-14 14:17:33 -06:00
Dustin d79bf8526e ci: Archive logs from /var/log too
When `crossdev` fails, we need to read the logs it put in `/var/log`.
2024-12-14 14:17:33 -06:00
Dustin b7fdaa93ac ci: Set resource requests/limits
Aimee OS/container-images/pipeline/head There was a failure building this commit Details
Use the whole node to prevent interference from other processes causing
e.g. OOM conditions.
2024-12-14 11:25:20 -06:00
Dustin 19068af38c ci: Push: Publish all images
Aimee OS/container-images/pipeline/head This commit looks good Details
The _build/cross-{target}_ image only includes the crossdev toolchain.
What we really need is the _build/build-{target}_ image, which contains
all the tools necessary to build an Aimee OS project.
2024-12-09 08:59:32 -06:00
Dustin 20916b48c6 ci: Persist build logs
Aimee OS/container-images/pipeline/head This commit looks good Details
2024-12-08 10:59:30 -06:00
Dustin 15fbb180d0 ci: Begin Jenkins build pipeline 2024-12-08 10:59:30 -06:00