name: Docker build on push env: DOCKER_CLI_EXPERIMENTAL: enabled on: push: branches: - master jobs: build: runs-on: ubuntu-18.04 name: Build and push all the stuff defined in this repo steps: - name: Checkout repo uses: actions/checkout@v2 - name: Set env variables run: | echo "::set-env name=BRANCH::$(echo ${GITHUB_REF#refs/heads/} | sed 's/\//-/g')" echo "::set-env name=SHORTSHA::$(git rev-parse --short HEAD)" echo "::set-env name=DOCKER_HUB_REPO::specter-desktop" - name: Show set env variables run: | printf " BRANCH: %s\n" "$BRANCH" printf " SHORTSHA: %s\n" "$SHORTSHA" printf " REPO: %s\n" "$GITHUB_REPOSITORY" printf " COMMIT ID: %s\n" "$GITHUB_SHA" printf " DOCKER REPO: %s\n" "$DOCKER_HUB_REPO" - name: Login to Docker Hub run: echo "${{ secrets.DOCKER_PASSWORD }}" | docker login -u "${{ secrets.DOCKER_USERNAME }}" --password-stdin - name: Setup Docker buildx action uses: crazy-max/ghaction-docker-buildx@v1 id: buildx with: buildx-version: latest qemu-version: latest - name: Show available Docker 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: Build against master 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,linux/arm/v6 \ --tag ${{ secrets.DOCKER_HUB_USER }}/$DOCKER_HUB_REPO:master-$SHORTSHA \ --output "type=registry" .