mirror of
				https://gitea.com/docker/build-push-action.git
				synced 2025-10-31 00:58:18 +07:00 
			
		
		
		
	Add driver and driver-opt inputs for setup-buildx
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
This commit is contained in:
		
							parent
							
								
									4bde7b156d
								
							
						
					
					
						commit
						5cec6ce786
					
				
							
								
								
									
										40
									
								
								.github/workflows/setup-buildx-ci.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										40
									
								
								.github/workflows/setup-buildx-ci.yml
									
									
									
									
										vendored
									
									
								
							| @ -15,7 +15,7 @@ on: | |||||||
|       - setup-buildx/** |       - setup-buildx/** | ||||||
| 
 | 
 | ||||||
| jobs: | jobs: | ||||||
|   build: |   main: | ||||||
|     runs-on: ubuntu-latest |     runs-on: ubuntu-latest | ||||||
|     strategy: |     strategy: | ||||||
|       fail-fast: false |       fail-fast: false | ||||||
| @ -62,6 +62,44 @@ jobs: | |||||||
|         run: | |         run: | | ||||||
|           docker build --help |           docker build --help | ||||||
| 
 | 
 | ||||||
|  |   driver: | ||||||
|  |     runs-on: ubuntu-latest | ||||||
|  |     strategy: | ||||||
|  |       fail-fast: false | ||||||
|  |       matrix: | ||||||
|  |         driver: | ||||||
|  |           - docker-container | ||||||
|  |           - docker | ||||||
|  |     steps: | ||||||
|  |       - | ||||||
|  |         name: Checkout | ||||||
|  |         uses: actions/checkout@v2.3.1 | ||||||
|  |       - | ||||||
|  |         name: Set up Docker Buildx | ||||||
|  |         id: buildx | ||||||
|  |         uses: ./setup-buildx/ | ||||||
|  |         with: | ||||||
|  |           driver: ${{ matrix.driver }} | ||||||
|  | 
 | ||||||
|  |   driver-opt: | ||||||
|  |     runs-on: ubuntu-latest | ||||||
|  |     strategy: | ||||||
|  |       fail-fast: false | ||||||
|  |       matrix: | ||||||
|  |         driver-opt: | ||||||
|  |           - image=moby/buildkit:latest | ||||||
|  |           - image=moby/buildkit:master | ||||||
|  |     steps: | ||||||
|  |       - | ||||||
|  |         name: Checkout | ||||||
|  |         uses: actions/checkout@v2.3.1 | ||||||
|  |       - | ||||||
|  |         name: Set up Docker Buildx | ||||||
|  |         id: buildx | ||||||
|  |         uses: ./setup-buildx/ | ||||||
|  |         with: | ||||||
|  |           driver-opt: ${{ matrix.driver-opt }} | ||||||
|  | 
 | ||||||
|   with-qemu: |   with-qemu: | ||||||
|     runs-on: ubuntu-latest |     runs-on: ubuntu-latest | ||||||
|     strategy: |     strategy: | ||||||
|  | |||||||
							
								
								
									
										2
									
								
								.github/workflows/setup-qemu-ci.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.github/workflows/setup-qemu-ci.yml
									
									
									
									
										vendored
									
									
								
							| @ -15,7 +15,7 @@ on: | |||||||
|       - setup-qemu/** |       - setup-qemu/** | ||||||
| 
 | 
 | ||||||
| jobs: | jobs: | ||||||
|   build: |   main: | ||||||
|     runs-on: ubuntu-latest |     runs-on: ubuntu-latest | ||||||
|     strategy: |     strategy: | ||||||
|       fail-fast: false |       fail-fast: false | ||||||
|  | |||||||
| @ -88,10 +88,12 @@ jobs: | |||||||
| 
 | 
 | ||||||
| Following inputs can be used as `step.with` keys | Following inputs can be used as `step.with` keys | ||||||
| 
 | 
 | ||||||
| | Name             | Type    | Default   | Description                        | | | Name             | Type    | Default             | Description                        | | ||||||
| |------------------|---------|-----------|------------------------------------| | |------------------|---------|---------------------|------------------------------------| | ||||||
| | `buildx-version` | String  | `latest`  | [Buildx](https://github.com/docker/buildx) version. Example: `v0.3.0` | | | `buildx-version` | String  | `latest`            | [Buildx](https://github.com/docker/buildx) version. e.g. `v0.3.0` | | ||||||
| | `install`        | Bool    | `false`   | Sets up `docker build` command as an alias to `docker buildx` | | | `driver`         | String  | `docker-container`  | Sets the [builder driver](https://github.com/docker/buildx#--driver-driver) to be used. | | ||||||
|  | | `driver-opt`     | String  |                     | Passes additional [driver-specific options](https://github.com/docker/buildx#--driver-opt-options). e.g. `image=moby/buildkit:master` | | ||||||
|  | | `install`        | Bool    | `false`             | Sets up `docker build` command as an alias to `docker buildx` | | ||||||
| 
 | 
 | ||||||
| ### outputs | ### outputs | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -8,9 +8,16 @@ branding: | |||||||
| 
 | 
 | ||||||
| inputs: | inputs: | ||||||
|   buildx-version: |   buildx-version: | ||||||
|     description: 'Buildx version. Example: v0.3.0' |     description: 'Buildx version. e.g. v0.3.0' | ||||||
|     default: 'latest' |     default: 'latest' | ||||||
|     required: false |     required: false | ||||||
|  |   driver: | ||||||
|  |     description: 'Sets the builder driver to be used' | ||||||
|  |     default: 'docker-container' | ||||||
|  |     required: false | ||||||
|  |   driver-opt: | ||||||
|  |     description: 'Passes additional driver-specific options. Eg. image=moby/buildkit:master' | ||||||
|  |     required: false | ||||||
|   install: |   install: | ||||||
|     description: 'Sets up docker build command as an alias to docker buildx' |     description: 'Sets up docker build command as an alias to docker buildx' | ||||||
|     default: 'false' |     default: 'false' | ||||||
|  | |||||||
							
								
								
									
										14
									
								
								setup-buildx/dist/index.js
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										14
									
								
								setup-buildx/dist/index.js
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -2492,21 +2492,27 @@ function run() { | |||||||
|                 return; |                 return; | ||||||
|             } |             } | ||||||
|             const buildxVer = core.getInput('buildx-version') || 'latest'; |             const buildxVer = core.getInput('buildx-version') || 'latest'; | ||||||
|  |             const driver = core.getInput('driver') || 'docker-container'; | ||||||
|  |             const driverOpt = core.getInput('driver-opt'); | ||||||
|             const install = /true/i.test(core.getInput('install')); |             const install = /true/i.test(core.getInput('install')); | ||||||
|             const dockerConfigHome = process.env.DOCKER_CONFIG || path.join(os.homedir(), '.docker'); |             const dockerConfigHome = process.env.DOCKER_CONFIG || path.join(os.homedir(), '.docker'); | ||||||
|             yield installer.buildx(buildxVer, dockerConfigHome); |             yield installer.buildx(buildxVer, dockerConfigHome); | ||||||
|             core.info('📣 Buildx info'); |             core.info('📣 Buildx info'); | ||||||
|             yield exec.exec('docker', ['buildx', 'version']); |             yield exec.exec('docker', ['buildx', 'version']); | ||||||
|             core.info('🔨 Creating a new builder instance...'); |             core.info('🔨 Creating a new builder instance...'); | ||||||
|             yield exec.exec('docker', [ |             let createArgs = [ | ||||||
|                 'buildx', |                 'buildx', | ||||||
|                 'create', |                 'create', | ||||||
|  |                 '--use', | ||||||
|                 '--name', |                 '--name', | ||||||
|                 `builder-${process.env.GITHUB_SHA}`, |                 `builder-${process.env.GITHUB_SHA}`, | ||||||
|                 '--driver', |                 '--driver', | ||||||
|                 'docker-container', |                 driver | ||||||
|                 '--use' |             ]; | ||||||
|             ]); |             if (driverOpt) { | ||||||
|  |                 createArgs.push('--driver-opt', driverOpt); | ||||||
|  |             } | ||||||
|  |             yield exec.exec('docker', createArgs); | ||||||
|             core.info('🏃 Booting builder...'); |             core.info('🏃 Booting builder...'); | ||||||
|             yield exec.exec('docker', ['buildx', 'inspect', '--bootstrap']); |             yield exec.exec('docker', ['buildx', 'inspect', '--bootstrap']); | ||||||
|             if (install) { |             if (install) { | ||||||
|  | |||||||
| @ -14,6 +14,8 @@ async function run(): Promise<void> { | |||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     const buildxVer: string = core.getInput('buildx-version') || 'latest'; |     const buildxVer: string = core.getInput('buildx-version') || 'latest'; | ||||||
|  |     const driver: string = core.getInput('driver') || 'docker-container'; | ||||||
|  |     const driverOpt: string = core.getInput('driver-opt'); | ||||||
|     const install: boolean = /true/i.test(core.getInput('install')); |     const install: boolean = /true/i.test(core.getInput('install')); | ||||||
|     const dockerConfigHome: string = process.env.DOCKER_CONFIG || path.join(os.homedir(), '.docker'); |     const dockerConfigHome: string = process.env.DOCKER_CONFIG || path.join(os.homedir(), '.docker'); | ||||||
|     await installer.buildx(buildxVer, dockerConfigHome); |     await installer.buildx(buildxVer, dockerConfigHome); | ||||||
| @ -22,15 +24,21 @@ async function run(): Promise<void> { | |||||||
|     await exec.exec('docker', ['buildx', 'version']); |     await exec.exec('docker', ['buildx', 'version']); | ||||||
| 
 | 
 | ||||||
|     core.info('🔨 Creating a new builder instance...'); |     core.info('🔨 Creating a new builder instance...'); | ||||||
|     await exec.exec('docker', [ |     let createArgs: Array<string> = [ | ||||||
|       'buildx', |       'buildx', | ||||||
|       'create', |       'create', | ||||||
|  |       '--use', | ||||||
|       '--name', |       '--name', | ||||||
|       `builder-${process.env.GITHUB_SHA}`, |       `builder-${process.env.GITHUB_SHA}`, | ||||||
|       '--driver', |       '--driver', | ||||||
|       'docker-container', |       driver | ||||||
|       '--use' |     ]; | ||||||
|     ]); | 
 | ||||||
|  |     if (driverOpt) { | ||||||
|  |       createArgs.push('--driver-opt', driverOpt); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     await exec.exec('docker', createArgs); | ||||||
| 
 | 
 | ||||||
|     core.info('🏃 Booting builder...'); |     core.info('🏃 Booting builder...'); | ||||||
|     await exec.exec('docker', ['buildx', 'inspect', '--bootstrap']); |     await exec.exec('docker', ['buildx', 'inspect', '--bootstrap']); | ||||||
|  | |||||||
| @ -48,8 +48,8 @@ Following inputs can be used as `step.with` keys | |||||||
| 
 | 
 | ||||||
| | Name             | Type    | Default                     | Description                        | | | Name             | Type    | Default                     | Description                        | | ||||||
| |------------------|---------|-----------------------------|------------------------------------| | |------------------|---------|-----------------------------|------------------------------------| | ||||||
| | `image`          | String  | `tonistiigi/binfmt:latest`  | QEMU static binaries Docker image. Example: [`tonistiigi/binfmt:latest`](https://hub.docker.com/r/tonistiigi/binfmt/tags) | | | `image`          | String  | `tonistiigi/binfmt:latest`  | QEMU static binaries Docker image. e.g. [`tonistiigi/binfmt:latest`](https://hub.docker.com/r/tonistiigi/binfmt/tags) | | ||||||
| | `platforms`      | String  | `all`                       | Platforms to install. Example: `arm64,riscv64,arm` | | | `platforms`      | String  | `all`                       | Platforms to install. e.g. `arm64,riscv64,arm` | | ||||||
| 
 | 
 | ||||||
| ### outputs | ### outputs | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -8,11 +8,11 @@ branding: | |||||||
| 
 | 
 | ||||||
| inputs: | inputs: | ||||||
|   image: |   image: | ||||||
|     description: 'QEMU static binaries Docker image. Example: tonistiigi/binfmt:latest' |     description: 'QEMU static binaries Docker image. e.g. tonistiigi/binfmt:latest' | ||||||
|     default: 'tonistiigi/binfmt:latest' |     default: 'tonistiigi/binfmt:latest' | ||||||
|     required: false |     required: false | ||||||
|   platforms: |   platforms: | ||||||
|     description: 'Platforms to install. Example: arm64,riscv64,arm' |     description: 'Platforms to install. e.g. arm64,riscv64,arm' | ||||||
|     default: 'all' |     default: 'all' | ||||||
|     required: false |     required: false | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user