name: Docker build on tag env: DOCKER_CLI_EXPERIMENTAL: enabled TAG_FMT: '^refs/tags/(((.?[0-9]+){3,4}))$' on: push: tags: [ '*' ] jobs: build: runs-on: ubuntu-18.04 name: Build Specter Desktop steps: - name: Setup Environment run: echo ::set-env name=TAG::${GITHUB_REF/refs\/tags\//} - name: Show set environment variables run: | printf " TAG: %s\n" "$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 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: Run Docker buildx against the tag (specter-desktop) run: | docker buildx build \ --cache-from "type=local,src=/tmp/.buildx-cache" \ --cache-to "type=local,dest=/tmp/.buildx-cache" \ --build-arg VERSION=$TAG \ --platform linux/amd64,linux/arm64,linux/arm/v7,linux/arm/v6 \ --tag ${{ secrets.DOCKER_HUB_USER }}/specter-desktop:$TAG \ --output "type=registry" . - name: build against latest (specter-desktop) run: | docker buildx build \ --cache-from "type=local,src=/tmp/.buildx-cache" \ --cache-to "type=local,dest=/tmp/.buildx-cache" \ --build-arg VERSION=$TAG \ --platform linux/amd64,linux/arm64,linux/arm/v7,linux/arm/v6 \ --tag ${{ secrets.DOCKER_HUB_USER }}/specter-desktop:latest \ --output "type=registry" .