ref: 9196c18d376d4f18c686bcfec8550f9c8659d5ea
.github/workflows/docker.yml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 |
name: Build and push Docker image on: push: branches: [ main ] paths: - 'docker/**' pull_request: branches: [ main ] paths: - 'docker/**' # Allows you to run this workflow manually from the Actions tab workflow_dispatch: jobs: build: runs-on: ubuntu-22.04 env: USERNAME: infinitime steps: - uses: actions/checkout@v3 - name: Log in to Docker Hub if: github.event_name != 'pull_request' uses: docker/login-action@v2 with: username: ${{ secrets.DOCKER_HUB_LOGIN_USERNAME }} password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }} - name: Set up Docker metadata id: meta uses: docker/metadata-action@v4 with: images: | ${{ secrets.DOCKER_HUB_IMAGE_USERNAME || env.USERNAME }}/infinitime-build tags: | type=sha type=raw,value=latest - name: Set up QEMU uses: docker/setup-qemu-action@v2 - name: Set up Docker Buildx id: buildx uses: docker/setup-buildx-action@v2 - name: Build and push if: github.event_name != 'pull_request' uses: docker/build-push-action@v3 with: context: ./docker/ file: ./docker/Dockerfile platforms: linux/amd64,linux/arm64 builder: ${{ steps.buildx.outputs.name }} push: true tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} cache-from: type=registry,ref=${{ secrets.DOCKER_HUB_IMAGE_USERNAME || env.USERNAME }}/infinitime-build:buildcache cache-to: type=registry,ref=${{ secrets.DOCKER_HUB_IMAGE_USERNAME || env.USERNAME }}/infinitime-build:buildcache,mode=max - name: Build if: github.event_name == 'pull_request' uses: docker/build-push-action@v3 with: context: ./docker/ file: ./docker/Dockerfile platforms: linux/amd64,linux/arm64 builder: ${{ steps.buildx.outputs.name }} push: false cache-from: type=registry,ref=${{ secrets.DOCKER_HUB_IMAGE_USERNAME || env.USERNAME }}/infinitime-build:buildcache |