756 lines
		
	
	
		
			19 KiB
		
	
	
	
		
			YAML
		
	
	
			
		
		
	
	
			756 lines
		
	
	
		
			19 KiB
		
	
	
	
		
			YAML
		
	
	
| name: ci
 | |
| 
 | |
| on:
 | |
|   workflow_dispatch:
 | |
|   push:
 | |
|     branches:
 | |
|       - master
 | |
|   pull_request:
 | |
|     branches:
 | |
|       - master
 | |
| 
 | |
| jobs:
 | |
|   minimal:
 | |
|     runs-on: ubuntu-latest
 | |
|     steps:
 | |
|       -
 | |
|         name: Checkout
 | |
|         uses: actions/checkout@v2
 | |
|         with:
 | |
|           path: action
 | |
|       -
 | |
|         name: Set up Docker Buildx
 | |
|         uses: docker/setup-buildx-action@v1
 | |
|       -
 | |
|         name: Build
 | |
|         uses: ./action
 | |
|         with:
 | |
|           file: ./test/Dockerfile
 | |
|       -
 | |
|         name: Dump context
 | |
|         if: always()
 | |
|         uses: crazy-max/ghaction-dump-context@v1
 | |
| 
 | |
|   git-context:
 | |
|     runs-on: ubuntu-latest
 | |
|     services:
 | |
|       registry:
 | |
|         image: registry:2
 | |
|         ports:
 | |
|           - 5000:5000
 | |
|     steps:
 | |
|       -
 | |
|         name: Checkout
 | |
|         uses: actions/checkout@v2
 | |
|         with:
 | |
|           path: action
 | |
|       -
 | |
|         name: Set up QEMU
 | |
|         uses: docker/setup-qemu-action@v1
 | |
|       -
 | |
|         name: Set up Docker Buildx
 | |
|         id: buildx
 | |
|         uses: docker/setup-buildx-action@v1
 | |
|         with:
 | |
|           version: latest
 | |
|           driver-opts: network=host
 | |
|       -
 | |
|         name: Build and push
 | |
|         id: docker_build
 | |
|         uses: ./action
 | |
|         with:
 | |
|           file: ./test/Dockerfile
 | |
|           builder: ${{ steps.buildx.outputs.name }}
 | |
|           platforms: linux/amd64,linux/arm64
 | |
|           push: true
 | |
|           tags: |
 | |
|             localhost:5000/name/app:latest
 | |
|             localhost:5000/name/app:1.0.0            
 | |
|       -
 | |
|         name: Inspect
 | |
|         run: |
 | |
|           docker buildx imagetools inspect localhost:5000/name/app:1.0.0          
 | |
|       -
 | |
|         name: Check digest
 | |
|         run: |
 | |
|           if [ -z "${{ steps.docker_build.outputs.digest }}" ]; then
 | |
|             echo "::error::Digest should not be empty"
 | |
|             exit 1
 | |
|           fi          
 | |
|       -
 | |
|         name: Dump context
 | |
|         if: always()
 | |
|         uses: crazy-max/ghaction-dump-context@v1
 | |
| 
 | |
|   git-context-secret:
 | |
|     runs-on: ubuntu-latest
 | |
|     services:
 | |
|       registry:
 | |
|         image: registry:2
 | |
|         ports:
 | |
|           - 5000:5000
 | |
|     steps:
 | |
|       -
 | |
|         name: Checkout
 | |
|         uses: actions/checkout@v2
 | |
|         with:
 | |
|           path: action
 | |
|       -
 | |
|         name: Set up QEMU
 | |
|         uses: docker/setup-qemu-action@v1
 | |
|       -
 | |
|         name: Set up Docker Buildx
 | |
|         id: buildx
 | |
|         uses: docker/setup-buildx-action@v1
 | |
|         with:
 | |
|           driver-opts: network=host
 | |
|       -
 | |
|         name: Build and push
 | |
|         id: docker_build
 | |
|         uses: ./action
 | |
|         with:
 | |
|           file: ./test/Dockerfile
 | |
|           builder: ${{ steps.buildx.outputs.name }}
 | |
|           platforms: linux/amd64,linux/arm64
 | |
|           push: true
 | |
|           tags: |
 | |
|             localhost:5000/name/app:latest
 | |
|             localhost:5000/name/app:1.0.0            
 | |
|           secrets: |
 | |
|             GIT_AUTH_TOKEN=${{ github.token }}
 | |
|             "MYSECRET=aaaaaaaa
 | |
|             bbbbbbb
 | |
|             ccccccccc"
 | |
|             FOO=bar
 | |
|             "EMPTYLINE=aaaa
 | |
| 
 | |
|             bbbb
 | |
|             ccc"            
 | |
|       -
 | |
|         name: Inspect
 | |
|         run: |
 | |
|           docker buildx imagetools inspect localhost:5000/name/app:1.0.0          
 | |
|       -
 | |
|         name: Check digest
 | |
|         run: |
 | |
|           if [ -z "${{ steps.docker_build.outputs.digest }}" ]; then
 | |
|             echo "::error::Digest should not be empty"
 | |
|             exit 1
 | |
|           fi          
 | |
|       -
 | |
|         name: Dump context
 | |
|         if: always()
 | |
|         uses: crazy-max/ghaction-dump-context@v1
 | |
| 
 | |
|   path-context:
 | |
|     runs-on: ubuntu-latest
 | |
|     strategy:
 | |
|       fail-fast: false
 | |
|       matrix:
 | |
|         buildx-version:
 | |
|           - ""
 | |
|           - latest
 | |
|     services:
 | |
|       registry:
 | |
|         image: registry:2
 | |
|         ports:
 | |
|           - 5000:5000
 | |
|     steps:
 | |
|       -
 | |
|         name: Checkout
 | |
|         uses: actions/checkout@v2
 | |
|       -
 | |
|         name: Set up QEMU
 | |
|         uses: docker/setup-qemu-action@v1
 | |
|       -
 | |
|         name: Set up Docker Buildx
 | |
|         id: buildx
 | |
|         uses: docker/setup-buildx-action@v1
 | |
|         with:
 | |
|           version: ${{ matrix.buildx-version }}
 | |
|           driver-opts: network=host
 | |
|       -
 | |
|         name: Build and push
 | |
|         id: docker_build
 | |
|         uses: ./
 | |
|         with:
 | |
|           context: ./test
 | |
|           file: ./test/Dockerfile
 | |
|           builder: ${{ steps.buildx.outputs.name }}
 | |
|           push: true
 | |
|           tags: |
 | |
|             localhost:5000/name/app:latest
 | |
|             localhost:5000/name/app:1.0.0            
 | |
|       -
 | |
|         name: Inspect
 | |
|         run: |
 | |
|           docker buildx imagetools inspect localhost:5000/name/app:1.0.0          
 | |
|       -
 | |
|         name: Check digest
 | |
|         run: |
 | |
|           if [ -z "${{ steps.docker_build.outputs.digest }}" ]; then
 | |
|             echo "::error::Digest should not be empty"
 | |
|             exit 1
 | |
|           fi          
 | |
|       -
 | |
|         name: Dump context
 | |
|         if: always()
 | |
|         uses: crazy-max/ghaction-dump-context@v1
 | |
| 
 | |
|   error:
 | |
|     runs-on: ubuntu-latest
 | |
|     steps:
 | |
|       -
 | |
|         name: Checkout
 | |
|         uses: actions/checkout@v2
 | |
|       -
 | |
|         name: Stop docker
 | |
|         run: |
 | |
|           sudo systemctl stop docker          
 | |
|       -
 | |
|         name: Build
 | |
|         id: docker_build
 | |
|         continue-on-error: true
 | |
|         uses: ./
 | |
|         with:
 | |
|           context: ./test
 | |
|           file: ./test/Dockerfile
 | |
|       -
 | |
|         name: Check
 | |
|         run: |
 | |
|           echo "${{ toJson(steps.docker_build) }}"
 | |
|           if [ "${{ steps.docker_build.outcome }}" != "failure" ] || [ "${{ steps.docker_build.conclusion }}" != "success" ]; then
 | |
|             echo "::error::Should have failed"
 | |
|             exit 1
 | |
|           fi          
 | |
|       -
 | |
|         name: Dump context
 | |
|         if: always()
 | |
|         uses: crazy-max/ghaction-dump-context@v1
 | |
| 
 | |
|   error-buildx:
 | |
|     runs-on: ubuntu-latest
 | |
|     steps:
 | |
|       -
 | |
|         name: Checkout
 | |
|         uses: actions/checkout@v2
 | |
|       -
 | |
|         name: Set up QEMU
 | |
|         uses: docker/setup-qemu-action@v1
 | |
|       -
 | |
|         name: Set up Docker Buildx
 | |
|         uses: docker/setup-buildx-action@v1
 | |
|       -
 | |
|         name: Build
 | |
|         id: docker_build
 | |
|         continue-on-error: true
 | |
|         uses: ./
 | |
|         with:
 | |
|           context: ./test
 | |
|           file: ./test/Dockerfile
 | |
|           platforms: linux/386,linux/amd64,linux/arm/v6,linux/arm/v7,linux/arm64,linux/ppc64le,linux/s390x
 | |
|           push: true
 | |
|           tags: localhost:5000/name/app:latest
 | |
|       -
 | |
|         name: Check
 | |
|         run: |
 | |
|           echo "${{ toJson(steps.docker_build) }}"
 | |
|           if [ "${{ steps.docker_build.outcome }}" != "failure" ] || [ "${{ steps.docker_build.conclusion }}" != "success" ]; then
 | |
|             echo "::error::Should have failed"
 | |
|             exit 1
 | |
|           fi          
 | |
|       -
 | |
|         name: Dump context
 | |
|         if: always()
 | |
|         uses: crazy-max/ghaction-dump-context@v1
 | |
| 
 | |
|   docker-driver:
 | |
|     runs-on: ubuntu-latest
 | |
|     services:
 | |
|       registry:
 | |
|         image: registry:2
 | |
|         ports:
 | |
|           - 5000:5000
 | |
|     steps:
 | |
|       -
 | |
|         name: Checkout
 | |
|         uses: actions/checkout@v2
 | |
|       -
 | |
|         name: Build
 | |
|         id: docker_build
 | |
|         uses: ./
 | |
|         with:
 | |
|           context: ./test
 | |
|           file: ./test/Dockerfile
 | |
|           push: true
 | |
|           tags: localhost:5000/name/app:latest
 | |
|       -
 | |
|         name: Dump context
 | |
|         if: always()
 | |
|         uses: crazy-max/ghaction-dump-context@v1
 | |
| 
 | |
|   export-docker:
 | |
|     runs-on: ubuntu-latest
 | |
|     steps:
 | |
|       -
 | |
|         name: Checkout
 | |
|         uses: actions/checkout@v2
 | |
|       -
 | |
|         name: Build
 | |
|         uses: ./
 | |
|         with:
 | |
|           context: ./test
 | |
|           file: ./test/Dockerfile
 | |
|           load: true
 | |
|           tags: myimage:latest
 | |
|       -
 | |
|         name: Inspect
 | |
|         run: |
 | |
|           docker image inspect myimage:latest          
 | |
|       -
 | |
|         name: Dump context
 | |
|         if: always()
 | |
|         uses: crazy-max/ghaction-dump-context@v1
 | |
| 
 | |
|   network:
 | |
|     runs-on: ubuntu-latest
 | |
|     steps:
 | |
|       -
 | |
|         name: Checkout
 | |
|         uses: actions/checkout@v2
 | |
|       -
 | |
|         name: Set up Docker Buildx
 | |
|         uses: docker/setup-buildx-action@v1
 | |
|       -
 | |
|         name: List networks
 | |
|         run: docker network ls
 | |
|       -
 | |
|         name: Build
 | |
|         uses: ./
 | |
|         with:
 | |
|           context: ./test
 | |
|           tags: name/app:latest
 | |
|           network: host
 | |
|       -
 | |
|         name: Dump context
 | |
|         if: always()
 | |
|         uses: crazy-max/ghaction-dump-context@v1
 | |
| 
 | |
|   shm-size:
 | |
|     runs-on: ubuntu-latest
 | |
|     steps:
 | |
|       -
 | |
|         name: Checkout
 | |
|         uses: actions/checkout@v2
 | |
|       -
 | |
|         name: Set up Docker Buildx
 | |
|         uses: docker/setup-buildx-action@v1
 | |
|         with:
 | |
|           version: v0.7.0
 | |
|           driver-opts: |
 | |
|             image=moby/buildkit:master            
 | |
|       -
 | |
|         name: Build
 | |
|         uses: ./
 | |
|         with:
 | |
|           context: ./test
 | |
|           file: ./test/shmsize.Dockerfile
 | |
|           tags: name/app:latest
 | |
|           shm-size: 2g
 | |
|       -
 | |
|         name: Dump context
 | |
|         if: always()
 | |
|         uses: crazy-max/ghaction-dump-context@v1
 | |
| 
 | |
|   ulimit:
 | |
|     runs-on: ubuntu-latest
 | |
|     steps:
 | |
|       -
 | |
|         name: Checkout
 | |
|         uses: actions/checkout@v2
 | |
|       -
 | |
|         name: Set up Docker Buildx
 | |
|         uses: docker/setup-buildx-action@v1
 | |
|         with:
 | |
|           version: v0.7.0
 | |
|           driver-opts: |
 | |
|             image=moby/buildkit:master            
 | |
|       -
 | |
|         name: Build
 | |
|         uses: ./
 | |
|         with:
 | |
|           context: ./test
 | |
|           file: ./test/ulimit.Dockerfile
 | |
|           tags: name/app:latest
 | |
|           ulimit: |
 | |
|             nofile=1024:1024
 | |
|             nproc=3            
 | |
|       -
 | |
|         name: Dump context
 | |
|         if: always()
 | |
|         uses: crazy-max/ghaction-dump-context@v1
 | |
| 
 | |
|   cgroup-parent:
 | |
|     runs-on: ubuntu-latest
 | |
|     steps:
 | |
|       -
 | |
|         name: Checkout
 | |
|         uses: actions/checkout@v2
 | |
|       -
 | |
|         name: Set up Docker Buildx
 | |
|         uses: docker/setup-buildx-action@v1
 | |
|         with:
 | |
|           version: v0.7.0
 | |
|           driver-opts: |
 | |
|             image=moby/buildkit:master            
 | |
|       -
 | |
|         name: Build
 | |
|         uses: ./
 | |
|         with:
 | |
|           context: ./test
 | |
|           file: ./test/cgroup.Dockerfile
 | |
|           tags: name/app:latest
 | |
|           cgroup-parent: foo
 | |
|       -
 | |
|         name: Dump context
 | |
|         if: always()
 | |
|         uses: crazy-max/ghaction-dump-context@v1
 | |
| 
 | |
|   multi:
 | |
|     runs-on: ubuntu-latest
 | |
|     strategy:
 | |
|       fail-fast: false
 | |
|       matrix:
 | |
|         buildx-version:
 | |
|           - ""
 | |
|           - latest
 | |
|         dockerfile:
 | |
|           - multi
 | |
|           - multi-sudo
 | |
|     services:
 | |
|       registry:
 | |
|         image: registry:2
 | |
|         ports:
 | |
|           - 5000:5000
 | |
|     steps:
 | |
|       -
 | |
|         name: Checkout
 | |
|         uses: actions/checkout@v2
 | |
|       -
 | |
|         name: Set up QEMU
 | |
|         uses: docker/setup-qemu-action@v1
 | |
|       -
 | |
|         name: Set up Docker Buildx
 | |
|         id: buildx
 | |
|         uses: docker/setup-buildx-action@v1
 | |
|         with:
 | |
|           version: ${{ matrix.buildx-version }}
 | |
|           driver-opts: network=host
 | |
|       -
 | |
|         name: Build and push
 | |
|         id: docker_build
 | |
|         uses: ./
 | |
|         with:
 | |
|           context: ./test
 | |
|           file: ./test/${{ matrix.dockerfile }}.Dockerfile
 | |
|           builder: ${{ steps.buildx.outputs.name }}
 | |
|           platforms: linux/amd64,linux/arm64
 | |
|           push: true
 | |
|           tags: |
 | |
|             localhost:5000/name/app:latest
 | |
|             localhost:5000/name/app:1.0.0            
 | |
|       -
 | |
|         name: Inspect
 | |
|         run: |
 | |
|           docker buildx imagetools inspect localhost:5000/name/app:1.0.0          
 | |
|       -
 | |
|         name: Check digest
 | |
|         run: |
 | |
|           if [ -z "${{ steps.docker_build.outputs.digest }}" ]; then
 | |
|             echo "::error::Digest should not be empty"
 | |
|             exit 1
 | |
|           fi          
 | |
|       -
 | |
|         name: Dump context
 | |
|         if: always()
 | |
|         uses: crazy-max/ghaction-dump-context@v1
 | |
| 
 | |
|   registry-cache:
 | |
|     runs-on: ubuntu-latest
 | |
|     services:
 | |
|       registry:
 | |
|         image: registry:2
 | |
|         ports:
 | |
|           - 5000:5000
 | |
|     steps:
 | |
|       -
 | |
|         name: Checkout
 | |
|         uses: actions/checkout@v2
 | |
|       -
 | |
|         name: Set up QEMU
 | |
|         uses: docker/setup-qemu-action@v1
 | |
|       -
 | |
|         name: Set up Docker Buildx
 | |
|         id: buildx
 | |
|         uses: docker/setup-buildx-action@v1
 | |
|         with:
 | |
|           driver-opts: |
 | |
|             network=host            
 | |
|       -
 | |
|         name: Build and push (1)
 | |
|         id: docker_build
 | |
|         uses: ./
 | |
|         with:
 | |
|           context: ./test
 | |
|           file: ./test/multi.Dockerfile
 | |
|           builder: ${{ steps.buildx.outputs.name }}
 | |
|           platforms: linux/amd64,linux/arm64
 | |
|           push: true
 | |
|           tags: |
 | |
|             localhost:5000/name/app:latest
 | |
|             localhost:5000/name/app:1.0.0            
 | |
|           cache-from: type=registry,ref=localhost:5000/name/app
 | |
|           cache-to: type=inline
 | |
|       -
 | |
|         name: Inspect (1)
 | |
|         run: |
 | |
|           docker buildx imagetools inspect localhost:5000/name/app:latest          
 | |
|       -
 | |
|         name: Check digest (1)
 | |
|         run: |
 | |
|           if [ -z "${{ steps.docker_build.outputs.digest }}" ]; then
 | |
|             echo "::error::Digest should not be empty"
 | |
|             exit 1
 | |
|           fi          
 | |
|       -
 | |
|         name: Prune
 | |
|         run: |
 | |
|           docker buildx prune -a -f --verbose          
 | |
|       -
 | |
|         name: Build and push (2)
 | |
|         id: docker_build2
 | |
|         uses: ./
 | |
|         with:
 | |
|           context: ./test
 | |
|           file: ./test/multi.Dockerfile
 | |
|           builder: ${{ steps.buildx.outputs.name }}
 | |
|           platforms: linux/amd64,linux/arm64
 | |
|           push: true
 | |
|           tags: |
 | |
|             localhost:5000/name/app:latest
 | |
|             localhost:5000/name/app:1.0.0            
 | |
|           cache-from: type=registry,ref=localhost:5000/name/app
 | |
|           cache-to: type=inline
 | |
|       -
 | |
|         name: Inspect (2)
 | |
|         run: |
 | |
|           docker buildx imagetools inspect localhost:5000/name/app:latest          
 | |
|       -
 | |
|         name: Check digest (2)
 | |
|         run: |
 | |
|           if [ -z "${{ steps.docker_build2.outputs.digest }}" ]; then
 | |
|             echo "::error::Digest should not be empty"
 | |
|             exit 1
 | |
|           fi          
 | |
|       -
 | |
|         name: Compare digests
 | |
|         run: |
 | |
|           echo Compare "${{ steps.docker_build.outputs.digest }}" with "${{ steps.docker_build2.outputs.digest }}"
 | |
|           if [ "${{ steps.docker_build.outputs.digest }}" != "${{ steps.docker_build2.outputs.digest }}" ]; then
 | |
|             echo "::error::Digests should be identical"
 | |
|             exit 1
 | |
|           fi          
 | |
|       -
 | |
|         name: Dump context
 | |
|         if: always()
 | |
|         uses: crazy-max/ghaction-dump-context@v1
 | |
| 
 | |
|   local-cache-first:
 | |
|     runs-on: ubuntu-latest
 | |
|     outputs:
 | |
|       digest: ${{ steps.docker_build.outputs.digest }}
 | |
|     services:
 | |
|       registry:
 | |
|         image: registry:2
 | |
|         ports:
 | |
|           - 5000:5000
 | |
|     steps:
 | |
|       -
 | |
|         name: Checkout
 | |
|         uses: actions/checkout@v2
 | |
|       -
 | |
|         name: Set up QEMU
 | |
|         uses: docker/setup-qemu-action@v1
 | |
|       -
 | |
|         name: Set up Docker Buildx
 | |
|         id: buildx
 | |
|         uses: docker/setup-buildx-action@v1
 | |
|         with:
 | |
|           driver-opts: |
 | |
|             network=host            
 | |
|       -
 | |
|         name: Cache Docker layers
 | |
|         uses: actions/cache@v2
 | |
|         with:
 | |
|           path: /tmp/.buildx-cache
 | |
|           key: ${{ runner.os }}-buildx-local-${{ github.sha }}
 | |
|           restore-keys: |
 | |
|             ${{ runner.os }}-buildx-ghcache-            
 | |
|       -
 | |
|         name: Erase cache
 | |
|         run: |
 | |
|           rm -rf /tmp/.buildx-cache/*          
 | |
|       -
 | |
|         name: Build and push
 | |
|         id: docker_build
 | |
|         uses: ./
 | |
|         with:
 | |
|           context: ./test
 | |
|           file: ./test/multi.Dockerfile
 | |
|           builder: ${{ steps.buildx.outputs.name }}
 | |
|           platforms: linux/amd64,linux/arm64
 | |
|           push: true
 | |
|           tags: |
 | |
|             localhost:5000/name/app:latest
 | |
|             localhost:5000/name/app:1.0.0            
 | |
|           cache-from: type=local,src=/tmp/.buildx-cache
 | |
|           cache-to: type=local,dest=/tmp/.buildx-cache
 | |
|       -
 | |
|         name: Inspect
 | |
|         run: |
 | |
|           docker buildx imagetools inspect localhost:5000/name/app:1.0.0          
 | |
|       -
 | |
|         name: Check digest
 | |
|         run: |
 | |
|           if [ -z "${{ steps.docker_build.outputs.digest }}" ]; then
 | |
|             echo "::error::Digest should not be empty"
 | |
|             exit 1
 | |
|           fi          
 | |
|       -
 | |
|         name: Dump context
 | |
|         if: always()
 | |
|         uses: crazy-max/ghaction-dump-context@v1
 | |
| 
 | |
|   local-cache-hit:
 | |
|     runs-on: ubuntu-latest
 | |
|     needs: local-cache-first
 | |
|     services:
 | |
|       registry:
 | |
|         image: registry:2
 | |
|         ports:
 | |
|           - 5000:5000
 | |
|     steps:
 | |
|       -
 | |
|         name: Checkout
 | |
|         uses: actions/checkout@v2
 | |
|       -
 | |
|         name: Set up QEMU
 | |
|         uses: docker/setup-qemu-action@v1
 | |
|       -
 | |
|         name: Set up Docker Buildx
 | |
|         id: buildx
 | |
|         uses: docker/setup-buildx-action@v1
 | |
|         with:
 | |
|           driver-opts: |
 | |
|             network=host            
 | |
|       -
 | |
|         name: Cache Docker layers
 | |
|         uses: actions/cache@v2
 | |
|         id: cache
 | |
|         with:
 | |
|           path: /tmp/.buildx-cache
 | |
|           key: ${{ runner.os }}-buildx-local-${{ github.sha }}
 | |
|           restore-keys: |
 | |
|             ${{ runner.os }}-buildx-ghcache-            
 | |
|       -
 | |
|         name: Build and push
 | |
|         id: docker_build
 | |
|         uses: ./
 | |
|         with:
 | |
|           context: ./test
 | |
|           file: ./test/multi.Dockerfile
 | |
|           builder: ${{ steps.buildx.outputs.name }}
 | |
|           platforms: linux/amd64,linux/arm64
 | |
|           push: true
 | |
|           tags: |
 | |
|             localhost:5000/name/app:latest
 | |
|             localhost:5000/name/app:1.0.0            
 | |
|           cache-from: type=local,src=/tmp/.buildx-cache
 | |
|           cache-to: type=local,dest=/tmp/.buildx-cache
 | |
|       -
 | |
|         name: Inspect
 | |
|         run: |
 | |
|           docker buildx imagetools inspect localhost:5000/name/app:1.0.0          
 | |
|       -
 | |
|         name: Check digest
 | |
|         run: |
 | |
|           if [ -z "${{ steps.docker_build.outputs.digest }}" ]; then
 | |
|             echo "::error::Digest should not be empty"
 | |
|             exit 1
 | |
|           fi          
 | |
|       -
 | |
|         name: Compare digests
 | |
|         run: |
 | |
|           echo Compare "${{ needs.local-cache-first.outputs.digest }}" with "${{ steps.docker_build.outputs.digest }}"
 | |
|           if [ "${{ needs.local-cache-first.outputs.digest }}" != "${{ steps.docker_build.outputs.digest }}" ]; then
 | |
|             echo "::error::Digests should be identical"
 | |
|             exit 1
 | |
|           fi          
 | |
|       -
 | |
|         name: Cache hit
 | |
|         run: echo ${{ steps.cache.outputs.cache-hit }}
 | |
|       -
 | |
|         name: Dump context
 | |
|         if: always()
 | |
|         uses: crazy-max/ghaction-dump-context@v1
 | |
| 
 | |
|   github-cache:
 | |
|     runs-on: ubuntu-latest
 | |
|     strategy:
 | |
|       fail-fast: false
 | |
|       matrix:
 | |
|         buildx_version:
 | |
|           - ""
 | |
|           - latest
 | |
|     services:
 | |
|       registry:
 | |
|         image: registry:2
 | |
|         ports:
 | |
|           - 5000:5000
 | |
|     steps:
 | |
|       -
 | |
|         name: Checkout
 | |
|         uses: actions/checkout@v2
 | |
|       -
 | |
|         name: Set up QEMU
 | |
|         uses: docker/setup-qemu-action@v1
 | |
|       -
 | |
|         name: Set up Docker Buildx
 | |
|         uses: docker/setup-buildx-action@v1
 | |
|         with:
 | |
|           version: ${{ matrix.buildx_version }}
 | |
|           driver-opts: |
 | |
|             network=host            
 | |
|           buildkitd-flags: --debug
 | |
|       -
 | |
|         name: Build and push
 | |
|         uses: ./
 | |
|         with:
 | |
|           context: ./test
 | |
|           file: ./test/multi.Dockerfile
 | |
|           platforms: linux/amd64,linux/arm64
 | |
|           push: true
 | |
|           tags: |
 | |
|             localhost:5000/name/app:latest
 | |
|             localhost:5000/name/app:1.0.0            
 | |
|           cache-from: type=gha,scope=ci-${{ matrix.buildx_version }}
 | |
|           cache-to: type=gha,scope=ci-${{ matrix.buildx_version }}
 | |
|       -
 | |
|         name: Inspect
 | |
|         run: |
 | |
|           docker buildx imagetools inspect localhost:5000/name/app:1.0.0          
 | |
|       -
 | |
|         name: Dump context
 | |
|         if: always()
 | |
|         uses: crazy-max/ghaction-dump-context@v1
 |