name: Build docker images on: push: branches: [ main ] jobs: build: runs-on: ubuntu-latest strategy: fail-fast: false matrix: platform: [ {arch: 'linux/amd64', tag: 'develop' }, {arch: 'linux/arm64', tag: 'develop-arm64' } ] container: [ {name: 'aio-apache', context: './Containers/apache'}, {name: 'aio-borgbackup', context: './Containers/borgbackup'}, {name: 'aio-collabora', context: './Containers/collabora'}, {name: 'aio-domaincheck', context: './Containers/domaincheck'}, {name: 'all-in-one', context: './Containers/mastercontainer'}, {name: 'aio-nextcloud', context: './Containers/nextcloud'}, {name: 'aio-postgresql', context: './Containers/postgresql'}, {name: 'aio-redis', context: './Containers/redis'}, {name: 'aio-talk', context: './Containers/talk'}, {name: 'aio-watchtower', context: './Containers/watchtower'}] steps: - name: Check out the repo uses: actions/checkout@v2 - name: Set up QEMU uses: docker/setup-qemu-action@v1 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v1 - name: Login to DockerHub uses: docker/login-action@v1 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Docker metadata id: metadata uses: docker/metadata-action@v3 with: images: | ${{ secrets.DOCKERHUB_USERNAME }}/${{ matrix.container.name }} tags: | ${{ matrix.platform.tag }} - name: Build docker image and push to dockerhub uses: docker/build-push-action@v2 with: context: ${{ matrix.container.context }} platforms: ${{matrix.platform.arch}} no-cache: true push: true tags: ${{ steps.metadata.outputs.tags }}