mirror of
				https://github.moeyy.xyz/https://github.com/docker/setup-buildx-action
				synced 2025-10-31 19:12:10 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			467 lines
		
	
	
		
			10 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			467 lines
		
	
	
		
			10 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
| name: ci
 | |
| 
 | |
| on:
 | |
|   schedule:
 | |
|     - cron: '0 10 * * *' # everyday at 10am
 | |
|   push:
 | |
|     branches:
 | |
|       - 'master'
 | |
|       - 'releases/v*'
 | |
|     tags:
 | |
|       - 'v*'
 | |
|   pull_request:
 | |
|     branches:
 | |
|       - 'master'
 | |
|       - 'releases/v*'
 | |
| 
 | |
| jobs:
 | |
|   main:
 | |
|     runs-on: ubuntu-latest
 | |
|     strategy:
 | |
|       fail-fast: false
 | |
|       matrix:
 | |
|         buildx-version:
 | |
|           - latest
 | |
|           - v0.4.1
 | |
|           - ""
 | |
|     steps:
 | |
|       -
 | |
|         name: Checkout
 | |
|         uses: actions/checkout@v3
 | |
|       -
 | |
|         name: Set up Docker Buildx
 | |
|         id: buildx
 | |
|         uses: ./
 | |
|         with:
 | |
|           version: ${{ matrix.buildx-version }}
 | |
|       -
 | |
|         name: Nodes output
 | |
|         run: |
 | |
|           cat << EOF
 | |
|           ${{ steps.buildx.outputs.nodes }}
 | |
|           EOF
 | |
| 
 | |
|   multi:
 | |
|     runs-on: ubuntu-latest
 | |
|     steps:
 | |
|       -
 | |
|         name: Checkout
 | |
|         uses: actions/checkout@v3
 | |
|       -
 | |
|         name: Set up Docker Buildx 1
 | |
|         uses: ./
 | |
|       -
 | |
|         name: Set up Docker Buildx 2
 | |
|         uses: ./
 | |
| 
 | |
|   error:
 | |
|     runs-on: ubuntu-latest
 | |
|     steps:
 | |
|       -
 | |
|         name: Checkout
 | |
|         uses: actions/checkout@v3
 | |
|       -
 | |
|         name: Stop docker
 | |
|         run: |
 | |
|           sudo systemctl stop docker
 | |
|       -
 | |
|         name: Set up Docker Buildx
 | |
|         id: buildx
 | |
|         continue-on-error: true
 | |
|         uses: ./
 | |
|       -
 | |
|         name: Check
 | |
|         run: |
 | |
|           echo "${{ toJson(steps.buildx) }}"
 | |
|           if [ "${{ steps.buildx.outcome }}" != "failure" ] || [ "${{ steps.buildx.conclusion }}" != "success" ]; then
 | |
|             echo "::error::Should have failed"
 | |
|             exit 1
 | |
|           fi
 | |
|       -
 | |
|         name: Dump context
 | |
|         if: always()
 | |
|         uses: crazy-max/ghaction-dump-context@v1
 | |
| 
 | |
|   debug:
 | |
|     runs-on: ubuntu-latest
 | |
|     steps:
 | |
|       -
 | |
|         name: Checkout
 | |
|         uses: actions/checkout@v3
 | |
|       -
 | |
|         name: Create Dockerfile
 | |
|         run: |
 | |
|           cat > ./Dockerfile <<EOL
 | |
|           FROM alpine
 | |
|           RUN uname -a
 | |
|           EOL
 | |
|       -
 | |
|         name: Set up QEMU
 | |
|         uses: docker/setup-qemu-action@v2
 | |
|       -
 | |
|         name: Set up Docker Buildx
 | |
|         uses: ./
 | |
|         with:
 | |
|           buildkitd-flags: --debug
 | |
|       -
 | |
|         name: Build
 | |
|         uses: docker/build-push-action@v4
 | |
|         with:
 | |
|           context: .
 | |
|           platforms: linux/amd64,linux/arm64,linux/ppc64le
 | |
| 
 | |
|   install:
 | |
|     runs-on: ubuntu-latest
 | |
|     steps:
 | |
|       -
 | |
|         name: Checkout
 | |
|         uses: actions/checkout@v3
 | |
|       -
 | |
|         name: Set up Docker Buildx
 | |
|         uses: ./
 | |
|         with:
 | |
|           install: true
 | |
|       -
 | |
|         name: Check cmd
 | |
|         run: |
 | |
|           docker build --help
 | |
| 
 | |
|   use:
 | |
|     runs-on: ubuntu-latest
 | |
|     strategy:
 | |
|       fail-fast: false
 | |
|       matrix:
 | |
|         use:
 | |
|           - true
 | |
|           - false
 | |
|     steps:
 | |
|       -
 | |
|         name: Checkout
 | |
|         uses: actions/checkout@v3
 | |
|       -
 | |
|         name: Set up Docker Buildx
 | |
|         uses: ./
 | |
|         with:
 | |
|           use: ${{ matrix.use }}
 | |
|       -
 | |
|         name: List builder instances
 | |
|         run: docker buildx ls
 | |
| 
 | |
|   driver:
 | |
|     runs-on: ubuntu-latest
 | |
|     strategy:
 | |
|       fail-fast: false
 | |
|       matrix:
 | |
|         driver-opts:
 | |
|           - image=moby/buildkit:latest
 | |
|           - |
 | |
|             image=moby/buildkit:master
 | |
|             network=host
 | |
|     steps:
 | |
|       -
 | |
|         name: Checkout
 | |
|         uses: actions/checkout@v3
 | |
|       -
 | |
|         name: Set up Docker Buildx
 | |
|         uses: ./
 | |
|         with:
 | |
|           driver: docker-container
 | |
|           driver-opts: ${{ matrix.driver-opts }}
 | |
| 
 | |
|   docker-driver:
 | |
|     runs-on: ubuntu-latest
 | |
|     steps:
 | |
|       -
 | |
|         name: Checkout
 | |
|         uses: actions/checkout@v3
 | |
|       -
 | |
|         name: Set up Docker Buildx
 | |
|         uses: ./
 | |
|         id: builder
 | |
|         with:
 | |
|           driver: docker
 | |
|       -
 | |
|         name: Verify
 | |
|         run: |
 | |
|           [[ "${{ steps.builder.outputs.name }}" = "default" ]]
 | |
|           docker buildx inspect
 | |
|           docker buildx inspect | grep Driver | grep docker
 | |
|           docker buildx inspect | grep Status | grep running
 | |
| 
 | |
|   endpoint:
 | |
|     runs-on: ubuntu-latest
 | |
|     services:
 | |
|       dind:
 | |
|         image: docker:dind
 | |
|         options: >-
 | |
|           --privileged
 | |
|           --health-cmd "docker info"
 | |
|           --health-interval 10s
 | |
|           --health-timeout 5s
 | |
|           --health-retries 5
 | |
|         env:
 | |
|           DOCKER_TLS_CERTDIR: ""
 | |
|         ports:
 | |
|           - 2375:2375
 | |
|     steps:
 | |
|       -
 | |
|         name: Checkout
 | |
|         uses: actions/checkout@v3
 | |
|       -
 | |
|         name: Create context
 | |
|         run: |
 | |
|           docker context create mycontext --docker host=tcp://127.0.0.1:2375
 | |
|       -
 | |
|         name: Check context
 | |
|         run: |
 | |
|           docker --context mycontext info
 | |
|       -
 | |
|         name: Set up Docker Buildx
 | |
|         uses: ./
 | |
|         with:
 | |
|           endpoint: mycontext
 | |
|         env:
 | |
|           DOCKER_CONTEXT: mycontext
 | |
| 
 | |
|   config:
 | |
|     runs-on: ubuntu-latest
 | |
|     steps:
 | |
|       -
 | |
|         name: Checkout
 | |
|         uses: actions/checkout@v3
 | |
|       -
 | |
|         name: Create buildkitd conf
 | |
|         run: |
 | |
|           cat > /tmp/buildkitd.toml <<EOL
 | |
|           debug = true
 | |
|           [registry."docker.io"]
 | |
|             mirrors = ["mirror.gcr.io"]
 | |
|           EOL
 | |
|       -
 | |
|         name: Create Dockerfile
 | |
|         run: |
 | |
|           cat > ./Dockerfile <<EOL
 | |
|           FROM alpine
 | |
|           EOL
 | |
|       -
 | |
|         name: Set up Docker Buildx
 | |
|         uses: ./
 | |
|         with:
 | |
|           buildkitd-flags: --debug
 | |
|           config: /tmp/buildkitd.toml
 | |
|       -
 | |
|         name: Build
 | |
|         uses: docker/build-push-action@v4
 | |
|         with:
 | |
|           context: .
 | |
| 
 | |
|   config-inline:
 | |
|     runs-on: ubuntu-latest
 | |
|     steps:
 | |
|       -
 | |
|         name: Checkout
 | |
|         uses: actions/checkout@v3
 | |
|       -
 | |
|         name: Create Dockerfile
 | |
|         run: |
 | |
|           cat > ./Dockerfile <<EOL
 | |
|           FROM alpine
 | |
|           EOL
 | |
|       -
 | |
|         name: Set up Docker Buildx
 | |
|         uses: ./
 | |
|         with:
 | |
|           buildkitd-flags: --debug
 | |
|           config-inline: |
 | |
|             debug = true
 | |
|             [registry."docker.io"]
 | |
|               mirrors = ["mirror.gcr.io"]
 | |
|       -
 | |
|         name: Build
 | |
|         uses: docker/build-push-action@v4
 | |
|         with:
 | |
|           context: .
 | |
| 
 | |
|   with-qemu:
 | |
|     runs-on: ubuntu-latest
 | |
|     strategy:
 | |
|       fail-fast: false
 | |
|       matrix:
 | |
|         buildx-version:
 | |
|           - latest
 | |
|           - v0.4.1
 | |
|           - ""
 | |
|         qemu-platforms:
 | |
|           - all
 | |
|           - arm64,riscv64,arm
 | |
|     steps:
 | |
|       -
 | |
|         name: Checkout
 | |
|         uses: actions/checkout@v3
 | |
|       -
 | |
|         name: Set up QEMU
 | |
|         uses: docker/setup-qemu-action@v2
 | |
|         with:
 | |
|           platforms: ${{ matrix.qemu-platforms }}
 | |
|       -
 | |
|         name: Set up Docker Buildx
 | |
|         id: buildx
 | |
|         uses: ./
 | |
|         with:
 | |
|           version: ${{ matrix.buildx-version }}
 | |
|       -
 | |
|         name: List builder platforms
 | |
|         run: echo ${{ steps.buildx.outputs.platforms }}
 | |
| 
 | |
|   build-ref:
 | |
|     runs-on: ubuntu-latest
 | |
|     strategy:
 | |
|       fail-fast: false
 | |
|       matrix:
 | |
|         ref:
 | |
|           - master
 | |
|           - refs/tags/v0.5.1
 | |
|           - refs/pull/731/head
 | |
|           - cb185f095fd3d9444e0aa605d3789e9e05f2a1e7
 | |
|     steps:
 | |
|       -
 | |
|         name: Checkout
 | |
|         uses: actions/checkout@v3
 | |
|       -
 | |
|         name: Set up Docker Buildx
 | |
|         uses: ./
 | |
|         with:
 | |
|           version: https://github.com/docker/buildx.git#${{ matrix.ref }}
 | |
|       -
 | |
|         name: Create Dockerfile
 | |
|         run: |
 | |
|           cat > ./Dockerfile <<EOL
 | |
|           FROM alpine
 | |
|           EOL
 | |
|       -
 | |
|         name: Build
 | |
|         uses: docker/build-push-action@master
 | |
|         with:
 | |
|           context: .
 | |
| 
 | |
|   standalone-cmd:
 | |
|     runs-on: ubuntu-latest
 | |
|     steps:
 | |
|       -
 | |
|         name: Checkout
 | |
|         uses: actions/checkout@v3
 | |
|       -
 | |
|         name: Uninstall docker cli
 | |
|         run: |
 | |
|           sudo apt-get purge -y moby-cli moby-buildx
 | |
|       -
 | |
|         name: Set up Docker Buildx
 | |
|         uses: ./
 | |
|       -
 | |
|         name: Create Dockerfile
 | |
|         run: |
 | |
|           cat > ./Dockerfile <<EOL
 | |
|           FROM alpine
 | |
|           EOL
 | |
|       -
 | |
|         name: Build
 | |
|         run: |
 | |
|           buildx build .
 | |
| 
 | |
|   standalone-action:
 | |
|     runs-on: ubuntu-latest
 | |
|     steps:
 | |
|       -
 | |
|         name: Checkout
 | |
|         uses: actions/checkout@v3
 | |
|       -
 | |
|         name: Uninstall docker cli
 | |
|         run: |
 | |
|           sudo apt-get purge -y moby-cli moby-buildx
 | |
|       -
 | |
|         name: Set up Docker Buildx
 | |
|         uses: ./
 | |
|         with:
 | |
|           version: ${{ matrix.buildx-version }}
 | |
|       -
 | |
|         name: Create Dockerfile
 | |
|         run: |
 | |
|           cat > ./Dockerfile <<EOL
 | |
|           FROM alpine
 | |
|           EOL
 | |
|       -
 | |
|         name: Build
 | |
|         uses: docker/build-push-action@master
 | |
|         with:
 | |
|           context: .
 | |
| 
 | |
|   standalone-install-error:
 | |
|     runs-on: ubuntu-latest
 | |
|     steps:
 | |
|       -
 | |
|         name: Checkout
 | |
|         uses: actions/checkout@v3
 | |
|       -
 | |
|         name: Uninstall docker cli
 | |
|         run: |
 | |
|           sudo apt-get purge -y moby-cli moby-buildx
 | |
|       -
 | |
|         name: Set up Docker Buildx
 | |
|         id: buildx
 | |
|         continue-on-error: true
 | |
|         uses: ./
 | |
|         with:
 | |
|           install: true
 | |
|       -
 | |
|         name: Check
 | |
|         run: |
 | |
|           echo "${{ toJson(steps.buildx) }}"
 | |
|           if [ "${{ steps.buildx.outcome }}" != "failure" ] || [ "${{ steps.buildx.conclusion }}" != "success" ]; then
 | |
|             echo "::error::Should have failed"
 | |
|             exit 1
 | |
|           fi
 | |
| 
 | |
|   append:
 | |
|     runs-on: ubuntu-latest
 | |
|     steps:
 | |
|       -
 | |
|         name: Checkout
 | |
|         uses: actions/checkout@v3
 | |
|       -
 | |
|         name: Create dummy contexts
 | |
|         run: |
 | |
|           docker context create ctxbuilder2
 | |
|           docker context create ctxbuilder3
 | |
|       -
 | |
|         name: Set up Docker Buildx
 | |
|         id: buildx
 | |
|         uses: ./
 | |
|         with:
 | |
|           append: |
 | |
|             - name: builder2
 | |
|               endpoint: ctxbuilder2
 | |
|               platforms: linux/amd64
 | |
|               driver-opts:
 | |
|                 - image=moby/buildkit:master
 | |
|                 - network=host
 | |
|             - endpoint: ctxbuilder3
 | |
|               platforms: linux/arm64
 | |
|       -
 | |
|         name: List builder platforms
 | |
|         run: echo ${{ steps.buildx.outputs.platforms }}
 | |
| 
 | |
|   platforms:
 | |
|     runs-on: ubuntu-latest
 | |
|     steps:
 | |
|       -
 | |
|         name: Checkout
 | |
|         uses: actions/checkout@v3
 | |
|       -
 | |
|         name: Set up QEMU
 | |
|         uses: docker/setup-qemu-action@v2
 | |
|       -
 | |
|         name: Set up Docker Buildx
 | |
|         uses: ./
 | |
|         with:
 | |
|           platforms: linux/amd64
 | 
