diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 1fa5906e438a73c8223b2130dbc9342ccef85948..b3a3d2dcadd11a7f9b3cad9c5b8345c7733327d8 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -7,11 +7,9 @@ stages: - publish images variables: - RELEASE_BASE: "bookworm" - DISTRO_BASE: debian - MIRROR: https://deb.debian.org/debian/ RELEASE: "v2024dev2" DISTRO: apertis + MIRROR: https://repositories.apertis.org/apertis/ STABLE: auto TEST_TAG: test-${CI_PIPELINE_ID} @@ -62,7 +60,7 @@ build-base-rootfs: script: - > cd base && - debos -t osname:${DISTRO_BASE} -t suite:${RELEASE_BASE} -t stable:$STABLE -t mirror:"$MIRROR" rootfs.yaml + debos -t osname:${DISTRO} -t suite:${RELEASE} -t stable:$STABLE -t mirror:"$MIRROR" rootfs.yaml .build-docker-image: image: @@ -163,6 +161,87 @@ test-package-source-builder: - test "$(dpkg-parsechangelog -SDistribution)" = UNRELEASED - cd .. +build-documentation-builder-docker-image: + extends: .build-docker-image + stage: derived images + variables: + image: documentation-builder + +build-image-builder-docker-image: + extends: .build-docker-image + stage: derived images + variables: + image: image-builder + +build-testcases-builder-docker-image: + extends: .build-docker-image + stage: derived images + variables: + image: testcases-builder + +build-flatdeb-builder-docker-image: + extends: .build-docker-image + stage: derived images + variables: + image: flatdeb-builder + +build-ostree-receive-image: + extends: .build-docker-image + stage: derived images + variables: + image: ostree-receive + +build-toolbox-image: + extends: .build-docker-image + stage: toolbox images + variables: + image: toolbox + +test-image-builder-shared-runner-default: + stage: image test + needs: + - build-image-builder-docker-image + image: + name: $CI_REGISTRY_IMAGE/${RELEASE}-image-builder:${TEST_TAG} + entrypoint: [ "" ] + variables: + DEBOS_ARGS: -t required_backend:kvm + before_script: + - ": Test that KVM is being picked up by default" + script: + - debos --verbose --show-boot -t osname:${DISTRO} -t suite:${RELEASE} -t mirror:"${MIRROR}" ${DEBOS_ARGS} image-builder/test-recipe.yaml + +test-image-builder-shared-runner-uml: + extends: test-image-builder-shared-runner-default + variables: + DEBOS_ARGS: --fakemachine-backend=uml -t required_backend:uml + before_script: + - ": Test that UML is still available for backward-compatibility" + +test-image-builder-kvm-runner: + extends: test-image-builder-shared-runner-default + tags: + - kvm + variables: + DEBOS_ARGS: -t required_backend:kvm + before_script: + - ": Test that KVM is available on the old KVM runner to be dismissed" + +test-flatdeb-builder: + stage: image test + needs: + - build-flatdeb-builder-docker-image + image: + name: $CI_REGISTRY_IMAGE/${RELEASE}-flatdeb-builder:${TEST_TAG} + entrypoint: [ "" ] + script: + - cd flatdeb-builder/ + - cat suites/default.yaml.tpl | sed + -e "s|%MIRROR%|${MIRROR}|g" + -e "s|%DISTRO%|${DISTRO}|g" + | tee "suites/${RELEASE}.yaml" + - /opt/apertis-flatdeb/run.py --build-area=$(pwd)/flatdeb-builddir --ostree-repo=$(pwd)/flatdeb-builddir/ostree-repo --suite=${RELEASE} --arch=amd64 base + publish-base-docker-image: extends: .publish-docker-image stage: publish images @@ -174,3 +253,39 @@ publish-package-source-builder-docker-image: stage: publish images variables: image: package-source-builder + +publish-documentation-builder-docker-image: + extends: .publish-docker-image + stage: publish images + variables: + image: documentation-builder + +publish-testcases-builder-docker-image: + extends: .publish-docker-image + stage: publish images + variables: + image: testcases-builder + +publish-image-builder-docker-image: + extends: .publish-docker-image + stage: publish images + variables: + image: image-builder + +publish-flatdeb-builder-docker-image: + extends: .publish-docker-image + stage: publish images + variables: + image: flatdeb-builder + +publish-ostree-receive-docker-image: + extends: .publish-docker-image + stage: publish images + variables: + image: ostree-receive + +publish-toolbox-image: + extends: .publish-docker-image + stage: publish images + variables: + image: toolbox diff --git a/base/Dockerfile b/base/Dockerfile index eaab95f0101f6f1a1cc36d7698f2cf1476f4a7ea..a5ac53e1544ce4de047e9c10e861b48407508246 100644 --- a/base/Dockerfile +++ b/base/Dockerfile @@ -18,7 +18,7 @@ FROM scratch -ARG OSNAME=debian +ARG OSNAME=apertis LABEL description="$OSNAME base image" ENV LANG=C.UTF-8 @@ -30,7 +30,4 @@ ARG OSPACK=rootfs.tar.gz ADD ${OSPACK} / # Always install procps in case the docker file gets used in jenkins -RUN apt-get update && apt-get install --no-install-recommends -y procps debian-archive-keyring - -RUN mkdir -p /etc/apt/trusted.gpg.d/ -COPY keyring/apertis-archive-keyring.gpg /etc/apt/trusted.gpg.d/ \ No newline at end of file +RUN apt-get update && apt-get install --no-install-recommends -y procps diff --git a/base/keyring/debian-archive-keyring.gpg b/base/keyring/debian-archive-keyring.gpg deleted file mode 100644 index e897ec52fbeb9379db9157389acc356ccda416d4..0000000000000000000000000000000000000000 Binary files a/base/keyring/debian-archive-keyring.gpg and /dev/null differ diff --git a/base/rootfs.yaml b/base/rootfs.yaml index d24f8c82fdc0c7d1f4d7d6bea9af297ead098cba..cbbdb6d0c115bd2c0186a052219f3341094d25ec 100644 --- a/base/rootfs.yaml +++ b/base/rootfs.yaml @@ -1,10 +1,10 @@ {{- $architecture := or .architecture "amd64" }} -{{- $mirror := or .mirror "https://deb.debian.org/debian/" -}} -{{- $suite := or .suite "bookworm" -}} +{{- $mirror := or .mirror "https://repositories.apertis.org/apertis/" -}} +{{- $suite := or .suite "v2022dev2" -}} {{- $ospack := or .ospack "rootfs.tar.gz" -}} {{- $timestamp := or .timestamp "00000000.0" -}} {{- $stable := or .stable "" -}} -{{- $osname := or .osname "debian" -}} +{{- $osname := or .osname "apertis" -}} architecture: {{ $architecture }} @@ -12,7 +12,7 @@ actions: - action: debootstrap suite: {{ $suite }} components: - - main + - target mirror: {{ $mirror }} variant: minbase keyring-package: {{ $osname }}-archive-keyring @@ -22,6 +22,15 @@ actions: - action: overlay source: overlay + - action: run + description: "Add extra apt sources" + chroot: true + script: scripts/apt_source.sh -m {{ $mirror }} -r {{ $suite }} --sources {{if eq $stable "true"}} --updates --security {{end}} target hmi development sdk + + - action: run + chroot: true + script: scripts/replace-gplv2-packages-for-dev-env.sh + - action: run description: "Setting up image version metadata" chroot: true diff --git a/image-builder/Dockerfile b/image-builder/Dockerfile index d815888d02c67b18b148c48e8487d1d73b14f2c5..941892b23e3c1c4565707c38e1aa4c87367ad608 100644 --- a/image-builder/Dockerfile +++ b/image-builder/Dockerfile @@ -68,6 +68,11 @@ RUN apt-get update && \ RUN apt-get update && \ apt-get install --no-install-recommends -y libnss-unknown +# Install the LAVA submission tool +RUN git clone https://gitlab.apertis.org/infrastructure/lava-phab-bridge /tmp/lava-phab-bridge && \ + install -m755 /tmp/lava-phab-bridge/lava-submit.py /usr/bin/lava-submit && \ + rm -rf /tmp/lava-phab-bridge + # Allow to connect to unknown hosts for non-interactive ssh # NB: possible security issue RUN echo " StrictHostKeyChecking no" >> /etc/ssh/ssh_config diff --git a/image-builder/keyring/debian-archive-keyring.gpg b/image-builder/keyring/debian-archive-keyring.gpg deleted file mode 100644 index e897ec52fbeb9379db9157389acc356ccda416d4..0000000000000000000000000000000000000000 Binary files a/image-builder/keyring/debian-archive-keyring.gpg and /dev/null differ diff --git a/image-builder/test-recipe.yaml b/image-builder/test-recipe.yaml index cd4de39a7f8332754986223a08ba4c30eecf5a80..9f6f9cab25a61e1b9a55bd6c96223c86577ad771 100644 --- a/image-builder/test-recipe.yaml +++ b/image-builder/test-recipe.yaml @@ -25,9 +25,9 @@ actions: - action: debootstrap suite: {{ $suite }} components: - - main + - target mirror: {{ $mirror }} variant: minbase - keyring-package: debian-archive-keyring - keyring-file: keyring/debian-archive-keyring.gpg + keyring-package: {{ $osname }}-archive-keyring + keyring-file: keyring/{{ $osname }}-archive-keyring.gpg merged-usr: true diff --git a/package-source-builder/Dockerfile b/package-source-builder/Dockerfile index a370a55908721a09b3cc0422f806ec0db8b09b5e..d476a3f63f31978a37edf04eba85dc6af341073b 100644 --- a/package-source-builder/Dockerfile +++ b/package-source-builder/Dockerfile @@ -28,8 +28,6 @@ ARG DEBIAN_FRONTEND=noninteractive ADD overlay/ / -RUN echo "deb https://repositories.apertis.org/apertis v2024dev1 target development" >> /etc/apt/sources.list - # gpgv is needed to replace sequoia-gpgv and be able to install gnupg packages RUN apt-get update && apt-get install -y gpgv