name: Build Multi Arch Docker Images on: push: branches: - master - dev workflow_dispatch: jobs: build: name: Build Docker Images runs-on: ubuntu-latest outputs: date: ${{ steps.date.outputs.date }} tag: ${{ steps.branch.outputs.tag }} version: ${{ steps.version.outputs.version }} steps: - name: Check out repository uses: actions/checkout@v2 - name: Set up QEMU id: qemu uses: docker/setup-qemu-action@v1 with: image: tonistiigi/binfmt:latest platforms: all - name: Set up Docker Buildx id: buildx uses: docker/setup-buildx-action@v1 - name: Log in to GitHub Container Registry if: github.event_name != 'pull_request' uses: docker/login-action@v1 with: registry: ghcr.io username: ${{ github.actor }} password: ${{ secrets.GHCR_PAT }} # - name: Login to Docker Hub # if: github.event_name != 'pull_request' # uses: docker/login-action@v1 # with: # username: ${{ secrets.DOCKER_USERNAME }} # password: ${{ secrets.DOCKER_PASSWORD }} - name: Get current date id: date run: echo "::set-output name=date::$(date +"%Y-%m-%dT%H:%M:%SZ")" - name: Get Crafty version id: version run: | MAJOR=$(cat app/config/version.json | jq '.major' ) MINOR=$(cat app/config/version.json | jq '.minor' ) SUB=$(cat app/config/version.json | jq '.sub' ) META=$(cat app/config/version.json | jq -r '.meta' ) echo "::set-output name=version::$MAJOR.$MINOR.$SUB-$META" - name: Get branch tag id: branch run: | if [[ "${{ github.ref }}" == "refs/heads/master" ]]; then echo "::set-output name=tag::latest" else echo "::set-output name=tag::$(echo "${{ github.ref }}" | sed -e 's/refs\/heads\///g')" fi - name: Build and push Docker image uses: docker/build-push-action@v2 with: context: . file: ./Dockerfile platforms: linux/arm64,linux/amd64 push: ${{ github.event_name != 'pull_request' }} cache-from: type=registry,ref=${{ github.repository }}:${{ steps.branch.outputs.tag }} cache-to: type=inline build-args: | BUILD_DATE=${{ steps.date.outputs.date }} BUILD_REF=${{ github.sha }} CRAFTY_VER=${{ steps.version.outputs.version }} tags: | ghcr.io/${{ github.repository }}:${{ steps.branch.outputs.tag }} # {{ GITHUB_REPOSITORY }}:${{ steps.branch.outputs.tag }}