name: "Build base:alpine-core"

on:
    workflow_dispatch:
    push:
        branches-ignore:
            - "**"

jobs:
    docker:
        runs-on: [self-hosted]
        steps:
            - name: Checkout
              uses: actions/checkout@v2

            - uses: cardinalby/export-env-action@v1
              with:
                  envFile: ".github_build/Build.alpine.env"
                  export: "true"
                  expandWithJobEnv: "true"
                  expand: "true"

            - name: Set up QEMU
              uses: docker/setup-qemu-action@master
              with:
                  platforms: all

            - name: Set up Docker Buildx
              id: buildx
              uses: docker/setup-buildx-action@master

            - name: Cache Docker layers
              uses: actions/cache@v2
              with:
                  path: /tmp/.buildx-cache
                  key: ${{ runner.os }}-buildx-${{ github.sha }}
                  restore-keys: |
                      ${{ runner.os }}-buildx-

            - name: Login to DockerHub
              if: github.event_name != 'pull_request'
              uses: docker/login-action@v1
              with:
                  username: ${{ secrets.DOCKER_USERNAME }}
                  password: ${{ secrets.DOCKER_PASSWORD }}

            - name: Build Multi-Arch
              uses: docker/build-push-action@v2
              with:
                  builder: ${{ steps.buildx.outputs.name }}
                  context: .
                  file: ./Dockerfile
                  build-args: |
                      BUILD_IMAGE=${{ env.OS_NAME }}:${{ env.OS_VERSION }}
                      GOLANG_IMAGE=${{ env.GOLANG_IMAGE }}
                  platforms: linux/amd64,linux/arm64,linux/arm/v7,linux/arm/v6
                  push: true
                  tags: |
                      datarhei/base:core${{ env.CORE_VERSION }}-${{ env.OS_NAME }}${{ env.OS_VERSION }}
                      datarhei/base:${{ env.OS_NAME }}-core-${{ env.OS_VERSION }}-${{ env.CORE_VERSION }}
                      datarhei/base:${{ env.OS_NAME }}-core-latest
                  cache-from: type=local,src=/tmp/.buildx-cache
                  cache-to: type=local,dest=/tmp/.buildx-cache-new
