mirror of
				https://github.com/docker/setup-buildx-action.git
				synced 2025-11-04 06:34:19 +08:00 
			
		
		
		
	Bumps [crazy-max/ghaction-dump-context](https://github.com/crazy-max/ghaction-dump-context) from 1 to 2. - [Release notes](https://github.com/crazy-max/ghaction-dump-context/releases) - [Changelog](https://github.com/crazy-max/ghaction-dump-context/blob/master/CHANGELOG.md) - [Commits](https://github.com/crazy-max/ghaction-dump-context/compare/v1...v2) --- updated-dependencies: - dependency-name: crazy-max/ghaction-dump-context dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
		
			
				
	
	
		
			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@v2
 | 
						|
 | 
						|
  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
 |