Merge pull request #957 from crazy-max/warn-docker-config
warn if docker config can't be parsed
This commit is contained in:
		
						commit
						0a97817b6a
					
				
							
								
								
									
										17
									
								
								.github/workflows/ci.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										17
									
								
								.github/workflows/ci.yml
									
									
									
									
										vendored
									
									
								
							| @ -1013,6 +1013,23 @@ jobs: | |||||||
|           build-contexts: | |           build-contexts: | | ||||||
|             alpine=docker-image://localhost:5000/my-base-image:latest |             alpine=docker-image://localhost:5000/my-base-image:latest | ||||||
| 
 | 
 | ||||||
|  |   docker-config-malformed: | ||||||
|  |     runs-on: ubuntu-latest | ||||||
|  |     steps: | ||||||
|  |       - | ||||||
|  |         name: Checkout | ||||||
|  |         uses: actions/checkout@v4 | ||||||
|  |       - | ||||||
|  |         name: Set malformed docker config | ||||||
|  |         run: | | ||||||
|  |           mkdir -p ~/.docker | ||||||
|  |           echo 'foo_bar' >> ~/.docker/config.json | ||||||
|  |       - | ||||||
|  |         name: Build | ||||||
|  |         uses: ./ | ||||||
|  |         with: | ||||||
|  |           context: ./test | ||||||
|  | 
 | ||||||
|   proxy-docker-config: |   proxy-docker-config: | ||||||
|     runs-on: ubuntu-latest |     runs-on: ubuntu-latest | ||||||
|     services: |     services: | ||||||
|  | |||||||
							
								
								
									
										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
											
										
									
								
							
							
								
								
									
										21
									
								
								src/main.ts
									
									
									
									
									
								
							
							
						
						
									
										21
									
								
								src/main.ts
									
									
									
									
									
								
							| @ -1,4 +1,5 @@ | |||||||
| import * as fs from 'fs'; | import * as fs from 'fs'; | ||||||
|  | import * as path from 'path'; | ||||||
| import * as stateHelper from './state-helper'; | import * as stateHelper from './state-helper'; | ||||||
| import * as core from '@actions/core'; | import * as core from '@actions/core'; | ||||||
| import * as actionsToolkit from '@docker/actions-toolkit'; | import * as actionsToolkit from '@docker/actions-toolkit'; | ||||||
| @ -8,6 +9,7 @@ import {Exec} from '@docker/actions-toolkit/lib/exec'; | |||||||
| import {GitHub} from '@docker/actions-toolkit/lib/github'; | import {GitHub} from '@docker/actions-toolkit/lib/github'; | ||||||
| import {Inputs as BuildxInputs} from '@docker/actions-toolkit/lib/buildx/inputs'; | import {Inputs as BuildxInputs} from '@docker/actions-toolkit/lib/buildx/inputs'; | ||||||
| import {Toolkit} from '@docker/actions-toolkit/lib/toolkit'; | import {Toolkit} from '@docker/actions-toolkit/lib/toolkit'; | ||||||
|  | import {ConfigFile} from '@docker/actions-toolkit/lib/types/docker'; | ||||||
| 
 | 
 | ||||||
| import * as context from './context'; | import * as context from './context'; | ||||||
| 
 | 
 | ||||||
| @ -34,9 +36,16 @@ actionsToolkit.run( | |||||||
|       } |       } | ||||||
|     }); |     }); | ||||||
| 
 | 
 | ||||||
|     const dockerConfig = await Docker.configFile(); |     await core.group(`Proxy configuration`, async () => { | ||||||
|     if (dockerConfig && dockerConfig.proxies) { |       let dockerConfig: ConfigFile | undefined; | ||||||
|       await core.group(`Proxy configuration found`, async () => { |       let dockerConfigMalformed = false; | ||||||
|  |       try { | ||||||
|  |         dockerConfig = await Docker.configFile(); | ||||||
|  |       } catch (e) { | ||||||
|  |         dockerConfigMalformed = true; | ||||||
|  |         core.warning(`Unable to parse config file ${path.join(Docker.configDir, 'config.json')}: ${e}`); | ||||||
|  |       } | ||||||
|  |       if (dockerConfig && dockerConfig.proxies) { | ||||||
|         for (const host in dockerConfig.proxies) { |         for (const host in dockerConfig.proxies) { | ||||||
|           let prefix = ''; |           let prefix = ''; | ||||||
|           if (dockerConfig.proxies.length > 1) { |           if (dockerConfig.proxies.length > 1) { | ||||||
| @ -47,8 +56,10 @@ actionsToolkit.run( | |||||||
|             core.info(`${prefix}${key}: ${dockerConfig.proxies[host][key]}`); |             core.info(`${prefix}${key}: ${dockerConfig.proxies[host][key]}`); | ||||||
|           } |           } | ||||||
|         } |         } | ||||||
|       }); |       } else if (!dockerConfigMalformed) { | ||||||
|     } |         core.info('No proxy configuration found'); | ||||||
|  |       } | ||||||
|  |     }); | ||||||
| 
 | 
 | ||||||
|     if (!(await toolkit.buildx.isAvailable())) { |     if (!(await toolkit.buildx.isAvailable())) { | ||||||
|       core.setFailed(`Docker buildx is required. See https://github.com/docker/setup-buildx-action to set up buildx.`); |       core.setFailed(`Docker buildx is required. See https://github.com/docker/setup-buildx-action to set up buildx.`); | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 CrazyMax
						CrazyMax