name: Docker build on push env: DOCKER_CLI_EXPERIMENTAL: enabled # on: # push: # tags: # - '*' on: push: branches: - master jobs: build: runs-on: ubuntu-18.04 name: Build and push Relay image env: ACTIONS_ALLOW_UNSECURE_COMMANDS: true steps: - name: Check out from Git uses: actions/checkout@v2 - name: Git tag run: echo "::set-env name=HEAD_TAG::$(git tag --points-at HEAD)" - name: Show set env variables again run: | printf " HEAD_TAG: %s\n" "${{ env.HEAD_TAG }}" - name: Login to Docker Hub run: echo "${{ secrets.DOCKER_PASSWORD }}" | docker login -u "${{ secrets.DOCKER_USERNAME }}" --password-stdin - name: Checkout project uses: actions/checkout@v2 - name: Setup Docker buildx action uses: crazy-max/ghaction-docker-buildx@v1 id: buildx with: buildx-version: latest qemu-version: latest - name: Show available buildx platforms run: echo ${{ steps.buildx.outputs.platforms }} - name: Cache Docker layers uses: actions/cache@v2 id: cache with: path: /tmp/.buildx-cache key: ${{ runner.os }}-buildx-${{ github.sha }} restore-keys: | ${{ runner.os }}-buildx- - name: Show set env variables again run: | printf " HEAD_TAG: %s\n" "${{ env.HEAD_TAG }}" - name: Run Docker buildx run: | docker buildx build \ --cache-from "type=local,src=/tmp/.buildx-cache" \ --cache-to "type=local,dest=/tmp/.buildx-cache" \ --platform linux/amd64,linux/arm64,linux/arm/v7 \ --tag "${{ secrets.DOCKER_HUB_USER }}/sphinx-relay:${{ env.HEAD_TAG }}" \ --output "type=registry" ./