Skip to content

Commit

Permalink
Merge pull request quarkusio#195 from galderz/t_multiarch_v3
Browse files Browse the repository at this point in the history
Add support to build multi-arch images
  • Loading branch information
cescoffier committed May 5, 2022
2 parents 6dd9337 + 21e25a3 commit 5407633
Show file tree
Hide file tree
Showing 40 changed files with 509 additions and 68 deletions.
38 changes: 28 additions & 10 deletions .github/build-mandrel-images.sh
Original file line number Diff line number Diff line change
Expand Up @@ -22,17 +22,35 @@ export PATH=$PATH:$PWD/s2i
echo "Path is $PATH"
s2i version

echo "Generating ${PREFIX_NAME}:${VERSION}"
ARCH=$(echo "${VERSION}" | cut -d "-" -f 4)
if [ -z "$ARCH" ]
then
ARCH="amd64"
fi

PLATFORM="linux/${ARCH}"
echo "Generating ${PREFIX_NAME}:${VERSION} for platform ${PLATFORM}"
cekit --descriptor ${IMAGE} build \
--overrides "${OVERRIDES}" \
--dry-run \
${BUILD_ENGINE} --tag="${PREFIX_NAME}:${VERSION}"

echo "Verifying ${PREFIX_NAME}:${VERSION}"
export CTF_WAIT_TIME=120
cekit test \
--image ${PREFIX_NAME}:${VERSION} \
--overrides-file ${IMAGE} \
--overrides "${OVERRIDES}" \
behave \
--steps-url https://github.com/cescoffier/behave-test-steps

docker build \
--platform "${PLATFORM}" \
--tag "${PREFIX_NAME}:${VERSION}" \
--load \
target/image

# Testing only possible for amd64 images
if [ "$ARCH" = "amd64" ]; then
echo "Verifying ${PREFIX_NAME}:${VERSION}"
export CTF_WAIT_TIME=120
cekit test \
--image ${PREFIX_NAME}:${VERSION} \
--overrides-file ${IMAGE} \
--overrides "${OVERRIDES}" \
behave \
--steps-url https://github.com/cescoffier/behave-test-steps
else
echo "Verification skipped because architectures $ARCH is not amd64"
fi
37 changes: 28 additions & 9 deletions .github/build-native-images.sh
Original file line number Diff line number Diff line change
Expand Up @@ -23,16 +23,35 @@ s2i version
virtualenv --python=python3 .cekit
source .cekit/bin/activate

echo "Generating ${PREFIX_NAME}:${VERSION}"
ARCH=$(echo "${VERSION}" | cut -d "-" -f 3)
if [ -z "$ARCH" ]
then
ARCH="amd64"
fi

PLATFORM="linux/${ARCH}"
echo "Generating ${PREFIX_NAME}:${VERSION} for platform ${PLATFORM}"
cekit --descriptor ${IMAGE} build \
--overrides "${OVERRIDES}" \
--dry-run \
${BUILD_ENGINE} --tag="${PREFIX_NAME}:${VERSION}"

echo "Verifying ${PREFIX_NAME}:${VERSION}"
export CTF_WAIT_TIME=120
cekit test \
--image ${PREFIX_NAME}:${VERSION} \
--overrides-file ${IMAGE} \
--overrides "${OVERRIDES}" \
behave \
--steps-url https://github.com/cescoffier/behave-test-steps
docker build \
--platform "${PLATFORM}" \
--tag "${PREFIX_NAME}:${VERSION}" \
--load \
target/image

# Testing only possible for amd64 images
if [ "$ARCH" = "amd64" ]; then
echo "Verifying ${PREFIX_NAME}:${VERSION}"
export CTF_WAIT_TIME=120
cekit test \
--image ${PREFIX_NAME}:${VERSION} \
--overrides-file ${IMAGE} \
--overrides "${OVERRIDES}" \
behave \
--steps-url https://github.com/cescoffier/behave-test-steps
else
echo "Verification skipped because architectures $ARCH is not amd64"
fi
16 changes: 15 additions & 1 deletion .github/build-s2i-native-images.sh
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,25 @@ export PATH=$PATH:$PWD/s2i
echo "Path is $PATH"
s2i version

echo "Generating ${PREFIX_NAME}:${VERSION}"
ARCH=$(echo "${VERSION}" | cut -d "-" -f 3)
if [ -z "$ARCH" ]
then
ARCH="amd64"
fi

PLATFORM="linux/${ARCH}"
echo "Generating ${PREFIX_NAME}:${VERSION} for platform ${PLATFORM}"
cekit --descriptor ${IMAGE} build \
--overrides "${OVERRIDES}" \
--dry-run \
${BUILD_ENGINE} --tag="${PREFIX_NAME}:${VERSION}"

docker build \
--platform "${PLATFORM}" \
--tag "${PREFIX_NAME}:${VERSION}" \
--load \
target/image

# echo "Verifying ${PREFIX_NAME}:${VERSION}"
# export CTF_WAIT_TIME=120
# cekit test \
Expand Down
32 changes: 24 additions & 8 deletions .github/mandrel-images.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,15 +7,19 @@ versions:
- 21.3.0.0-Final-java11
- 21.3.0.0-Final-java17
- 21.3.1.0-Final-java11
- 22.0.0.2-Final-java11
- 21.3.1.0-Final-java17
- 22.0.0.2-Final-java17
- 21.3.1.1-Final-java17
- 21.3.1.1-Final-java11
- 21.3.2.0-Final-java11
- 21.3.2.0-Final-java17
- 22.1.0.0-Final-java11
- 22.1.0.0-Final-java17
- 22.0.0.2-Final-java11-amd64
- 22.0.0.2-Final-java11-arm64
- 22.0.0.2-Final-java17-amd64
- 22.0.0.2-Final-java17-arm64
- 22.1.0.0-Final-java11-amd64
- 22.1.0.0-Final-java11-arm64
- 22.1.0.0-Final-java17-amd64
- 22.1.0.0-Final-java17-arm64

tags:
- id: 20.3-java11
Expand All @@ -24,8 +28,20 @@ tags:
target: 21.3.2.0-Final-java11
- id: 21.3-java17
target: 21.3.2.0-Final-java17
- id: 22.1-java11
target: 22.1.0.0-Final-java11
- id: 22.1-java17
target: 22.1.0.0-Final-java17
- id: 22.0-java11-amd64
target: 22.0.0.2-Final-java11-amd64
- id: 22.0-java11-arm64
target: 22.0.0.2-Final-java11-arm64
- id: 22.0-java17-amd64
target: 22.0.0.2-Final-java17-amd64
- id: 22.0-java17-arm64
target: 22.0.0.2-Final-java17-arm64
- id: 22.1-java11-amd64
target: 22.1.0.0-Final-java11-amd64
- id: 22.1-java11-arm64
target: 22.1.0.0-Final-java11-arm64
- id: 22.1-java17-amd64
target: 22.1.0.0-Final-java17-amd64
- id: 22.1-java17-arm64
target: 22.1.0.0-Final-java17-arm64
versionCheck: true
38 changes: 25 additions & 13 deletions .github/native-images.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,21 +4,33 @@ buildScript: .github/build-native-images.sh
versions:
- 21.3.2-java11
- 21.3.2-java17
- 22.0.0-java11
- 22.0.0-java17
- 22.1.0-java11
- 22.1.0-java17
tags:
- 22.0.0-java11-amd64
- 22.0.0-java11-arm64
- 22.0.0-java17-amd64
- 22.0.0-java17-arm64
- 22.1.0-java11-amd64
- 22.1.0-java11-arm64
- 22.1.0-java17-amd64
- 22.1.0-java17-arm64
tags:
- id: 21.3-java11
target: 21.3.2-java11
- id: 21.3-java17
target: 21.3.2-java17
- id: 22.0-java11
target: 22.0.0-java11
- id: 22.0-java17
target: 22.0.0-java17
- id: 22.1-java11
target: 22.1.0-java11
- id: 22.1-java17
target: 22.1.0-java17
- id: 22.0-java11-amd64
target: 22.0.0-java11-amd64
- id: 22.0-java11-arm64
target: 22.0.0-java11-arm64
- id: 22.0-java17-amd64
target: 22.0.0-java17-amd64
- id: 22.0-java17-arm64
target: 22.0.0-java17-arm64
- id: 22.1-java11-amd64
target: 22.1.0-java11-amd64
- id: 22.1-java11-arm64
target: 22.1.0-java11-arm64
- id: 22.1-java17-amd64
target: 22.1.0-java17-amd64
- id: 22.1-java17-arm64
target: 22.1.0-java17-arm64
versionCheck: true
36 changes: 24 additions & 12 deletions .github/s2i-native-images.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,21 +4,33 @@ buildScript: .github/build-s2i-native-images.sh
versions:
- 21.3.2-java11
- 21.3.2-java17
- 22.0.0-java11
- 22.0.0-java17
- 22.1.0-java11
- 22.1.0-java17
- 22.0.0-java11-amd64
- 22.0.0-java11-arm64
- 22.0.0-java17-amd64
- 22.0.0-java17-arm64
- 22.1.0-java11-amd64
- 22.1.0-java11-arm64
- 22.1.0-java17-amd64
- 22.1.0-java17-arm64
tags:
- id: 21.3-java11
target: 21.3.2-java11
- id: 21.3-java17
target: 21.3.2-java17
- id: 22.0-java11
target: 22.0.0-java11
- id: 22.0-java17
target: 22.0.0-java17
- id: 22.1-java11
target: 22.1.0-java11
- id: 22.1-java17
target: 22.1.0-java17
- id: 22.0-java11-amd64
target: 22.0.0-java11-amd64
- id: 22.0-java11-arm64
target: 22.0.0-java11-arm64
- id: 22.0-java17-amd64
target: 22.0.0-java17-amd64
- id: 22.0-java17-arm64
target: 22.0.0-java17-arm64
- id: 22.1-java11-amd64
target: 22.1.0-java11-amd64
- id: 22.1-java11-arm64
target: 22.1.0-java11-arm64
- id: 22.1-java17-amd64
target: 22.1.0-java17-amd64
- id: 22.1-java17-arm64
target: 22.1.0-java17-arm64
versionCheck: false
12 changes: 6 additions & 6 deletions .github/tooling-images.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,13 @@ imageName: quay.io/quarkus/centos-quarkus-maven
buildScript: .github/build-tooling-images.sh
versions:
- 21.3.2-java11
- 22.0.0-java11
- 22.1.0-java11
- 22.0.0-java11-amd64
- 22.1.0-java11-amd64
tags:
- id: 21.3-java11
target: 21.3.2-java11
- id: 22.0-java11
target: 22.0.0-java11
- id: 22.1-java11
target: 22.1.0-java11
- id: 22.0-java11-amd64
target: 22.0.0-java11-amd64
- id: 22.1-java11-amd64
target: 22.1.0-java11-amd64
versionCheck: false
16 changes: 15 additions & 1 deletion .github/workflows/build-images.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,21 @@ jobs:
- .github/s2i-native-images.yaml
- .github/tooling-images.yaml
steps:
- uses: actions/checkout@v1
- uses: actions/checkout@v1
- name: Set up QEMU
uses: docker/setup-qemu-action@v1
- name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@v1
with:
install: true
- name: Inspect builder
run: |
echo "Name: ${{ steps.buildx.outputs.name }}"
echo "Endpoint: ${{ steps.buildx.outputs.endpoint }}"
echo "Status: ${{ steps.buildx.outputs.status }}"
echo "Flags: ${{ steps.buildx.outputs.flags }}"
echo "Platforms: ${{ steps.buildx.outputs.platforms }}"
- name: Prerequisites
run: .github/ci-prerequisites.sh
- name: Build images
Expand Down
File renamed without changes.
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
schema_version: 1
name: graalvm
version: &version "22.0.0-java11"
version: &version "22.0.0-java11-amd64"

labels:
- name: graalvm-archive-filename
Expand Down
File renamed without changes.
34 changes: 34 additions & 0 deletions modules/graalvm/22.0.0-java11-arm64/module.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
schema_version: 1
name: graalvm
version: &version "22.0.0-java11-arm64"

labels:
- name: graalvm-archive-filename
value: &filename graalvm-ce-linux-aarch64-22.0.0.2-java11.tar.gz
- name: graalvm-archive-url
value: &url https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.0.0.2/graalvm-ce-java11-linux-aarch64-22.0.0.2.tar.gz
- name: graalvm-version
value: &suffix java11-22.0.0

envs:
- name: "JAVA_HOME"
value: "/opt/graalvm"
- name: "GRAALVM_HOME"
value: "/opt/graalvm"
- name: "GRAALVM_VERSION"
value: *suffix
- name: "FILENAME"
value: *filename

artifacts:
- name: *filename
url: *url
sha256: 1cc0263d95f642dada4e290dca7f49c0456cefa7b690b67e3e5c159b537b2c58

packages:
install:
- fontconfig
- freetype-devel

execute:
- script: configure
File renamed without changes.
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
schema_version: 1
name: graalvm
version: &version "22.0.0-java17"
version: &version "22.0.0-java17-amd64"

labels:
- name: graalvm-archive-filename
Expand Down
File renamed without changes.
34 changes: 34 additions & 0 deletions modules/graalvm/22.0.0-java17-arm64/module.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
schema_version: 1
name: graalvm
version: &version "22.0.0-java17-arm64"

labels:
- name: graalvm-archive-filename
value: &filename graalvm-ce-linux-aarch64-22.0.0.2-java17.tar.gz
- name: graalvm-archive-url
value: &url https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.0.0.2/graalvm-ce-java17-linux-aarch64-22.0.0.2.tar.gz
- name: graalvm-version
value: &suffix java17-22.0.0

envs:
- name: "JAVA_HOME"
value: "/opt/graalvm"
- name: "GRAALVM_HOME"
value: "/opt/graalvm"
- name: "GRAALVM_VERSION"
value: *suffix
- name: "FILENAME"
value: *filename

artifacts:
- name: *filename
url: *url
sha256: c7d78387d2a144944f26773697c1b61d3478a081a1c5e7fc20f47f1f5f3c82c7

packages:
install:
- fontconfig
- freetype-devel

execute:
- script: configure
Loading

0 comments on commit 5407633

Please sign in to comment.