Add ARM build in GitHub Actions

- Hint: Tried to use the plattform parameter of the build-push-action,
   however this failed with an error in the Jobs.
   Therefore, I used a matrix with the platforms.
 - The ARM build takes a long time.
This commit is contained in:
Markus Opolka
2023-04-05 14:28:38 +02:00
parent 0732424f79
commit 663bf2f03b
5 changed files with 46 additions and 13 deletions

View File

@@ -15,7 +15,7 @@ jobs:
- 6.0/fpm-alpine/Dockerfile - 6.0/fpm-alpine/Dockerfile
- 6.0/fpm/Dockerfile - 6.0/fpm/Dockerfile
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v3
- uses: hadolint/hadolint-action@v1.5.0 - uses: hadolint/hadolint-action@v1.5.0
with: with:
dockerfile: ${{ matrix.dockerfile }} dockerfile: ${{ matrix.dockerfile }}
@@ -29,11 +29,20 @@ jobs:
permissions: permissions:
packages: write packages: write
contents: read contents: read
strategy:
matrix:
platform:
- linux/amd64
- linux/arm64
steps: steps:
- name: 'Check out the repo' - name: 'Check out the repo'
uses: actions/checkout@v2 uses: actions/checkout@v3
- name: 'Set up QEMU'
uses: docker/setup-qemu-action@v2
with:
platforms: 'arm64,arm'
- name: 'Set up Docker Buildx' - name: 'Set up Docker Buildx'
uses: docker/setup-buildx-action@v1 uses: docker/setup-buildx-action@v2
with: with:
buildkitd-flags: --debug buildkitd-flags: --debug
- name: 'Log in to DockerHub' - name: 'Log in to DockerHub'
@@ -61,6 +70,7 @@ jobs:
push: true push: true
tags: ${{ steps.metadata-apache.outputs.tags }} tags: ${{ steps.metadata-apache.outputs.tags }}
labels: ${{ steps.metadata-apache.outputs.labels }} labels: ${{ steps.metadata-apache.outputs.labels }}
platforms: ${{ matrix.platform }}
- name: 'FPM variant metadata' - name: 'FPM variant metadata'
id: metadata-fpm id: metadata-fpm
@@ -81,6 +91,7 @@ jobs:
push: true push: true
tags: ${{ steps.metadata-fpm.outputs.tags }} tags: ${{ steps.metadata-fpm.outputs.tags }}
labels: ${{ steps.metadata-fpm.outputs.labels }} labels: ${{ steps.metadata-fpm.outputs.labels }}
platforms: ${{ matrix.platform }}
- name: 'FPM Alpine variant metadata' - name: 'FPM Alpine variant metadata'
id: metadata-fpm-alpine id: metadata-fpm-alpine
@@ -101,3 +112,4 @@ jobs:
push: true push: true
tags: ${{ steps.metadata-fpm-alpine.outputs.tags }} tags: ${{ steps.metadata-fpm-alpine.outputs.tags }}
labels: ${{ steps.metadata-fpm-alpine.outputs.labels }} labels: ${{ steps.metadata-fpm-alpine.outputs.labels }}
platforms: ${{ matrix.platform }}

View File

@@ -15,7 +15,7 @@ jobs:
- 5.0/fpm-alpine/Dockerfile - 5.0/fpm-alpine/Dockerfile
- 5.0/fpm/Dockerfile - 5.0/fpm/Dockerfile
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v3
- uses: hadolint/hadolint-action@v1.5.0 - uses: hadolint/hadolint-action@v1.5.0
with: with:
dockerfile: ${{ matrix.dockerfile }} dockerfile: ${{ matrix.dockerfile }}
@@ -29,11 +29,20 @@ jobs:
permissions: permissions:
packages: write packages: write
contents: read contents: read
strategy:
matrix:
platform:
- linux/amd64
- linux/arm64
steps: steps:
- name: 'Check out the repo' - name: 'Check out the repo'
uses: actions/checkout@v2 uses: actions/checkout@v3
- name: 'Set up QEMU'
uses: docker/setup-qemu-action@v2
with:
platforms: 'arm64,arm'
- name: 'Set up Docker Buildx' - name: 'Set up Docker Buildx'
uses: docker/setup-buildx-action@v1 uses: docker/setup-buildx-action@v2
with: with:
buildkitd-flags: --debug buildkitd-flags: --debug
- name: 'Log in to DockerHub' - name: 'Log in to DockerHub'
@@ -61,6 +70,7 @@ jobs:
push: true push: true
tags: ${{ steps.metadata-apache.outputs.tags }} tags: ${{ steps.metadata-apache.outputs.tags }}
labels: ${{ steps.metadata-apache.outputs.labels }} labels: ${{ steps.metadata-apache.outputs.labels }}
platforms: ${{ matrix.platform }}
- name: 'FPM variant metadata' - name: 'FPM variant metadata'
id: metadata-fpm id: metadata-fpm
@@ -81,6 +91,7 @@ jobs:
push: true push: true
tags: ${{ steps.metadata-fpm.outputs.tags }} tags: ${{ steps.metadata-fpm.outputs.tags }}
labels: ${{ steps.metadata-apache.outputs.labels }} labels: ${{ steps.metadata-apache.outputs.labels }}
platforms: ${{ matrix.platform }}
- name: 'FPM Alpine variant metadata' - name: 'FPM Alpine variant metadata'
id: metadata-fpm-alpine id: metadata-fpm-alpine
@@ -101,3 +112,4 @@ jobs:
push: true push: true
tags: ${{ steps.metadata-fpm-alpine.outputs.tags }} tags: ${{ steps.metadata-fpm-alpine.outputs.tags }}
labels: ${{ steps.metadata-apache.outputs.labels }} labels: ${{ steps.metadata-apache.outputs.labels }}
platforms: ${{ matrix.platform }}

View File

@@ -12,12 +12,20 @@ jobs:
- apache - apache
- fpm-alpine - fpm-alpine
- fpm - fpm
platform:
- linux/amd64
- linux/arm64
steps: steps:
- name: 'Check out the repo' - name: 'Check out the repo'
uses: actions/checkout@v2 uses: actions/checkout@v3
- name: 'Set up QEMU'
uses: docker/setup-qemu-action@v2
with:
platforms: 'arm64,arm'
- name: 'Set up Docker Buildx' - name: 'Set up Docker Buildx'
uses: docker/setup-buildx-action@v1 uses: docker/setup-buildx-action@v2
- name: 'Build Container images' - name: 'Build Container images'
uses: docker/build-push-action@v2 uses: docker/build-push-action@v2
@@ -26,6 +34,7 @@ jobs:
push: false push: false
load: true load: true
tags: docker.io/martialblog/limesurvey:6-${{ matrix.context }} tags: docker.io/martialblog/limesurvey:6-${{ matrix.context }}
platforms: ${{ matrix.platform }}
- name: 'Run Structure tests' - name: 'Run Structure tests'
uses: plexsystems/container-structure-test-action@v0.2.0 uses: plexsystems/container-structure-test-action@v0.2.0

View File

@@ -14,10 +14,13 @@ jobs:
- fpm - fpm
steps: steps:
- name: 'Check out the repo' - name: 'Check out the repo'
uses: actions/checkout@v2 uses: actions/checkout@v3
- name: 'Set up QEMU'
uses: docker/setup-qemu-action@v2
- name: 'Set up Docker Buildx' - name: 'Set up Docker Buildx'
uses: docker/setup-buildx-action@v1 uses: docker/setup-buildx-action@v2
- name: 'Build Container images' - name: 'Build Container images'
uses: docker/build-push-action@v2 uses: docker/build-push-action@v2

View File

@@ -21,9 +21,6 @@ fileExistenceTests:
path: '/var/www/html/admin/index.php' path: '/var/www/html/admin/index.php'
shouldExist: true shouldExist: true
permissions: '-rw-rw-r--' permissions: '-rw-rw-r--'
- name: 'Ldap syslink'
path: '/usr/lib/x86_64-linux-gnu/libldap.so'
shouldExist: true
- name: "Dependencies - PHP - gd" - name: "Dependencies - PHP - gd"
path: '/usr/local/etc/php/conf.d/docker-php-ext-gd.ini' path: '/usr/local/etc/php/conf.d/docker-php-ext-gd.ini'
shouldExist: true shouldExist: true