Move Docker image building from Jenkins to GitLab CI
Instead of building all images individually, try and build Apertis-based
ones from the same common ground. First create a fairly basic Apertis
ospack with a few development tools in, then create a Docker image out of
it and layer things on top of it.
This unifies the previously separate overlays for the package builder and
the package source builder, only keeping the real differences in their
respective overlays.
We opt to not use Docker proper since it requires non-trivial
Docker-in-Docker setup. Makisu, which could be used as an alternative,
unfortunately, has buggy implementation of the ADD command, leaving us
the only option to use Kaniko.
The docker building step is templated in .gitlab-ci.yml to avoid
repetition. The Debian-based images don’t normally have to depend on the
rootfs building step, but to be able to run them asynchronously in the
same pipeline stage we need to declare the dependency anyway, as GitLab CI
does not currently support empty "needs" lists.
The branches named apertis/* build their respective Apertis releases,
everything else builds the default defined in the CI YAML file.
The jobs for apertis/* branches tag their build images as "latest", every
other job uses the branch name.
For robustness, the debos rootfs step uses a stable v2020 image builder
step instead of the currently built one.
Signed-off-by:
Andrej Shadura <andrew.shadura@collabora.co.uk>
Showing
- .gitlab-ci.yml 102 additions, 0 deletions.gitlab-ci.yml
- Jenkinsfile 0 additions, 88 deletionsJenkinsfile
- apertis-base/Dockerfile 53 additions, 0 deletionsapertis-base/Dockerfile
- apertis-base/apertis.yaml 0 additions, 1 deletionapertis-base/apertis.yaml
- apertis-base/keyring/apertis-archive-keyring.gpg 0 additions, 0 deletionsapertis-base/keyring/apertis-archive-keyring.gpg
- apertis-base/overlay/etc/apt/apt.conf.d/docker-autoremove-suggests 0 additions, 0 deletions...ase/overlay/etc/apt/apt.conf.d/docker-autoremove-suggests
- apertis-base/overlay/etc/apt/apt.conf.d/docker-clean 0 additions, 0 deletionsapertis-base/overlay/etc/apt/apt.conf.d/docker-clean
- apertis-base/overlay/etc/apt/apt.conf.d/docker-gzip-indexes 0 additions, 0 deletionsapertis-base/overlay/etc/apt/apt.conf.d/docker-gzip-indexes
- apertis-base/overlay/etc/apt/apt.conf.d/docker-no-languages 0 additions, 0 deletionsapertis-base/overlay/etc/apt/apt.conf.d/docker-no-languages
- apertis-base/overlay/etc/dpkg/dpkg.cfg.d/docker 0 additions, 0 deletionsapertis-base/overlay/etc/dpkg/dpkg.cfg.d/docker
- apertis-base/overlay/etc/dpkg/dpkg.cfg.d/docker-apt-speedup 0 additions, 0 deletionsapertis-base/overlay/etc/dpkg/dpkg.cfg.d/docker-apt-speedup
- apertis-base/scripts/apt_source.sh 0 additions, 0 deletionsapertis-base/scripts/apt_source.sh
- apertis-base/scripts/replace-gplv2-packages-for-dev-env.sh 0 additions, 0 deletionsapertis-base/scripts/replace-gplv2-packages-for-dev-env.sh
- apertis-base/scripts/setup_image_version.chroot 0 additions, 0 deletionsapertis-base/scripts/setup_image_version.chroot
- apertis-package-builder/Dockerfile 3 additions, 19 deletionsapertis-package-builder/Dockerfile
- apertis-package-builder/apertis.yaml 0 additions, 43 deletionsapertis-package-builder/apertis.yaml
- apertis-package-builder/overlay/usr/bin/ci-buildpackage 102 additions, 0 deletionsapertis-package-builder/overlay/usr/bin/ci-buildpackage
- apertis-package-builder/overlay/usr/bin/ci-entrypoint 13 additions, 0 deletionsapertis-package-builder/overlay/usr/bin/ci-entrypoint
- apertis-package-source-builder/Dockerfile 4 additions, 27 deletionsapertis-package-source-builder/Dockerfile
- apertis-package-source-builder/keyring/apertis-archive-keyring.gpg 0 additions, 0 deletions...ackage-source-builder/keyring/apertis-archive-keyring.gpg
Loading
Please register or sign in to comment