1212
1313env :
1414 DOCKER_IMAGE : frankescobar/allure-docker-service
15- ALLURE_RELEASE : 2.27.0
16- QEMU_VERSION : v4.0.0
17- DOCKER_CLI_EXPERIMENTAL : enabled
15+ ALLURE_RELEASE : 2.35.1
1816
1917jobs :
2018 build_release :
2119 runs-on : ubuntu-latest
2220 strategy :
2321 matrix :
24- ARCH : [amd64, arm32v7, arm64v8 ]
22+ ARCH : [amd64, arm64, armv7 ]
2523 include :
2624 - ARCH : amd64
27- DOCKER_FILE : Dockerfile.bionic
28- JDK : adoptopenjdk:11-jre-openj9-bionic
29- QEMU_ARCH : x86_64
25+ DOCKER_FILE : Dockerfile
26+ DOCKER_PLATFORM : linux/amd64
27+ JDK : eclipse-temurin:11-jre-noble
3028
31- - ARCH : arm32v7
32- DOCKER_FILE : Dockerfile.bionic
33- JDK : adoptopenjdk:11-jdk-hotspot-bionic
34- QEMU_ARCH : arm
29+ - ARCH : arm64
30+ DOCKER_FILE : Dockerfile
31+ DOCKER_PLATFORM : linux/arm64
32+ JDK : eclipse-temurin:11-jre-noble
3533
36- - ARCH : arm64v8
37- DOCKER_FILE : Dockerfile.bionic
38- JDK : adoptopenjdk:11-jre-hotspot-bionic
39- QEMU_ARCH : aarch64
34+ - ARCH : armv7
35+ DOCKER_FILE : Dockerfile
36+ DOCKER_PLATFORM : linux/arm/v7
37+ JDK : eclipse-temurin:11-jre-noble
4038
4139 if : github.event_name == 'push'
4240 outputs :
4341 build_version : ${{ steps.prepare.outputs.build_version }}
4442 steps :
4543 - name : Pulling code
46- uses : actions/checkout@v2
44+ uses : actions/checkout@v4
4745
4846 - name : Preparing
4947 id : prepare
5048 run : |
5149 echo "DOCKER BUILD: Build Docker image."
52- echo "DOCKER BUILD: arch - ${{matrix.ARCH}}."
5350 echo "DOCKER BUILD: jdk -> ${{matrix.JDK}}."
54- echo "DOCKER BUILD: build version -> ${VERSION}."
5551 echo "DOCKER BUILD: allure version -> ${ALLURE_RELEASE}."
56- echo "DOCKER BUILD: qemu arch - ${{matrix.QEMU_ARCH}}."
57- echo "DOCKER BUILD: docker file - ${{matrix.DOCKER_FILE}}."
52+ echo "DOCKER BUILD: docker file - ${{matrix.DOCKER_FILE}}."
5853
5954 VERSION=na
60- TAGS="--tag ${DOCKER_IMAGE}:build"
55+ TAGS="--tag ${DOCKER_IMAGE}:build --tag ${DOCKER_IMAGE}:build-${{matrix.ARCH}} "
6156
6257 if [[ $GITHUB_REF == refs/tags/* ]]; then
6358 VERSION=${GITHUB_REF#refs/tags/v}
6459 if [[ $GITHUB_REF == *"beta"* ]]; then
65- TAGS="--tag ${DOCKER_IMAGE}:${VERSION} --tag ${DOCKER_IMAGE}:${VERSION}-${{matrix.ARCH}} --tag ${DOCKER_IMAGE}:beta --tag ${DOCKER_IMAGE}:build"
60+ TAGS="--tag ${DOCKER_IMAGE}:${VERSION} --tag ${DOCKER_IMAGE}:${VERSION}-${{matrix.ARCH}} --tag ${DOCKER_IMAGE}:beta --tag ${DOCKER_IMAGE}:build-${{matrix.ARCH}} "
6661 else
67- TAGS="--tag ${DOCKER_IMAGE}:${VERSION} --tag ${DOCKER_IMAGE}:${VERSION}-${{matrix.ARCH}} --tag ${DOCKER_IMAGE}:latest --tag ${DOCKER_IMAGE}:build"
62+ TAGS="--tag ${DOCKER_IMAGE}:${VERSION} --tag ${DOCKER_IMAGE}:${VERSION}-${{matrix.ARCH}} --tag ${DOCKER_IMAGE}:latest --tag ${DOCKER_IMAGE}:build-${{matrix.ARCH}} "
6863 fi
6964 fi
7065
71- echo ::set-output name=docker_image::${DOCKER_IMAGE}
72- echo ::set-output name=build_version::${VERSION}
73- echo ::set-output name=docker_args::--build-arg ARCH=${{matrix.ARCH}} \
66+ DOCKER_ARGS_STRING="\
7467 --build-arg JDK=${{matrix.JDK}} \
75- --build-arg QEMU_ARCH=${{matrix.QEMU_ARCH}} \
7668 --build-arg BUILD_DATE=$(date -u +'%Y-%m-%dT%H:%M:%SZ') \
7769 --build-arg BUILD_VERSION=${VERSION} \
7870 --build-arg BUILD_REF=${GITHUB_SHA::8} \
7971 --build-arg ALLURE_RELEASE=${ALLURE_RELEASE} \
80- ${TAGS} --file docker/Dockerfile.bionic .
72+ --platform ${{matrix.DOCKER_PLATFORM}} \
73+ ${TAGS} --file docker/Dockerfile ."
74+
75+ echo "DOCKER BUILD: build version -> ${VERSION}."
76+ echo "build_version=${VERSION}" >> $GITHUB_OUTPUT
77+ echo "docker_args=${DOCKER_ARGS_STRING}" >> $GITHUB_OUTPUT
8178
82- - name : Setting up QEMU
83- run : |
84- # Prepare qemu to build non amd64 / x86_64 images
85- docker run --rm --privileged multiarch/qemu-user-static:register --reset
86- mkdir tmp
87- pushd tmp &&
88- curl -L -o qemu-x86_64-static.tar.gz https://github.com/multiarch/qemu-user-static/releases/download/$QEMU_VERSION/qemu-x86_64-static.tar.gz && tar xzf qemu-x86_64-static.tar.gz &&
89- curl -L -o qemu-arm-static.tar.gz https://github.com/multiarch/qemu-user-static/releases/download/$QEMU_VERSION/qemu-arm-static.tar.gz && tar xzf qemu-arm-static.tar.gz &&
90- curl -L -o qemu-aarch64-static.tar.gz https://github.com/multiarch/qemu-user-static/releases/download/$QEMU_VERSION/qemu-aarch64-static.tar.gz && tar xzf qemu-aarch64-static.tar.gz &&
91- popd
79+
80+ - name : Set up QEMU
81+ uses : docker/setup-qemu-action@v3
82+ with :
83+ platforms : all
84+
85+ - name : Set up Docker Buildx
86+ id : buildx
87+ uses : docker/setup-buildx-action@v3
9288
9389 - name : Docker Building
9490 run : |
95- docker build --no-cache ${{ steps.prepare.outputs.docker_args }}
91+ docker buildx build --no-cache ${{ steps.prepare.outputs.docker_args }} --load
9692
9793 - name : Docker Testing
9894 run : |
99- echo "DOCKER TEST: Test Docker image. "
100- echo "DOCKER TEST: testing image -> ${DOCKER_IMAGE}:build"
95+ echo "DOCKER TEST: Test Docker image"
96+ echo "DOCKER TEST: testing image -> ${DOCKER_IMAGE}:build-${{matrix.ARCH}} "
10197
102- docker run -d --rm --name=testing ${DOCKER_IMAGE}:build
98+ docker run --platform ${{matrix.DOCKER_PLATFORM}} - d --rm --name=testing-${{matrix.ARCH}} ${DOCKER_IMAGE}:build-${{matrix.ARCH}}
10399 if [ $? -ne 0 ]; then
104100 echo "DOCKER TEST: FAILED - Docker container testing failed to start."
105101 exit 1
@@ -110,15 +106,15 @@ jobs:
110106 - name : DockerHub Login
111107 if : success() && startsWith(github.ref, 'refs/tags/v')
112108 env :
113- DOCKER_HUB_USER : ${{ secrets .DOCKER_HUB_USER }}
109+ DOCKER_HUB_USER : ${{ vars .DOCKER_HUB_USER }}
114110 DOCKER_HUB_PASS : ${{ secrets.DOCKER_HUB_PASS }}
115111 run : |
116112 echo "${DOCKER_HUB_PASS}" | docker login -u "${DOCKER_HUB_USER}" --password-stdin
117113
118114 - name : Docker Publishing
119115 if : success() && startsWith(github.ref, 'refs/tags/v')
120116 run : |
121- echo "DOCKER PUSH: pushing - ${DOCKER_IMAGE}:${{ steps.prepare.outputs.build_version }}-${{matrix.ARCH}}. "
117+ echo "DOCKER PUSH: pushing - ${DOCKER_IMAGE}:${{ steps.prepare.outputs.build_version }}-${{matrix.ARCH}}"
122118 docker push ${DOCKER_IMAGE}:${{ steps.prepare.outputs.build_version }}-${{matrix.ARCH}}
123119
124120 - name : Docker Logout
@@ -133,7 +129,7 @@ jobs:
133129 - name : DockerHub Login
134130 if : success() && startsWith(github.ref, 'refs/tags/v')
135131 env :
136- DOCKER_HUB_USER : ${{ secrets .DOCKER_HUB_USER }}
132+ DOCKER_HUB_USER : ${{ vars .DOCKER_HUB_USER }}
137133 DOCKER_HUB_PASS : ${{ secrets.DOCKER_HUB_PASS }}
138134 run : |
139135 echo "${DOCKER_HUB_PASS}" | docker login -u "${DOCKER_HUB_USER}" --password-stdin
@@ -144,11 +140,11 @@ jobs:
144140 BUILD_VERSION=${{ needs.build_release.outputs.build_version }}
145141 docker manifest create ${DOCKER_IMAGE}:${BUILD_VERSION} \
146142 ${DOCKER_IMAGE}:${BUILD_VERSION}-amd64 \
147- ${DOCKER_IMAGE}:${BUILD_VERSION}-arm32v7 \
148- ${DOCKER_IMAGE}:${BUILD_VERSION}-arm64v8
143+ ${DOCKER_IMAGE}:${BUILD_VERSION}-armv7 \
144+ ${DOCKER_IMAGE}:${BUILD_VERSION}-arm64
149145
150- docker manifest annotate ${DOCKER_IMAGE}:${BUILD_VERSION} ${DOCKER_IMAGE}:${BUILD_VERSION}-arm32v7 --os=linux --arch=arm --variant=v7
151- docker manifest annotate ${DOCKER_IMAGE}:${BUILD_VERSION} ${DOCKER_IMAGE}:${BUILD_VERSION}-arm64v8 --os=linux --arch=arm64 --variant=v8
146+ docker manifest annotate ${DOCKER_IMAGE}:${BUILD_VERSION} ${DOCKER_IMAGE}:${BUILD_VERSION}-armv7 --os=linux --arch=arm --variant=v7
147+ docker manifest annotate ${DOCKER_IMAGE}:${BUILD_VERSION} ${DOCKER_IMAGE}:${BUILD_VERSION}-arm64 --os=linux --arch=arm64 --variant=v8
152148
153149 docker manifest push ${DOCKER_IMAGE}:${BUILD_VERSION}
154150
@@ -159,11 +155,11 @@ jobs:
159155
160156 docker manifest create ${DOCKER_IMAGE}:${TAG} \
161157 ${DOCKER_IMAGE}:${BUILD_VERSION}-amd64 \
162- ${DOCKER_IMAGE}:${BUILD_VERSION}-arm32v7 \
163- ${DOCKER_IMAGE}:${BUILD_VERSION}-arm64v8
158+ ${DOCKER_IMAGE}:${BUILD_VERSION}-armv7 \
159+ ${DOCKER_IMAGE}:${BUILD_VERSION}-arm64
164160
165- docker manifest annotate ${DOCKER_IMAGE}:${TAG} ${DOCKER_IMAGE}:${BUILD_VERSION}-arm32v7 --os=linux --arch=arm --variant=v7
166- docker manifest annotate ${DOCKER_IMAGE}:${TAG} ${DOCKER_IMAGE}:${BUILD_VERSION}-arm64v8 --os=linux --arch=arm64 --variant=v8
161+ docker manifest annotate ${DOCKER_IMAGE}:${TAG} ${DOCKER_IMAGE}:${BUILD_VERSION}-armv7 --os=linux --arch=arm --variant=v7
162+ docker manifest annotate ${DOCKER_IMAGE}:${TAG} ${DOCKER_IMAGE}:${BUILD_VERSION}-arm64 --os=linux --arch=arm64 --variant=v8
167163
168164 docker manifest push ${DOCKER_IMAGE}:${TAG}
169165
0 commit comments