From: Montgomery Auber Date: Sun, 29 Jan 2023 12:19:09 +0000 (+0200) Subject: Make github actions for amd64 and arm64 (#201) X-Git-Url: http://git.99rst.org/?a=commitdiff_plain;h=9f81e08221c5cab0dc1df5bd623284ebc8a99191;p=roundcube-roundcubemail-docker.git Make github actions for amd64 and arm64 (#201) Merging PR for further development --- diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 650f58e..5bb6b1a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,21 +1,26 @@ name: Build Docker image - on: [push, pull_request] - jobs: build-and-testvariants: name: Build image variants and run tests runs-on: ubuntu-latest strategy: fail-fast: false + max-parallel: 10 matrix: include: - - { variant: 'apache', test-files: ['apache-postgres'], docker-tag: 'roundcube-test-apache' } - - { variant: 'fpm', test-files: ['fpm-postgres'], docker-tag: 'roundcube-test-fpm' } - - { variant: 'fpm-alpine', test-files: ['fpm-postgres'], docker-tag: 'roundcube-test-fpm-alpine' } + - variant: 'apache' + test-files: 'apache-postgres' + docker-tag: roundcube/roundcubemail:latest,roundcube/roundcubemail:1.6.x-apache,roundcube/roundcubemail:1.6.0-apache,roundcube/roundcubemail:latest-apache + - variant: 'fpm' + test-files: 'fpm-postgres' + docker-tag: roundcube/roundcubemail:1.6.x-fpm,roundcube/roundcubemail:1.6.0-fpm,roundcube/roundcubemail:latest-fpm + - variant: 'fpm-alpine' + test-files: 'fpm-postgres' + docker-tag: roundcube/roundcubemail:1.6.x-fpm-alpine,roundcube/roundcubemail:1.6.0-fpm-alpine,roundcube/roundcubemail:latest-fpm-alpine steps: - name: Checkout repository - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Get docker hub username id: creds run: echo '::set-output name=username::${{ secrets.DOCKER_PULL_USERNAME }}' @@ -25,8 +30,22 @@ jobs: with: username: ${{ secrets.DOCKER_PULL_USERNAME }} password: ${{ secrets.DOCKER_PULL_PASSWORD }} - - name: Build image variant "${{ matrix.variant }}" - run: cd ${{ matrix.variant }} && docker buildx build ./ -t ${{ matrix.docker-tag }} + + - name: Set up QEMU + uses: docker/setup-qemu-action@v1 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 + with: + buildkitd-flags: --debug + + - name: Build and push image for "${{ matrix.variant }}" + uses: docker/build-push-action@v3 + with: + context: ${{ matrix.variant }} + platforms: "linux/arm64,linux/arm/v6,linux/arm/v7,linux/s390x,linux/ppc64le,linux/386,linux/amd64," + push: true + tags: ${{ matrix.docker-tag }} + # does not work linux/arm/v5 AND linux/mips64le - composer does not support mips64le or armv5 nor does the php image support them on the alpine variant - name: Run tests env: ROUNDCUBEMAIL_TEST_IMAGE: ${{ matrix.docker-tag }} @@ -37,3 +56,5 @@ jobs: docker-compose -f ./tests/docker-compose.test-${testFile}.yml \ up --exit-code-from=sut --abort-on-container-exit done + + diff --git a/tests/docker-compose.test-apache-postgres.yml b/tests/docker-compose.test-apache-postgres.yml index ac2fc33..c6b11fe 100644 --- a/tests/docker-compose.test-apache-postgres.yml +++ b/tests/docker-compose.test-apache-postgres.yml @@ -2,7 +2,7 @@ version: "2" services: roundcubemail: - image: ${ROUNDCUBEMAIL_TEST_IMAGE:-roundcube-test-apache} + image: roundcube/roundcubemail:1.6.0-apache healthcheck: # To make it obvious in logs "ping=ping" is added test: ["CMD", "curl", "--fail", "http://localhost/?ping=ping"] diff --git a/tests/docker-compose.test-fpm-postgres.yml b/tests/docker-compose.test-fpm-postgres.yml index 638853b..c377de1 100644 --- a/tests/docker-compose.test-fpm-postgres.yml +++ b/tests/docker-compose.test-fpm-postgres.yml @@ -2,7 +2,7 @@ version: "2" services: roundcubemail-fpm: - image: ${ROUNDCUBEMAIL_TEST_IMAGE:-roundcube-test-fpm} + image: roundcube/roundcubemail:1.6.0-fpm healthcheck: # Check until the FPM port is in in the LISTEN list # test: ["CMD-SHELL", "netstat -an | grep -q -F \":9000\""]