name: Docker image builds on: workflow_dispatch: schedule: - cron: '0 0 * * *' jobs: docker-alpine32: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v3 - name: Set up QEMU uses: docker/setup-qemu-action@v2 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v2 - name: Login to Docker Hub uses: docker/login-action@v2 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Build and push (alpine 32bit) uses: docker/build-push-action@v3 with: context: ./docker/alpine32 push: true tags: hasufell/i386-alpine-haskell:3.12 platforms: | linux/i386 linux/amd64 docker-alpine: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v3 - name: Set up QEMU uses: docker/setup-qemu-action@v2 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v2 - name: Login to Docker Hub uses: docker/login-action@v2 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Build and push (alpine 64bit) uses: docker/build-push-action@v3 with: context: ./docker/alpine64 push: true tags: hasufell/alpine-haskell:3.12 platforms: linux/amd64 docker-arm32: runs-on: [self-hosted, Linux, ARM64, aarch32-linux] steps: - uses: docker://arm64v8/ubuntu:focal name: Cleanup (aarch64 linux) with: args: "find . -mindepth 1 -maxdepth 1 -exec rm -rf -- {} +" - name: Checkout uses: actions/checkout@v3 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v2 - name: Login to Docker Hub uses: docker/login-action@v2 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Build and push (debian buster) uses: docker/build-push-action@v3 with: context: ./docker/arm32v7/buster push: true tags: hasufell/arm32v7-debian-haskell:10 platforms: linux/arm - name: Build and push (ubuntu focal) uses: docker/build-push-action@v3 with: context: ./docker/arm32v7/focal push: true tags: hasufell/arm32v7-debian-haskell:10 platforms: linux/arm docker-aarch: runs-on: [self-hosted, Linux, ARM64] steps: - uses: docker://arm64v8/ubuntu:focal name: Cleanup (aarch64 linux) with: args: "find . -mindepth 1 -maxdepth 1 -exec rm -rf -- {} +" - name: Checkout uses: actions/checkout@v3 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v2 - name: Login to Docker Hub uses: docker/login-action@v2 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Build and push (debian buster) uses: docker/build-push-action@v3 with: context: ./docker/arm64v8/buster push: true tags: hasufell/arm64v8-debian-haskell:10 platforms: linux/arm64 - name: Build and push (ubuntu focal) uses: docker/build-push-action@v3 with: context: ./docker/arm64v8/focal push: true tags: hasufell/arm64v8-debian-haskell:10 platforms: linux/arm64