[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[xen staging] CI: Formalise the use of heredocs



commit aa2b6e4d8447a3bb4a538bbae430d00efb77cd8e
Author:     Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
AuthorDate: Tue Jul 2 14:34:36 2024 +0100
Commit:     Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
CommitDate: Thu Jul 4 19:07:32 2024 +0100

    CI: Formalise the use of heredocs
    
    Commit b5739330d7f4 introduced the use of heredocs in the jessie/stretch
    dockerfiles.
    
    It turns out this was introduced by BuildKit in 2018 along with a
    standardisation of Dockerfile syntax, and has subsequently been adopted by 
the
    docker community.
    
    Annotate all dockerfiles with a statement of the syntax in use, and extend
    README.md details including how to activate BuildKit when it's available but
    off by default.
    
    This allows the containers to be rebuilt following commit a0e29b316363 ("CI:
    Drop glibc-i386 from the build containers").
    
    Fixes: b5739330d7f4 ("automation: fix jessie/stretch images to use 
archive.debian.org apt repos")
    Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
    Reviewed-by: Roger Pau Monné <roger.pau@xxxxxxxxxx>
    Release-Acked-by: Oleksii Kurochko <oleksii.kurochko@xxxxxxxxx>
---
 automation/build/README.md                                     | 10 +++++++++-
 automation/build/alpine/3.18-arm64v8.dockerfile                |  1 +
 automation/build/alpine/3.18.dockerfile                        |  1 +
 automation/build/archlinux/current-riscv64.dockerfile          |  1 +
 automation/build/archlinux/current.dockerfile                  |  1 +
 automation/build/centos/7.dockerfile                           |  1 +
 automation/build/debian/bookworm-arm64v8-arm32-gcc.dockerfile  |  1 +
 automation/build/debian/bookworm-arm64v8.dockerfile            |  1 +
 automation/build/debian/bookworm-cppcheck.dockerfile           |  1 +
 automation/build/debian/bookworm-i386.dockerfile               |  1 +
 automation/build/debian/bookworm.dockerfile                    |  1 +
 automation/build/debian/bullseye-ppc64le.dockerfile            |  1 +
 automation/build/debian/buster-gcc-ibt.dockerfile              |  1 +
 automation/build/debian/jessie-i386.dockerfile                 |  1 +
 automation/build/debian/jessie.dockerfile                      |  1 +
 automation/build/debian/stretch-i386.dockerfile                |  1 +
 automation/build/debian/stretch.dockerfile                     |  1 +
 automation/build/fedora/29.dockerfile                          |  1 +
 automation/build/suse/opensuse-leap.dockerfile                 |  1 +
 automation/build/suse/opensuse-tumbleweed.dockerfile           |  1 +
 automation/build/ubuntu/bionic.dockerfile                      |  1 +
 automation/build/ubuntu/focal.dockerfile                       |  1 +
 automation/build/ubuntu/trusty.dockerfile                      |  1 +
 automation/build/ubuntu/xenial-xilinx.dockerfile               |  1 +
 automation/build/ubuntu/xenial.dockerfile                      |  1 +
 automation/build/yocto/yocto.dockerfile.in                     |  2 ++
 automation/tests-artifacts/alpine/3.18-arm64v8.dockerfile      |  1 +
 automation/tests-artifacts/alpine/3.18.dockerfile              |  1 +
 automation/tests-artifacts/kernel/5.19-arm64v8.dockerfile      |  1 +
 automation/tests-artifacts/kernel/6.1.19.dockerfile            |  1 +
 .../qemu-system-aarch64/6.0.0-arm64v8.dockerfile               |  1 +
 .../tests-artifacts/qemu-system-ppc64/8.1.0-ppc64.dockerfile   |  1 +
 32 files changed, 41 insertions(+), 1 deletion(-)

diff --git a/automation/build/README.md b/automation/build/README.md
index 1c040533fd..12a2b4af18 100644
--- a/automation/build/README.md
+++ b/automation/build/README.md
@@ -81,7 +81,14 @@ Building a container
 
 There is a makefile to make this process easier. You should be
 able to run `make DISTRO/VERSION` to have Docker build the container
-for you. If you define the `PUSH` environment variable when running the
+for you.
+
+Xen's dockerfiles use heredocs, which depend on the standardised dockerfile
+syntax introduced by [BuiltKit].  This should work by default starting with
+docker 23.0, or podman/buildah v1.33.  For older versions of docker, it can be
+activated with `DOCKER_BUILDKIT=1` in the environment.
+
+If you define the `PUSH` environment variable when running the
 former `make` command, it will push the container to the [registry] if
 you have access to do so and have your Docker logged into the registry.
 
@@ -101,6 +108,7 @@ env CONTAINER_NO_PULL=1 \
 make -C automation/build suse/opensuse-tumbleweed PUSH=1
 ```
 
+[BuildKit]: https://docs.docker.com/build/buildkit/
 [registry]: https://gitlab.com/xen-project/xen/container_registry
 [registry help]: https://gitlab.com/help/user/project/container_registry
 
diff --git a/automation/build/alpine/3.18-arm64v8.dockerfile 
b/automation/build/alpine/3.18-arm64v8.dockerfile
index 91e9022024..19fe46f841 100644
--- a/automation/build/alpine/3.18-arm64v8.dockerfile
+++ b/automation/build/alpine/3.18-arm64v8.dockerfile
@@ -1,3 +1,4 @@
+# syntax=docker/dockerfile:1
 FROM --platform=linux/arm64/v8 alpine:3.18
 LABEL maintainer.name="The Xen Project" \
       maintainer.email="xen-devel@xxxxxxxxxxxxxxxxxxxx"
diff --git a/automation/build/alpine/3.18.dockerfile 
b/automation/build/alpine/3.18.dockerfile
index 8d5dac05b0..263e9e90d8 100644
--- a/automation/build/alpine/3.18.dockerfile
+++ b/automation/build/alpine/3.18.dockerfile
@@ -1,3 +1,4 @@
+# syntax=docker/dockerfile:1
 FROM --platform=linux/amd64 alpine:3.18
 LABEL maintainer.name="The Xen Project" \
       maintainer.email="xen-devel@xxxxxxxxxxxxxxxxxxxx"
diff --git a/automation/build/archlinux/current-riscv64.dockerfile 
b/automation/build/archlinux/current-riscv64.dockerfile
index af75b5c720..f7770bf82a 100644
--- a/automation/build/archlinux/current-riscv64.dockerfile
+++ b/automation/build/archlinux/current-riscv64.dockerfile
@@ -1,3 +1,4 @@
+# syntax=docker/dockerfile:1
 FROM --platform=linux/amd64 archlinux
 LABEL maintainer.name="The Xen Project" \
       maintainer.email="xen-devel@xxxxxxxxxxxxxxxxxxxx"
diff --git a/automation/build/archlinux/current.dockerfile 
b/automation/build/archlinux/current.dockerfile
index d29f1358c2..8929e9b5f0 100644
--- a/automation/build/archlinux/current.dockerfile
+++ b/automation/build/archlinux/current.dockerfile
@@ -1,3 +1,4 @@
+# syntax=docker/dockerfile:1
 FROM --platform=linux/amd64 archlinux:base-devel
 LABEL maintainer.name="The Xen Project" \
       maintainer.email="xen-devel@xxxxxxxxxxxxxxxxxxxx"
diff --git a/automation/build/centos/7.dockerfile 
b/automation/build/centos/7.dockerfile
index 1cdc16fc05..657550f308 100644
--- a/automation/build/centos/7.dockerfile
+++ b/automation/build/centos/7.dockerfile
@@ -1,3 +1,4 @@
+# syntax=docker/dockerfile:1
 FROM --platform=linux/amd64 centos:7
 LABEL maintainer.name="The Xen Project" \
       maintainer.email="xen-devel@xxxxxxxxxxxxxxxxxxxx"
diff --git a/automation/build/debian/bookworm-arm64v8-arm32-gcc.dockerfile 
b/automation/build/debian/bookworm-arm64v8-arm32-gcc.dockerfile
index a05ffeac04..95b3f04283 100644
--- a/automation/build/debian/bookworm-arm64v8-arm32-gcc.dockerfile
+++ b/automation/build/debian/bookworm-arm64v8-arm32-gcc.dockerfile
@@ -1,3 +1,4 @@
+# syntax=docker/dockerfile:1
 FROM --platform=linux/arm64/v8 debian:bookworm
 LABEL maintainer.name="The Xen Project" \
       maintainer.email="xen-devel@xxxxxxxxxxxxxxxxxxxx"
diff --git a/automation/build/debian/bookworm-arm64v8.dockerfile 
b/automation/build/debian/bookworm-arm64v8.dockerfile
index 2c432aacb7..3ab426a082 100644
--- a/automation/build/debian/bookworm-arm64v8.dockerfile
+++ b/automation/build/debian/bookworm-arm64v8.dockerfile
@@ -1,3 +1,4 @@
+# syntax=docker/dockerfile:1
 FROM --platform=linux/arm64/v8 debian:bookworm
 LABEL maintainer.name="The Xen Project" \
       maintainer.email="xen-devel@xxxxxxxxxxxxxxxxxxxx"
diff --git a/automation/build/debian/bookworm-cppcheck.dockerfile 
b/automation/build/debian/bookworm-cppcheck.dockerfile
index 633268376d..fe4cd4a1aa 100644
--- a/automation/build/debian/bookworm-cppcheck.dockerfile
+++ b/automation/build/debian/bookworm-cppcheck.dockerfile
@@ -1,3 +1,4 @@
+# syntax=docker/dockerfile:1
 FROM --platform=linux/arm64/v8 debian:bookworm AS builder
 
 ENV DEBIAN_FRONTEND=noninteractive
diff --git a/automation/build/debian/bookworm-i386.dockerfile 
b/automation/build/debian/bookworm-i386.dockerfile
index 89a6503385..9a54bd7293 100644
--- a/automation/build/debian/bookworm-i386.dockerfile
+++ b/automation/build/debian/bookworm-i386.dockerfile
@@ -1,3 +1,4 @@
+# syntax=docker/dockerfile:1
 FROM --platform=linux/i386 debian:bookworm
 LABEL maintainer.name="The Xen Project" \
       maintainer.email="xen-devel@xxxxxxxxxxxxxxxxxxxx"
diff --git a/automation/build/debian/bookworm.dockerfile 
b/automation/build/debian/bookworm.dockerfile
index d893218fc4..bef44dd753 100644
--- a/automation/build/debian/bookworm.dockerfile
+++ b/automation/build/debian/bookworm.dockerfile
@@ -1,3 +1,4 @@
+# syntax=docker/dockerfile:1
 FROM --platform=linux/amd64 debian:bookworm
 LABEL maintainer.name="The Xen Project" \
       maintainer.email="xen-devel@xxxxxxxxxxxxxxxxxxxx"
diff --git a/automation/build/debian/bullseye-ppc64le.dockerfile 
b/automation/build/debian/bullseye-ppc64le.dockerfile
index 6fdfb6bc2b..e166d205f3 100644
--- a/automation/build/debian/bullseye-ppc64le.dockerfile
+++ b/automation/build/debian/bullseye-ppc64le.dockerfile
@@ -1,3 +1,4 @@
+# syntax=docker/dockerfile:1
 FROM --platform=linux/amd64 debian:bullseye-slim
 LABEL maintainer.name="The Xen Project" \
       maintainer.email="xen-devel@xxxxxxxxxxxxxxxxxxxx"
diff --git a/automation/build/debian/buster-gcc-ibt.dockerfile 
b/automation/build/debian/buster-gcc-ibt.dockerfile
index 6a3e50ef6b..ed9367aafb 100644
--- a/automation/build/debian/buster-gcc-ibt.dockerfile
+++ b/automation/build/debian/buster-gcc-ibt.dockerfile
@@ -1,3 +1,4 @@
+# syntax=docker/dockerfile:1
 FROM --platform=linux/amd64 debian:buster-slim AS builder
 
 ENV DEBIAN_FRONTEND=noninteractive
diff --git a/automation/build/debian/jessie-i386.dockerfile 
b/automation/build/debian/jessie-i386.dockerfile
index a8dec82bb2..f6eaa94ee5 100644
--- a/automation/build/debian/jessie-i386.dockerfile
+++ b/automation/build/debian/jessie-i386.dockerfile
@@ -1,3 +1,4 @@
+# syntax=docker/dockerfile:1
 FROM --platform=linux/i386 debian/eol:jessie
 LABEL maintainer.name="The Xen Project" \
       maintainer.email="xen-devel@xxxxxxxxxxxxxxxxxxxx"
diff --git a/automation/build/debian/jessie.dockerfile 
b/automation/build/debian/jessie.dockerfile
index 308675cac1..a870e743fc 100644
--- a/automation/build/debian/jessie.dockerfile
+++ b/automation/build/debian/jessie.dockerfile
@@ -1,3 +1,4 @@
+# syntax=docker/dockerfile:1
 FROM --platform=linux/amd64 debian/eol:jessie
 LABEL maintainer.name="The Xen Project" \
       maintainer.email="xen-devel@xxxxxxxxxxxxxxxxxxxx"
diff --git a/automation/build/debian/stretch-i386.dockerfile 
b/automation/build/debian/stretch-i386.dockerfile
index da93fed8ea..ad8db692aa 100644
--- a/automation/build/debian/stretch-i386.dockerfile
+++ b/automation/build/debian/stretch-i386.dockerfile
@@ -1,3 +1,4 @@
+# syntax=docker/dockerfile:1
 FROM --platform=linux/i386 debian:stretch
 LABEL maintainer.name="The Xen Project" \
       maintainer.email="xen-devel@xxxxxxxxxxxxxxxxxxxx"
diff --git a/automation/build/debian/stretch.dockerfile 
b/automation/build/debian/stretch.dockerfile
index 59794ed467..4dfd40b542 100644
--- a/automation/build/debian/stretch.dockerfile
+++ b/automation/build/debian/stretch.dockerfile
@@ -1,3 +1,4 @@
+# syntax=docker/dockerfile:1
 FROM --platform=linux/amd64 debian:stretch
 LABEL maintainer.name="The Xen Project" \
       maintainer.email="xen-devel@xxxxxxxxxxxxxxxxxxxx"
diff --git a/automation/build/fedora/29.dockerfile 
b/automation/build/fedora/29.dockerfile
index f473ae13e7..08edf70838 100644
--- a/automation/build/fedora/29.dockerfile
+++ b/automation/build/fedora/29.dockerfile
@@ -1,3 +1,4 @@
+# syntax=docker/dockerfile:1
 FROM --platform=linux/amd64 fedora:29
 LABEL maintainer.name="The Xen Project" \
       maintainer.email="xen-devel@xxxxxxxxxxxxxxxxxxxx"
diff --git a/automation/build/suse/opensuse-leap.dockerfile 
b/automation/build/suse/opensuse-leap.dockerfile
index 3ef33458a0..28d3338812 100644
--- a/automation/build/suse/opensuse-leap.dockerfile
+++ b/automation/build/suse/opensuse-leap.dockerfile
@@ -1,3 +1,4 @@
+# syntax=docker/dockerfile:1
 FROM --platform=linux/amd64 opensuse/leap
 LABEL maintainer.name="The Xen Project" \
       maintainer.email="xen-devel@xxxxxxxxxxxxxxxxxxxx"
diff --git a/automation/build/suse/opensuse-tumbleweed.dockerfile 
b/automation/build/suse/opensuse-tumbleweed.dockerfile
index a793601c87..077fed2226 100644
--- a/automation/build/suse/opensuse-tumbleweed.dockerfile
+++ b/automation/build/suse/opensuse-tumbleweed.dockerfile
@@ -1,3 +1,4 @@
+# syntax=docker/dockerfile:1
 FROM --platform=linux/amd64 opensuse/tumbleweed
 LABEL maintainer.name="The Xen Project" \
       maintainer.email="xen-devel@xxxxxxxxxxxxxxxxxxxx"
diff --git a/automation/build/ubuntu/bionic.dockerfile 
b/automation/build/ubuntu/bionic.dockerfile
index 910d3c4b53..cc43fc4ade 100644
--- a/automation/build/ubuntu/bionic.dockerfile
+++ b/automation/build/ubuntu/bionic.dockerfile
@@ -1,3 +1,4 @@
+# syntax=docker/dockerfile:1
 FROM --platform=linux/amd64 ubuntu:18.04
 LABEL maintainer.name="The Xen Project " \
       maintainer.email="xen-devel@xxxxxxxxxxxxxxxxxxxx"
diff --git a/automation/build/ubuntu/focal.dockerfile 
b/automation/build/ubuntu/focal.dockerfile
index 078abd56d5..cb8bb2f6fa 100644
--- a/automation/build/ubuntu/focal.dockerfile
+++ b/automation/build/ubuntu/focal.dockerfile
@@ -1,3 +1,4 @@
+# syntax=docker/dockerfile:1
 FROM --platform=linux/amd64 ubuntu:20.04
 LABEL maintainer.name="The Xen Project " \
       maintainer.email="xen-devel@xxxxxxxxxxxxxxxxxxxx"
diff --git a/automation/build/ubuntu/trusty.dockerfile 
b/automation/build/ubuntu/trusty.dockerfile
index 8bd8c085a7..e2a1bda7c3 100644
--- a/automation/build/ubuntu/trusty.dockerfile
+++ b/automation/build/ubuntu/trusty.dockerfile
@@ -1,3 +1,4 @@
+# syntax=docker/dockerfile:1
 FROM --platform=linux/amd64 ubuntu:14.04
 LABEL maintainer.name="The Xen Project" \
       maintainer.email="xen-devel@xxxxxxxxxxxxxxxxxxxx"
diff --git a/automation/build/ubuntu/xenial-xilinx.dockerfile 
b/automation/build/ubuntu/xenial-xilinx.dockerfile
index 49f27b3229..f03d62e8bd 100644
--- a/automation/build/ubuntu/xenial-xilinx.dockerfile
+++ b/automation/build/ubuntu/xenial-xilinx.dockerfile
@@ -1,3 +1,4 @@
+# syntax=docker/dockerfile:1
 FROM --platform=linux/amd64 ubuntu:16.04
 LABEL maintainer.name="The Xen Project " \
       maintainer.email="xen-devel@xxxxxxxxxxxxxxxxxxxx"
diff --git a/automation/build/ubuntu/xenial.dockerfile 
b/automation/build/ubuntu/xenial.dockerfile
index f6296d3292..168bc70ffa 100644
--- a/automation/build/ubuntu/xenial.dockerfile
+++ b/automation/build/ubuntu/xenial.dockerfile
@@ -1,3 +1,4 @@
+# syntax=docker/dockerfile:1
 FROM --platform=linux/amd64 ubuntu:16.04
 LABEL maintainer.name="The Xen Project " \
       maintainer.email="xen-devel@xxxxxxxxxxxxxxxxxxxx"
diff --git a/automation/build/yocto/yocto.dockerfile.in 
b/automation/build/yocto/yocto.dockerfile.in
index b0892d4203..fbaa4e191c 100644
--- a/automation/build/yocto/yocto.dockerfile.in
+++ b/automation/build/yocto/yocto.dockerfile.in
@@ -1,3 +1,5 @@
+# syntax=docker/dockerfile:1
+
 # Docker file to create an environment to build yocto with virtualization
 #
 # Arguments that can be passed during image creation using --build-arg:
diff --git a/automation/tests-artifacts/alpine/3.18-arm64v8.dockerfile 
b/automation/tests-artifacts/alpine/3.18-arm64v8.dockerfile
index 0e5ae7f2b4..a4542f7039 100644
--- a/automation/tests-artifacts/alpine/3.18-arm64v8.dockerfile
+++ b/automation/tests-artifacts/alpine/3.18-arm64v8.dockerfile
@@ -1,3 +1,4 @@
+# syntax=docker/dockerfile:1
 FROM --platform=linux/arm64/v8 alpine:3.18
 LABEL maintainer.name="The Xen Project" \
       maintainer.email="xen-devel@xxxxxxxxxxxxxxxxxxxx"
diff --git a/automation/tests-artifacts/alpine/3.18.dockerfile 
b/automation/tests-artifacts/alpine/3.18.dockerfile
index 9cde6c9ad4..311a92889b 100644
--- a/automation/tests-artifacts/alpine/3.18.dockerfile
+++ b/automation/tests-artifacts/alpine/3.18.dockerfile
@@ -1,3 +1,4 @@
+# syntax=docker/dockerfile:1
 FROM --platform=linux/amd64 alpine:3.18
 LABEL maintainer.name="The Xen Project" \
       maintainer.email="xen-devel@xxxxxxxxxxxxxxxxxxxx"
diff --git a/automation/tests-artifacts/kernel/5.19-arm64v8.dockerfile 
b/automation/tests-artifacts/kernel/5.19-arm64v8.dockerfile
index b0875ca0dd..22359c9066 100644
--- a/automation/tests-artifacts/kernel/5.19-arm64v8.dockerfile
+++ b/automation/tests-artifacts/kernel/5.19-arm64v8.dockerfile
@@ -1,3 +1,4 @@
+# syntax=docker/dockerfile:1
 FROM --platform=linux/arm64/v8 debian:bookworm
 LABEL maintainer.name="The Xen Project" \
       maintainer.email="xen-devel@xxxxxxxxxxxxxxxxxxxx"
diff --git a/automation/tests-artifacts/kernel/6.1.19.dockerfile 
b/automation/tests-artifacts/kernel/6.1.19.dockerfile
index 021bde26c7..5cf53d290c 100644
--- a/automation/tests-artifacts/kernel/6.1.19.dockerfile
+++ b/automation/tests-artifacts/kernel/6.1.19.dockerfile
@@ -1,3 +1,4 @@
+# syntax=docker/dockerfile:1
 FROM --platform=linux/amd64 debian:bookworm
 LABEL maintainer.name="The Xen Project" \
       maintainer.email="xen-devel@xxxxxxxxxxxxxxxxxxxx"
diff --git 
a/automation/tests-artifacts/qemu-system-aarch64/6.0.0-arm64v8.dockerfile 
b/automation/tests-artifacts/qemu-system-aarch64/6.0.0-arm64v8.dockerfile
index fb7b7b506e..e9f5576be7 100644
--- a/automation/tests-artifacts/qemu-system-aarch64/6.0.0-arm64v8.dockerfile
+++ b/automation/tests-artifacts/qemu-system-aarch64/6.0.0-arm64v8.dockerfile
@@ -1,3 +1,4 @@
+# syntax=docker/dockerfile:1
 FROM --platform=linux/arm64/v8 debian:bookworm
 LABEL maintainer.name="The Xen Project" \
       maintainer.email="xen-devel@xxxxxxxxxxxxxxxxxxxx"
diff --git 
a/automation/tests-artifacts/qemu-system-ppc64/8.1.0-ppc64.dockerfile 
b/automation/tests-artifacts/qemu-system-ppc64/8.1.0-ppc64.dockerfile
index 65857147bf..e28d686492 100644
--- a/automation/tests-artifacts/qemu-system-ppc64/8.1.0-ppc64.dockerfile
+++ b/automation/tests-artifacts/qemu-system-ppc64/8.1.0-ppc64.dockerfile
@@ -1,3 +1,4 @@
+# syntax=docker/dockerfile:1
 FROM --platform=linux/amd64 debian:bullseye-slim
 LABEL maintainer.name="The Xen Project" \
       maintainer.email="xen-devel@xxxxxxxxxxxxxxxxxxxx"
--
generated by git-patchbot for /home/xen/git/xen.git#staging



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.