mirror of
				https://github.com/docker/login-action.git
				synced 2025-10-31 01:40:11 +08:00 
			
		
		
		
	Refactor
This commit is contained in:
		
							parent
							
								
									26618cd0df
								
							
						
					
					
						commit
						2c57607524
					
				
							
								
								
									
										217
									
								
								dist/index.js
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										217
									
								
								dist/index.js
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -1074,9 +1074,8 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge | |||||||
| Object.defineProperty(exports, "__esModule", { value: true }); | Object.defineProperty(exports, "__esModule", { value: true }); | ||||||
| const os = __importStar(__webpack_require__(87)); | const os = __importStar(__webpack_require__(87)); | ||||||
| const core = __importStar(__webpack_require__(470)); | const core = __importStar(__webpack_require__(470)); | ||||||
| const exec = __importStar(__webpack_require__(986)); | const context_1 = __webpack_require__(482); | ||||||
| const ecr = __importStar(__webpack_require__(34)); | const docker = __importStar(__webpack_require__(231)); | ||||||
| const execm = __importStar(__webpack_require__(807)); |  | ||||||
| const stateHelper = __importStar(__webpack_require__(153)); | const stateHelper = __importStar(__webpack_require__(153)); | ||||||
| function run() { | function run() { | ||||||
|     return __awaiter(this, void 0, void 0, function* () { |     return __awaiter(this, void 0, void 0, function* () { | ||||||
| @ -1085,49 +1084,10 @@ function run() { | |||||||
|                 core.setFailed('Only supported on linux platform'); |                 core.setFailed('Only supported on linux platform'); | ||||||
|                 return; |                 return; | ||||||
|             } |             } | ||||||
|             const registry = core.getInput('registry'); |             let inputs = yield context_1.getInputs(); | ||||||
|             stateHelper.setRegistry(registry); |             stateHelper.setRegistry(inputs.registry); | ||||||
|             stateHelper.setLogout(core.getInput('logout')); |             stateHelper.setLogout(inputs.logout); | ||||||
|             const username = core.getInput('username'); |             yield docker.login(inputs.registry, inputs.username, inputs.password); | ||||||
|             const password = core.getInput('password', { required: true }); |  | ||||||
|             if (yield ecr.isECR(registry)) { |  | ||||||
|                 yield exec.exec('aws', ['--version']); |  | ||||||
|                 const ecrRegion = yield ecr.getRegion(registry); |  | ||||||
|                 process.env.AWS_ACCESS_KEY_ID = username; |  | ||||||
|                 process.env.AWS_SECRET_ACCESS_KEY = password; |  | ||||||
|                 core.info(`⬇️ Retrieving docker login command for ECR region ${ecrRegion}...`); |  | ||||||
|                 yield execm.exec('aws', ['ecr', 'get-login', '--region', ecrRegion, '--no-include-email'], true).then(res => { |  | ||||||
|                     if (res.stderr != '' && !res.success) { |  | ||||||
|                         throw new Error(res.stderr); |  | ||||||
|                     } |  | ||||||
|                     core.info(`🔑 Logging into ${registry}...`); |  | ||||||
|                     execm.exec(res.stdout, [], true).then(res => { |  | ||||||
|                         if (res.stderr != '' && !res.success) { |  | ||||||
|                             throw new Error(res.stderr); |  | ||||||
|                         } |  | ||||||
|                         core.info('🎉 Login Succeeded!'); |  | ||||||
|                     }); |  | ||||||
|                 }); |  | ||||||
|             } |  | ||||||
|             else { |  | ||||||
|                 let loginArgs = ['login', '--password', password]; |  | ||||||
|                 if (username) { |  | ||||||
|                     loginArgs.push('--username', username); |  | ||||||
|                 } |  | ||||||
|                 loginArgs.push(registry); |  | ||||||
|                 if (registry) { |  | ||||||
|                     core.info(`🔑 Logging into ${registry}...`); |  | ||||||
|                 } |  | ||||||
|                 else { |  | ||||||
|                     core.info(`🔑 Logging into DockerHub...`); |  | ||||||
|                 } |  | ||||||
|                 yield execm.exec('docker', loginArgs, true).then(res => { |  | ||||||
|                     if (res.stderr != '' && !res.success) { |  | ||||||
|                         throw new Error(res.stderr); |  | ||||||
|                     } |  | ||||||
|                     core.info('🎉 Login Succeeded!'); |  | ||||||
|                 }); |  | ||||||
|             } |  | ||||||
|         } |         } | ||||||
|         catch (error) { |         catch (error) { | ||||||
|             core.setFailed(error.message); |             core.setFailed(error.message); | ||||||
| @ -1139,11 +1099,7 @@ function logout() { | |||||||
|         if (!stateHelper.logout) { |         if (!stateHelper.logout) { | ||||||
|             return; |             return; | ||||||
|         } |         } | ||||||
|         yield execm.exec('docker', ['logout', stateHelper.registry], false).then(res => { |         yield docker.logout(stateHelper.registry); | ||||||
|             if (res.stderr != '' && !res.success) { |  | ||||||
|                 core.warning(res.stderr); |  | ||||||
|             } |  | ||||||
|         }); |  | ||||||
|     }); |     }); | ||||||
| } | } | ||||||
| if (!stateHelper.IsPost) { | if (!stateHelper.IsPost) { | ||||||
| @ -1156,6 +1112,114 @@ else { | |||||||
| 
 | 
 | ||||||
| /***/ }), | /***/ }), | ||||||
| 
 | 
 | ||||||
|  | /***/ 231: | ||||||
|  | /***/ (function(__unusedmodule, exports, __webpack_require__) { | ||||||
|  | 
 | ||||||
|  | "use strict"; | ||||||
|  | 
 | ||||||
|  | var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { | ||||||
|  |     if (k2 === undefined) k2 = k; | ||||||
|  |     Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); | ||||||
|  | }) : (function(o, m, k, k2) { | ||||||
|  |     if (k2 === undefined) k2 = k; | ||||||
|  |     o[k2] = m[k]; | ||||||
|  | })); | ||||||
|  | var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { | ||||||
|  |     Object.defineProperty(o, "default", { enumerable: true, value: v }); | ||||||
|  | }) : function(o, v) { | ||||||
|  |     o["default"] = v; | ||||||
|  | }); | ||||||
|  | var __importStar = (this && this.__importStar) || function (mod) { | ||||||
|  |     if (mod && mod.__esModule) return mod; | ||||||
|  |     var result = {}; | ||||||
|  |     if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); | ||||||
|  |     __setModuleDefault(result, mod); | ||||||
|  |     return result; | ||||||
|  | }; | ||||||
|  | var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { | ||||||
|  |     function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } | ||||||
|  |     return new (P || (P = Promise))(function (resolve, reject) { | ||||||
|  |         function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } | ||||||
|  |         function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } | ||||||
|  |         function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } | ||||||
|  |         step((generator = generator.apply(thisArg, _arguments || [])).next()); | ||||||
|  |     }); | ||||||
|  | }; | ||||||
|  | Object.defineProperty(exports, "__esModule", { value: true }); | ||||||
|  | exports.loginECR = exports.loginStandard = exports.logout = exports.login = void 0; | ||||||
|  | const exec = __importStar(__webpack_require__(986)); | ||||||
|  | const core = __importStar(__webpack_require__(470)); | ||||||
|  | const ecr = __importStar(__webpack_require__(34)); | ||||||
|  | const execm = __importStar(__webpack_require__(807)); | ||||||
|  | function login(registry, username, password) { | ||||||
|  |     return __awaiter(this, void 0, void 0, function* () { | ||||||
|  |         if (yield ecr.isECR(registry)) { | ||||||
|  |             yield loginECR(registry, username, password); | ||||||
|  |         } | ||||||
|  |         else { | ||||||
|  |             yield loginStandard(registry, username, password); | ||||||
|  |         } | ||||||
|  |     }); | ||||||
|  | } | ||||||
|  | exports.login = login; | ||||||
|  | function logout(registry) { | ||||||
|  |     return __awaiter(this, void 0, void 0, function* () { | ||||||
|  |         yield execm.exec('docker', ['logout', registry], false).then(res => { | ||||||
|  |             if (res.stderr != '' && !res.success) { | ||||||
|  |                 core.warning(res.stderr); | ||||||
|  |             } | ||||||
|  |         }); | ||||||
|  |     }); | ||||||
|  | } | ||||||
|  | exports.logout = logout; | ||||||
|  | function loginStandard(registry, username, password) { | ||||||
|  |     return __awaiter(this, void 0, void 0, function* () { | ||||||
|  |         let loginArgs = ['login', '--password', password]; | ||||||
|  |         if (username) { | ||||||
|  |             loginArgs.push('--username', username); | ||||||
|  |         } | ||||||
|  |         loginArgs.push(registry); | ||||||
|  |         if (registry) { | ||||||
|  |             core.info(`🔑 Logging into ${registry}...`); | ||||||
|  |         } | ||||||
|  |         else { | ||||||
|  |             core.info(`🔑 Logging into DockerHub...`); | ||||||
|  |         } | ||||||
|  |         yield execm.exec('docker', loginArgs, true).then(res => { | ||||||
|  |             if (res.stderr != '' && !res.success) { | ||||||
|  |                 throw new Error(res.stderr); | ||||||
|  |             } | ||||||
|  |             core.info('🎉 Login Succeeded!'); | ||||||
|  |         }); | ||||||
|  |     }); | ||||||
|  | } | ||||||
|  | exports.loginStandard = loginStandard; | ||||||
|  | function loginECR(registry, username, password) { | ||||||
|  |     return __awaiter(this, void 0, void 0, function* () { | ||||||
|  |         yield exec.exec('aws', ['--version']); | ||||||
|  |         const ecrRegion = yield ecr.getRegion(registry); | ||||||
|  |         process.env.AWS_ACCESS_KEY_ID = username; | ||||||
|  |         process.env.AWS_SECRET_ACCESS_KEY = password; | ||||||
|  |         core.info(`⬇️ Retrieving docker login command for ECR region ${ecrRegion}...`); | ||||||
|  |         yield execm.exec('aws', ['ecr', 'get-login', '--region', ecrRegion, '--no-include-email'], true).then(res => { | ||||||
|  |             if (res.stderr != '' && !res.success) { | ||||||
|  |                 throw new Error(res.stderr); | ||||||
|  |             } | ||||||
|  |             core.info(`🔑 Logging into ${registry}...`); | ||||||
|  |             execm.exec(res.stdout, [], true).then(res => { | ||||||
|  |                 if (res.stderr != '' && !res.success) { | ||||||
|  |                     throw new Error(res.stderr); | ||||||
|  |                 } | ||||||
|  |                 core.info('🎉 Login Succeeded!'); | ||||||
|  |             }); | ||||||
|  |         }); | ||||||
|  |     }); | ||||||
|  | } | ||||||
|  | exports.loginECR = loginECR; | ||||||
|  | //# sourceMappingURL=docker.js.map
 | ||||||
|  | 
 | ||||||
|  | /***/ }), | ||||||
|  | 
 | ||||||
| /***/ 357: | /***/ 357: | ||||||
| /***/ (function(module) { | /***/ (function(module) { | ||||||
| 
 | 
 | ||||||
| @ -1491,6 +1555,57 @@ exports.getState = getState; | |||||||
| 
 | 
 | ||||||
| /***/ }), | /***/ }), | ||||||
| 
 | 
 | ||||||
|  | /***/ 482: | ||||||
|  | /***/ (function(__unusedmodule, exports, __webpack_require__) { | ||||||
|  | 
 | ||||||
|  | "use strict"; | ||||||
|  | 
 | ||||||
|  | var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { | ||||||
|  |     if (k2 === undefined) k2 = k; | ||||||
|  |     Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); | ||||||
|  | }) : (function(o, m, k, k2) { | ||||||
|  |     if (k2 === undefined) k2 = k; | ||||||
|  |     o[k2] = m[k]; | ||||||
|  | })); | ||||||
|  | var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { | ||||||
|  |     Object.defineProperty(o, "default", { enumerable: true, value: v }); | ||||||
|  | }) : function(o, v) { | ||||||
|  |     o["default"] = v; | ||||||
|  | }); | ||||||
|  | var __importStar = (this && this.__importStar) || function (mod) { | ||||||
|  |     if (mod && mod.__esModule) return mod; | ||||||
|  |     var result = {}; | ||||||
|  |     if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); | ||||||
|  |     __setModuleDefault(result, mod); | ||||||
|  |     return result; | ||||||
|  | }; | ||||||
|  | var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { | ||||||
|  |     function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } | ||||||
|  |     return new (P || (P = Promise))(function (resolve, reject) { | ||||||
|  |         function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } | ||||||
|  |         function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } | ||||||
|  |         function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } | ||||||
|  |         step((generator = generator.apply(thisArg, _arguments || [])).next()); | ||||||
|  |     }); | ||||||
|  | }; | ||||||
|  | Object.defineProperty(exports, "__esModule", { value: true }); | ||||||
|  | exports.getInputs = void 0; | ||||||
|  | const core = __importStar(__webpack_require__(470)); | ||||||
|  | function getInputs() { | ||||||
|  |     return __awaiter(this, void 0, void 0, function* () { | ||||||
|  |         return { | ||||||
|  |             registry: core.getInput('registry'), | ||||||
|  |             username: core.getInput('username'), | ||||||
|  |             password: core.getInput('password', { required: true }), | ||||||
|  |             logout: core.getInput('logout') | ||||||
|  |         }; | ||||||
|  |     }); | ||||||
|  | } | ||||||
|  | exports.getInputs = getInputs; | ||||||
|  | //# sourceMappingURL=context.js.map
 | ||||||
|  | 
 | ||||||
|  | /***/ }), | ||||||
|  | 
 | ||||||
| /***/ 614: | /***/ 614: | ||||||
| /***/ (function(module) { | /***/ (function(module) { | ||||||
| 
 | 
 | ||||||
|  | |||||||
							
								
								
									
										17
									
								
								src/context.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								src/context.ts
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,17 @@ | |||||||
|  | import * as core from '@actions/core'; | ||||||
|  | 
 | ||||||
|  | export interface Inputs { | ||||||
|  |   registry: string; | ||||||
|  |   username: string; | ||||||
|  |   password: string; | ||||||
|  |   logout: string; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | export async function getInputs(): Promise<Inputs> { | ||||||
|  |   return { | ||||||
|  |     registry: core.getInput('registry'), | ||||||
|  |     username: core.getInput('username'), | ||||||
|  |     password: core.getInput('password', {required: true}), | ||||||
|  |     logout: core.getInput('logout') | ||||||
|  |   }; | ||||||
|  | } | ||||||
							
								
								
									
										61
									
								
								src/docker.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										61
									
								
								src/docker.ts
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,61 @@ | |||||||
|  | import * as exec from '@actions/exec'; | ||||||
|  | import * as core from '@actions/core'; | ||||||
|  | import * as ecr from './ecr'; | ||||||
|  | import * as execm from './exec'; | ||||||
|  | 
 | ||||||
|  | export async function login(registry: string, username: string, password: string): Promise<void> { | ||||||
|  |   if (await ecr.isECR(registry)) { | ||||||
|  |     await loginECR(registry, username, password); | ||||||
|  |   } else { | ||||||
|  |     await loginStandard(registry, username, password); | ||||||
|  |   } | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | export async function logout(registry: string): Promise<void> { | ||||||
|  |   await execm.exec('docker', ['logout', registry], false).then(res => { | ||||||
|  |     if (res.stderr != '' && !res.success) { | ||||||
|  |       core.warning(res.stderr); | ||||||
|  |     } | ||||||
|  |   }); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | export async function loginStandard(registry: string, username: string, password: string): Promise<void> { | ||||||
|  |   let loginArgs: Array<string> = ['login', '--password', password]; | ||||||
|  |   if (username) { | ||||||
|  |     loginArgs.push('--username', username); | ||||||
|  |   } | ||||||
|  |   loginArgs.push(registry); | ||||||
|  | 
 | ||||||
|  |   if (registry) { | ||||||
|  |     core.info(`🔑 Logging into ${registry}...`); | ||||||
|  |   } else { | ||||||
|  |     core.info(`🔑 Logging into DockerHub...`); | ||||||
|  |   } | ||||||
|  |   await execm.exec('docker', loginArgs, true).then(res => { | ||||||
|  |     if (res.stderr != '' && !res.success) { | ||||||
|  |       throw new Error(res.stderr); | ||||||
|  |     } | ||||||
|  |     core.info('🎉 Login Succeeded!'); | ||||||
|  |   }); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | export async function loginECR(registry: string, username: string, password: string): Promise<void> { | ||||||
|  |   await exec.exec('aws', ['--version']); | ||||||
|  |   const ecrRegion = await ecr.getRegion(registry); | ||||||
|  |   process.env.AWS_ACCESS_KEY_ID = username; | ||||||
|  |   process.env.AWS_SECRET_ACCESS_KEY = password; | ||||||
|  | 
 | ||||||
|  |   core.info(`⬇️ Retrieving docker login command for ECR region ${ecrRegion}...`); | ||||||
|  |   await execm.exec('aws', ['ecr', 'get-login', '--region', ecrRegion, '--no-include-email'], true).then(res => { | ||||||
|  |     if (res.stderr != '' && !res.success) { | ||||||
|  |       throw new Error(res.stderr); | ||||||
|  |     } | ||||||
|  |     core.info(`🔑 Logging into ${registry}...`); | ||||||
|  |     execm.exec(res.stdout, [], true).then(res => { | ||||||
|  |       if (res.stderr != '' && !res.success) { | ||||||
|  |         throw new Error(res.stderr); | ||||||
|  |       } | ||||||
|  |       core.info('🎉 Login Succeeded!'); | ||||||
|  |     }); | ||||||
|  |   }); | ||||||
|  | } | ||||||
							
								
								
									
										61
									
								
								src/main.ts
									
									
									
									
									
								
							
							
						
						
									
										61
									
								
								src/main.ts
									
									
									
									
									
								
							| @ -1,9 +1,7 @@ | |||||||
| import * as os from 'os'; | import * as os from 'os'; | ||||||
| import * as core from '@actions/core'; | import * as core from '@actions/core'; | ||||||
| import * as exec from '@actions/exec'; | import {getInputs, Inputs} from './context'; | ||||||
| import * as ecr from './ecr'; | import * as docker from './docker'; | ||||||
| import * as execm from './exec'; |  | ||||||
| 
 |  | ||||||
| import * as stateHelper from './state-helper'; | import * as stateHelper from './state-helper'; | ||||||
| 
 | 
 | ||||||
| async function run(): Promise<void> { | async function run(): Promise<void> { | ||||||
| @ -13,51 +11,10 @@ async function run(): Promise<void> { | |||||||
|       return; |       return; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     const registry: string = core.getInput('registry'); |     let inputs: Inputs = await getInputs(); | ||||||
|     stateHelper.setRegistry(registry); |     stateHelper.setRegistry(inputs.registry); | ||||||
|     stateHelper.setLogout(core.getInput('logout')); |     stateHelper.setLogout(inputs.logout); | ||||||
| 
 |     await docker.login(inputs.registry, inputs.username, inputs.password); | ||||||
|     const username: string = core.getInput('username'); |  | ||||||
|     const password: string = core.getInput('password', {required: true}); |  | ||||||
| 
 |  | ||||||
|     if (await ecr.isECR(registry)) { |  | ||||||
|       await exec.exec('aws', ['--version']); |  | ||||||
|       const ecrRegion = await ecr.getRegion(registry); |  | ||||||
|       process.env.AWS_ACCESS_KEY_ID = username; |  | ||||||
|       process.env.AWS_SECRET_ACCESS_KEY = password; |  | ||||||
| 
 |  | ||||||
|       core.info(`⬇️ Retrieving docker login command for ECR region ${ecrRegion}...`); |  | ||||||
|       await execm.exec('aws', ['ecr', 'get-login', '--region', ecrRegion, '--no-include-email'], true).then(res => { |  | ||||||
|         if (res.stderr != '' && !res.success) { |  | ||||||
|           throw new Error(res.stderr); |  | ||||||
|         } |  | ||||||
|         core.info(`🔑 Logging into ${registry}...`); |  | ||||||
|         execm.exec(res.stdout, [], true).then(res => { |  | ||||||
|           if (res.stderr != '' && !res.success) { |  | ||||||
|             throw new Error(res.stderr); |  | ||||||
|           } |  | ||||||
|           core.info('🎉 Login Succeeded!'); |  | ||||||
|         }); |  | ||||||
|       }); |  | ||||||
|     } else { |  | ||||||
|       let loginArgs: Array<string> = ['login', '--password', password]; |  | ||||||
|       if (username) { |  | ||||||
|         loginArgs.push('--username', username); |  | ||||||
|       } |  | ||||||
|       loginArgs.push(registry); |  | ||||||
| 
 |  | ||||||
|       if (registry) { |  | ||||||
|         core.info(`🔑 Logging into ${registry}...`); |  | ||||||
|       } else { |  | ||||||
|         core.info(`🔑 Logging into DockerHub...`); |  | ||||||
|       } |  | ||||||
|       await execm.exec('docker', loginArgs, true).then(res => { |  | ||||||
|         if (res.stderr != '' && !res.success) { |  | ||||||
|           throw new Error(res.stderr); |  | ||||||
|         } |  | ||||||
|         core.info('🎉 Login Succeeded!'); |  | ||||||
|       }); |  | ||||||
|     } |  | ||||||
|   } catch (error) { |   } catch (error) { | ||||||
|     core.setFailed(error.message); |     core.setFailed(error.message); | ||||||
|   } |   } | ||||||
| @ -67,11 +24,7 @@ async function logout(): Promise<void> { | |||||||
|   if (!stateHelper.logout) { |   if (!stateHelper.logout) { | ||||||
|     return; |     return; | ||||||
|   } |   } | ||||||
|   await execm.exec('docker', ['logout', stateHelper.registry], false).then(res => { |   await docker.logout(stateHelper.registry); | ||||||
|     if (res.stderr != '' && !res.success) { |  | ||||||
|       core.warning(res.stderr); |  | ||||||
|     } |  | ||||||
|   }); |  | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| if (!stateHelper.IsPost) { | if (!stateHelper.IsPost) { | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 CrazyMax
						CrazyMax