mirror of
				https://github.com/docker/setup-buildx-action.git
				synced 2025-10-31 19:24:20 +08:00 
			
		
		
		
	Remove aliases created by buildx when installing by default
If the action is configured to install buildx by default using the input then docker buildx sets up docker build as an alias for buildx making all docker build calls use the buildx builder instead of traditional builders. The action didn't perform cleanup in this case to uninstall the aliases which meant that any future workflows running on same GitHub Actions runner would get the buildx builders even if it did not explicitly request it. This commit tracks if the aliases were installed and removes them during post step of the action if so. Signed-off-by: Ashhar Hasan <hashhar_dev@outlook.com>
This commit is contained in:
		
							parent
							
								
									e600775e52
								
							
						
					
					
						commit
						4ba329ef89
					
				
							
								
								
									
										13
									
								
								src/main.ts
									
									
									
									
									
								
							
							
						
						
									
										13
									
								
								src/main.ts
									
									
									
									
									
								
							| @ -179,6 +179,7 @@ actionsToolkit.run( | ||||
|         throw new Error(`Cannot set buildx as default builder without the Docker CLI`); | ||||
|       } | ||||
|       await core.group(`Setting buildx as default builder`, async () => { | ||||
|         stateHelper.setBuildxIsDefaultBuilder(true); | ||||
|         const installCmd = await toolkit.buildx.getCommand(['install']); | ||||
|         await Exec.getExecOutput(installCmd.command, installCmd.args, { | ||||
|           ignoreReturnCode: true | ||||
| @ -279,5 +280,17 @@ actionsToolkit.run( | ||||
|         fs.rmSync(stateHelper.certsDir, {recursive: true}); | ||||
|       }); | ||||
|     } | ||||
| 
 | ||||
|     if (stateHelper.buildxIsDefaultBuilder) { | ||||
|       await core.group(`Restoring default builder`, async () => { | ||||
|         await Exec.getExecOutput('docker', ['buildx', 'uninstall'], { | ||||
|           ignoreReturnCode: true | ||||
|         }).then(res => { | ||||
|           if (res.stderr.length > 0 && res.exitCode != 0) { | ||||
|             core.warning(`${res.stderr.match(/(.*)\s*$/)?.[0]?.trim() ?? 'unknown error'}`); | ||||
|           } | ||||
|         }); | ||||
|       }); | ||||
|     } | ||||
|   } | ||||
| ); | ||||
|  | ||||
| @ -8,6 +8,7 @@ export const containerName = process.env['STATE_containerName'] || ''; | ||||
| export const certsDir = process.env['STATE_certsDir'] || ''; | ||||
| export const tmpDockerContext = process.env['STATE_tmpDockerContext'] || ''; | ||||
| export const cleanup = /true/i.test(process.env['STATE_cleanup'] || ''); | ||||
| export const buildxIsDefaultBuilder = /true/i.test(process.env['STATE_buildxIsDefaultBuilder'] || ''); | ||||
| 
 | ||||
| export function setDebug(debug: string) { | ||||
|   core.saveState('isDebug', debug); | ||||
| @ -40,3 +41,7 @@ export function setTmpDockerContext(tmpDockerContext: string) { | ||||
| export function setCleanup(cleanup: boolean) { | ||||
|   core.saveState('cleanup', cleanup); | ||||
| } | ||||
| 
 | ||||
| export function setBuildxIsDefaultBuilder(buildxIsDefaultBuilder: boolean) { | ||||
|   core.saveState('buildxIsDefaultBuilder', buildxIsDefaultBuilder); | ||||
| } | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Ashhar Hasan
						Ashhar Hasan