diff --git a/.github/workflows/on-tag.yml b/.github/workflows/on-tag.yml new file mode 100644 index 0000000..9fde11d --- /dev/null +++ b/.github/workflows/on-tag.yml @@ -0,0 +1,65 @@ +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 Neutrino switcher + 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" \ + --platform linux/amd64,linux/arm64,linux/arm/v7 \ + --tag ${{ secrets.DOCKER_HUB_USER }}/specter-desktop:$TAG \ + --output "type=registry" . + + - name: build neutrino-switcher against latest (specter-desktop) + 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 }}/specter-desktop:latest \ + --output "type=registry" . +