Skip to content

Commit 3187f1a

Browse files
committed
Build ARM64 and ARMv7 images along side AMD64 images (x86)
1 parent 5ac20d9 commit 3187f1a

2 files changed

Lines changed: 25 additions & 5 deletions

File tree

.github/workflows/ci.yml

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ name: Continuous Integration
22
env:
33
DOCKER_IMAGE: wyrihaximusnet/php
44
DOCKER_BUILDKIT: 1
5+
DOCKER_CLI_EXPERIMENTAL: enabled
56
on:
67
push:
78
branches:
@@ -93,12 +94,31 @@ jobs:
9394
image: ${{ fromJson(needs.generate-combined-strategy.outputs.image) }}
9495
steps:
9596
- uses: actions/checkout@v2
97+
- name: Set up Docker Buildx
98+
id: buildx
99+
uses: crazy-max/ghaction-docker-buildx@v3
100+
with:
101+
buildx-version: latest
102+
qemu-version: latest
96103
- run: mkdir ./docker-image/
97104
- run: ./build-php.sh $(echo "${{ matrix.image }}" | tr '-' ' ')
98105
- run: cat ./docker-image/image.tags | xargs -I % docker inspect --format='%={{.Id}}:{{index .Config.Env 7}}' %
99106
- run: docker save "${DOCKER_IMAGE}" -o ./docker-image/image.tar
100107
- run: docker images
101-
- uses: actions/upload-artifact@v2
108+
- name: Upload Images (attempt #1)
109+
uses: actions/upload-artifact@v2
110+
with:
111+
name: docker-image-${{ matrix.image }}
112+
path: ./docker-image
113+
- name: Upload Images (attempt #2)
114+
if: ${{ failure() }}
115+
uses: actions/upload-artifact@v2
116+
with:
117+
name: docker-image-${{ matrix.image }}
118+
path: ./docker-image
119+
- name: Upload Images (attempt #3)
120+
if: ${{ failure() }}
121+
uses: actions/upload-artifact@v2
102122
with:
103123
name: docker-image-${{ matrix.image }}
104124
path: ./docker-image

build-php.sh

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,14 +23,14 @@ declare -r WYRIHAXIMUSNET_TAG_DEV_ROOT="${WYRIHAXIMUSNET_TAG}-dev-root"
2323

2424
declare -r TAG_FILE="./docker-image/image.tags"
2525

26-
sed -E "s/${IMAGE_ORIGINAL_TAG}/${IMAGE_TAG}/g" "Dockerfile-${DST_IMAGE}" | docker build --no-cache --pull --build-arg BUILD_DATE=`date -u +"%Y-%m-%dT%H:%M:%SZ"` --build-arg VCS_REF=`git rev-parse --short HEAD` -t "${WYRIHAXIMUSNET_TAG}" --target="${DST_IMAGE}" -f - . \
26+
sed -E "s/${IMAGE_ORIGINAL_TAG}/${IMAGE_TAG}/g" "Dockerfile-${DST_IMAGE}" | docker buildx build --platform "linux/amd64,linux/arm64,linux/arm/v7" --output "type=docker,push=false" --no-cache --pull --build-arg BUILD_DATE=`date -u +"%Y-%m-%dT%H:%M:%SZ"` --build-arg VCS_REF=`git rev-parse --short HEAD` -t "${WYRIHAXIMUSNET_TAG}" --target="${DST_IMAGE}" -f - . \
2727
&& echo "$WYRIHAXIMUSNET_TAG" >> "$TAG_FILE"
2828

29-
sed -E "s/${IMAGE_ORIGINAL_TAG}/${IMAGE_TAG}/g" "Dockerfile-${DST_IMAGE}" | docker build --pull --build-arg BUILD_DATE=`date -u +"%Y-%m-%dT%H:%M:%SZ"` --build-arg VCS_REF=`git rev-parse --short HEAD` -t "${WYRIHAXIMUSNET_TAG_DEV}" --target="${DST_IMAGE}-dev" -f - . \
29+
sed -E "s/${IMAGE_ORIGINAL_TAG}/${IMAGE_TAG}/g" "Dockerfile-${DST_IMAGE}" | docker buildx build --platform "linux/amd64,linux/arm64,linux/arm/v7" --output "type=docker,push=false" --pull --build-arg BUILD_DATE=`date -u +"%Y-%m-%dT%H:%M:%SZ"` --build-arg VCS_REF=`git rev-parse --short HEAD` -t "${WYRIHAXIMUSNET_TAG_DEV}" --target="${DST_IMAGE}-dev" -f - . \
3030
&& echo "$WYRIHAXIMUSNET_TAG_DEV" >> "$TAG_FILE"
3131

32-
sed -E "s/${IMAGE_ORIGINAL_TAG}/${IMAGE_TAG}/g" "Dockerfile-${DST_IMAGE}" | docker build --pull --build-arg BUILD_DATE=`date -u +"%Y-%m-%dT%H:%M:%SZ"` --build-arg VCS_REF=`git rev-parse --short HEAD` -t "${WYRIHAXIMUSNET_TAG_ROOT}" --target="${DST_IMAGE}-root" -f - . \
32+
sed -E "s/${IMAGE_ORIGINAL_TAG}/${IMAGE_TAG}/g" "Dockerfile-${DST_IMAGE}" | docker buildx build --platform "linux/amd64,linux/arm64,linux/arm/v7" --output "type=docker,push=false" --pull --build-arg BUILD_DATE=`date -u +"%Y-%m-%dT%H:%M:%SZ"` --build-arg VCS_REF=`git rev-parse --short HEAD` -t "${WYRIHAXIMUSNET_TAG_ROOT}" --target="${DST_IMAGE}-root" -f - . \
3333
&& echo "$WYRIHAXIMUSNET_TAG_ROOT" >> "$TAG_FILE"
3434

35-
sed -E "s/${IMAGE_ORIGINAL_TAG}/${IMAGE_TAG}/g" "Dockerfile-${DST_IMAGE}" | docker build --pull --build-arg BUILD_DATE=`date -u +"%Y-%m-%dT%H:%M:%SZ"` --build-arg VCS_REF=`git rev-parse --short HEAD` -t "${WYRIHAXIMUSNET_TAG_DEV_ROOT}" --target="${DST_IMAGE}-dev-root" -f - . \
35+
sed -E "s/${IMAGE_ORIGINAL_TAG}/${IMAGE_TAG}/g" "Dockerfile-${DST_IMAGE}" | docker buildx build --platform "linux/amd64,linux/arm64,linux/arm/v7" --output "type=docker,push=false" --pull --build-arg BUILD_DATE=`date -u +"%Y-%m-%dT%H:%M:%SZ"` --build-arg VCS_REF=`git rev-parse --short HEAD` -t "${WYRIHAXIMUSNET_TAG_DEV_ROOT}" --target="${DST_IMAGE}-dev-root" -f - . \
3636
&& echo "$WYRIHAXIMUSNET_TAG_DEV_ROOT" >> "$TAG_FILE"

0 commit comments

Comments
 (0)