mirror of
				https://github.com/docker/setup-buildx-action.git
				synced 2025-11-01 01:40:11 +08:00 
			
		
		
		
	Merge pull request #300 from crazy-max/cache-binary
cache-binary input to enable/disable caching binary to GHA cache backend
This commit is contained in:
		
						commit
						0d103c3126
					
				
							
								
								
									
										19
									
								
								.github/workflows/ci.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										19
									
								
								.github/workflows/ci.yml
									
									
									
									
										vendored
									
									
								
							| @ -563,3 +563,22 @@ jobs: | |||||||
|         uses: docker/build-push-action@master |         uses: docker/build-push-action@master | ||||||
|         with: |         with: | ||||||
|           context: . |           context: . | ||||||
|  | 
 | ||||||
|  |   cacheBinary: | ||||||
|  |     runs-on: ubuntu-latest | ||||||
|  |     strategy: | ||||||
|  |       fail-fast: false | ||||||
|  |       matrix: | ||||||
|  |         cache: | ||||||
|  |           - true | ||||||
|  |           - false | ||||||
|  |     steps: | ||||||
|  |       - | ||||||
|  |         name: Checkout | ||||||
|  |         uses: actions/checkout@v4 | ||||||
|  |       - | ||||||
|  |         name: Set up Docker Buildx | ||||||
|  |         uses: ./ | ||||||
|  |         with: | ||||||
|  |           version: v0.11.2 | ||||||
|  |           cache-binary: ${{ matrix.cache }} | ||||||
|  | |||||||
| @ -98,6 +98,7 @@ The following inputs can be used as `step.with` keys: | |||||||
| | `config`¹         | String   |                    | [BuildKit config file](https://docs.docker.com/engine/reference/commandline/buildx_create/#config)                                                                           | | | `config`¹         | String   |                    | [BuildKit config file](https://docs.docker.com/engine/reference/commandline/buildx_create/#config)                                                                           | | ||||||
| | `config-inline`¹  | String   |                    | Same as `config` but inline                                                                                                                                                  | | | `config-inline`¹  | String   |                    | Same as `config` but inline                                                                                                                                                  | | ||||||
| | `append`          | YAML     |                    | [Append additional nodes](docs/advanced/append-nodes.md) to the builder                                                                                                      | | | `append`          | YAML     |                    | [Append additional nodes](docs/advanced/append-nodes.md) to the builder                                                                                                      | | ||||||
|  | | `cache-binary`    | Bool     | `true`             | Cache buildx binary to GitHub Actions cache backend                                                                                                                          | | ||||||
| | `cleanup`         | Bool     | `true`             | Cleanup temp files and remove builder at the end of a job                                                                                                                    | | | `cleanup`         | Bool     | `true`             | Cleanup temp files and remove builder at the end of a job                                                                                                                    | | ||||||
| 
 | 
 | ||||||
| > * ¹ `config` and `config-inline` are mutually exclusive | > * ¹ `config` and `config-inline` are mutually exclusive | ||||||
|  | |||||||
| @ -32,6 +32,7 @@ describe('getCreateArgs', () => { | |||||||
|       new Map<string, string>([ |       new Map<string, string>([ | ||||||
|         ['install', 'false'], |         ['install', 'false'], | ||||||
|         ['use', 'true'], |         ['use', 'true'], | ||||||
|  |         ['cache-binary', 'true'], | ||||||
|         ['cleanup', 'true'], |         ['cleanup', 'true'], | ||||||
|       ]), |       ]), | ||||||
|       [ |       [ | ||||||
| @ -49,6 +50,7 @@ describe('getCreateArgs', () => { | |||||||
|         ['driver', 'docker'], |         ['driver', 'docker'], | ||||||
|         ['install', 'false'], |         ['install', 'false'], | ||||||
|         ['use', 'true'], |         ['use', 'true'], | ||||||
|  |         ['cache-binary', 'true'], | ||||||
|         ['cleanup', 'true'], |         ['cleanup', 'true'], | ||||||
|       ]), |       ]), | ||||||
|       [ |       [ | ||||||
| @ -66,6 +68,7 @@ describe('getCreateArgs', () => { | |||||||
|         ['install', 'false'], |         ['install', 'false'], | ||||||
|         ['use', 'false'], |         ['use', 'false'], | ||||||
|         ['driver-opts', 'image=moby/buildkit:master\nnetwork=host'], |         ['driver-opts', 'image=moby/buildkit:master\nnetwork=host'], | ||||||
|  |         ['cache-binary', 'true'], | ||||||
|         ['cleanup', 'true'], |         ['cleanup', 'true'], | ||||||
|       ]), |       ]), | ||||||
|       [ |       [ | ||||||
| @ -85,6 +88,7 @@ describe('getCreateArgs', () => { | |||||||
|         ['endpoint', 'tls://foo:1234'], |         ['endpoint', 'tls://foo:1234'], | ||||||
|         ['install', 'false'], |         ['install', 'false'], | ||||||
|         ['use', 'true'], |         ['use', 'true'], | ||||||
|  |         ['cache-binary', 'true'], | ||||||
|         ['cleanup', 'true'], |         ['cleanup', 'true'], | ||||||
|       ]), |       ]), | ||||||
|       [ |       [ | ||||||
| @ -104,6 +108,7 @@ describe('getCreateArgs', () => { | |||||||
|         ['endpoint', 'tls://foo:1234'], |         ['endpoint', 'tls://foo:1234'], | ||||||
|         ['install', 'false'], |         ['install', 'false'], | ||||||
|         ['use', 'true'], |         ['use', 'true'], | ||||||
|  |         ['cache-binary', 'true'], | ||||||
|         ['cleanup', 'true'], |         ['cleanup', 'true'], | ||||||
|       ]), |       ]), | ||||||
|       [ |       [ | ||||||
| @ -122,6 +127,7 @@ describe('getCreateArgs', () => { | |||||||
|         ['install', 'false'], |         ['install', 'false'], | ||||||
|         ['use', 'false'], |         ['use', 'false'], | ||||||
|         ['driver-opts', `"env.no_proxy=localhost,127.0.0.1,.mydomain"`], |         ['driver-opts', `"env.no_proxy=localhost,127.0.0.1,.mydomain"`], | ||||||
|  |         ['cache-binary', 'true'], | ||||||
|         ['cleanup', 'true'], |         ['cleanup', 'true'], | ||||||
|       ]), |       ]), | ||||||
|       [ |       [ | ||||||
| @ -139,6 +145,7 @@ describe('getCreateArgs', () => { | |||||||
|         ['install', 'false'], |         ['install', 'false'], | ||||||
|         ['use', 'false'], |         ['use', 'false'], | ||||||
|         ['platforms', 'linux/amd64\n"linux/arm64,linux/arm/v7"'], |         ['platforms', 'linux/amd64\n"linux/arm64,linux/arm/v7"'], | ||||||
|  |         ['cache-binary', 'true'], | ||||||
|         ['cleanup', 'true'], |         ['cleanup', 'true'], | ||||||
|       ]), |       ]), | ||||||
|       [ |       [ | ||||||
| @ -156,6 +163,7 @@ describe('getCreateArgs', () => { | |||||||
|         ['install', 'false'], |         ['install', 'false'], | ||||||
|         ['use', 'false'], |         ['use', 'false'], | ||||||
|         ['driver', 'unknown'], |         ['driver', 'unknown'], | ||||||
|  |         ['cache-binary', 'true'], | ||||||
|         ['cleanup', 'true'], |         ['cleanup', 'true'], | ||||||
|       ]), |       ]), | ||||||
|       [ |       [ | ||||||
| @ -199,6 +207,7 @@ describe('getAppendArgs', () => { | |||||||
|       new Map<string, string>([ |       new Map<string, string>([ | ||||||
|         ['install', 'false'], |         ['install', 'false'], | ||||||
|         ['use', 'true'], |         ['use', 'true'], | ||||||
|  |         ['cache-binary', 'true'], | ||||||
|         ['cleanup', 'true'], |         ['cleanup', 'true'], | ||||||
|       ]), |       ]), | ||||||
|       { |       { | ||||||
|  | |||||||
| @ -44,6 +44,10 @@ inputs: | |||||||
|   append: |   append: | ||||||
|     description: 'Append additional nodes to the builder' |     description: 'Append additional nodes to the builder' | ||||||
|     required: false |     required: false | ||||||
|  |   cache-binary: | ||||||
|  |     description: 'Cache buildx binary to GitHub Actions cache backend' | ||||||
|  |     default: 'true' | ||||||
|  |     required: false | ||||||
|   cleanup: |   cleanup: | ||||||
|     description: 'Cleanup temp files and remove builder at the end of a job' |     description: 'Cleanup temp files and remove builder at the end of a job' | ||||||
|     default: 'true' |     default: 'true' | ||||||
|  | |||||||
							
								
								
									
										2
									
								
								dist/index.js
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								dist/index.js
									
									
									
										generated
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										2
									
								
								dist/index.js.map
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								dist/index.js.map
									
									
									
										generated
									
									
										vendored
									
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							| @ -20,6 +20,7 @@ export interface Inputs { | |||||||
|   config: string; |   config: string; | ||||||
|   configInline: string; |   configInline: string; | ||||||
|   append: string; |   append: string; | ||||||
|  |   cacheBinary: boolean; | ||||||
|   cleanup: boolean; |   cleanup: boolean; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| @ -37,6 +38,7 @@ export async function getInputs(): Promise<Inputs> { | |||||||
|     config: core.getInput('config'), |     config: core.getInput('config'), | ||||||
|     configInline: core.getInput('config-inline'), |     configInline: core.getInput('config-inline'), | ||||||
|     append: core.getInput('append'), |     append: core.getInput('append'), | ||||||
|  |     cacheBinary: core.getBooleanInput('cache-binary'), | ||||||
|     cleanup: core.getBooleanInput('cleanup') |     cleanup: core.getBooleanInput('cleanup') | ||||||
|   }; |   }; | ||||||
| } | } | ||||||
|  | |||||||
| @ -38,11 +38,11 @@ actionsToolkit.run( | |||||||
|         throw new Error(`Cannot build from source without the Docker CLI`); |         throw new Error(`Cannot build from source without the Docker CLI`); | ||||||
|       } |       } | ||||||
|       await core.group(`Build buildx from source`, async () => { |       await core.group(`Build buildx from source`, async () => { | ||||||
|         toolPath = await toolkit.buildxInstall.build(inputs.version); |         toolPath = await toolkit.buildxInstall.build(inputs.version, !inputs.cacheBinary); | ||||||
|       }); |       }); | ||||||
|     } else if (!(await toolkit.buildx.isAvailable()) || inputs.version) { |     } else if (!(await toolkit.buildx.isAvailable()) || inputs.version) { | ||||||
|       await core.group(`Download buildx from GitHub Releases`, async () => { |       await core.group(`Download buildx from GitHub Releases`, async () => { | ||||||
|         toolPath = await toolkit.buildxInstall.download(inputs.version || 'latest'); |         toolPath = await toolkit.buildxInstall.download(inputs.version || 'latest', !inputs.cacheBinary); | ||||||
|       }); |       }); | ||||||
|     } |     } | ||||||
|     if (toolPath) { |     if (toolPath) { | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 CrazyMax
						CrazyMax