mirror of
				https://github.com/docker/login-action.git
				synced 2025-10-31 18:20:10 +08:00 
			
		
		
		
	ecr input to specify whether the given registry is ECR
Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
This commit is contained in:
		
							parent
							
								
									b20b9f5e31
								
							
						
					
					
						commit
						b9a4d91ee5
					
				
							
								
								
									
										2
									
								
								.github/workflows/ci.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.github/workflows/ci.yml
									
									
									
									
										vendored
									
									
								
							| @ -3,7 +3,7 @@ name: ci | ||||
| on: | ||||
|   workflow_dispatch: | ||||
|   schedule: | ||||
|     - cron: '0 10 * * *' # everyday at 10am | ||||
|     - cron: '0 10 * * *' | ||||
|   push: | ||||
|     branches: | ||||
|       - 'master' | ||||
|  | ||||
| @ -379,6 +379,7 @@ Following inputs can be used as `step.with` keys | ||||
| | `registry`       | String  |                             | Server address of Docker registry. If not set then will default to Docker Hub | | ||||
| | `username`       | String  |                             | Username used to log against the Docker registry | | ||||
| | `password`       | String  |                             | Password or personal access token used to log against the Docker registry | | ||||
| | `ecr`            | String  | `auto`                      | Specifies whether the given registry is ECR (`auto`, `true` or `false`) | | ||||
| | `logout`         | Bool    | `true`                      | Log out from the Docker registry at the end of a job | | ||||
| 
 | ||||
| ## Keep up-to-date with GitHub Dependabot | ||||
|  | ||||
| @ -34,6 +34,9 @@ test('successful with username and password', async () => { | ||||
|   const password: string = 'groundcontrol'; | ||||
|   process.env[`INPUT_PASSWORD`] = password; | ||||
| 
 | ||||
|   const ecr: string = 'auto'; | ||||
|   process.env['INPUT_ECR'] = ecr; | ||||
| 
 | ||||
|   const logout: boolean = false; | ||||
|   process.env['INPUT_LOGOUT'] = String(logout); | ||||
| 
 | ||||
| @ -41,7 +44,7 @@ test('successful with username and password', async () => { | ||||
| 
 | ||||
|   expect(setRegistrySpy).toHaveBeenCalledWith(''); | ||||
|   expect(setLogoutSpy).toHaveBeenCalledWith(logout); | ||||
|   expect(dockerSpy).toHaveBeenCalledWith('', username, password); | ||||
|   expect(dockerSpy).toHaveBeenCalledWith('', username, password, ecr); | ||||
| }); | ||||
| 
 | ||||
| test('calls docker login', async () => { | ||||
| @ -62,6 +65,9 @@ test('calls docker login', async () => { | ||||
|   const registry: string = 'ghcr.io'; | ||||
|   process.env[`INPUT_REGISTRY`] = registry; | ||||
| 
 | ||||
|   const ecr: string = 'auto'; | ||||
|   process.env['INPUT_ECR'] = ecr; | ||||
| 
 | ||||
|   const logout: boolean = true; | ||||
|   process.env['INPUT_LOGOUT'] = String(logout); | ||||
| 
 | ||||
| @ -69,5 +75,5 @@ test('calls docker login', async () => { | ||||
| 
 | ||||
|   expect(setRegistrySpy).toHaveBeenCalledWith(registry); | ||||
|   expect(setLogoutSpy).toHaveBeenCalledWith(logout); | ||||
|   expect(dockerSpy).toHaveBeenCalledWith(registry, username, password); | ||||
|   expect(dockerSpy).toHaveBeenCalledWith(registry, username, password, ecr); | ||||
| }); | ||||
|  | ||||
| @ -16,6 +16,10 @@ inputs: | ||||
|   password: | ||||
|     description: 'Password or personal access token used to log against the Docker registry' | ||||
|     required: false | ||||
|   ecr: | ||||
|     description: 'Specifies whether the given registry is ECR (auto, true or false)' | ||||
|     default: 'auto' | ||||
|     required: false | ||||
|   logout: | ||||
|     description: 'Log out from the Docker registry at the end of a job' | ||||
|     default: 'true' | ||||
|  | ||||
							
								
								
									
										13
									
								
								dist/index.js
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										13
									
								
								dist/index.js
									
									
									
										generated
									
									
										vendored
									
									
								
							| @ -160,6 +160,7 @@ function getInputs() { | ||||
|         registry: core.getInput('registry'), | ||||
|         username: core.getInput('username'), | ||||
|         password: core.getInput('password'), | ||||
|         ecr: core.getInput('ecr'), | ||||
|         logout: core.getBooleanInput('logout') | ||||
|     }; | ||||
| } | ||||
| @ -206,9 +207,9 @@ exports.loginECR = exports.loginStandard = exports.logout = exports.login = void | ||||
| const aws = __importStar(__nccwpck_require__(35981)); | ||||
| const core = __importStar(__nccwpck_require__(42186)); | ||||
| const exec = __importStar(__nccwpck_require__(71514)); | ||||
| function login(registry, username, password) { | ||||
| function login(registry, username, password, ecr) { | ||||
|     return __awaiter(this, void 0, void 0, function* () { | ||||
|         if (aws.isECR(registry)) { | ||||
|         if (/true/i.test(ecr) || (ecr == 'auto' && aws.isECR(registry))) { | ||||
|             yield loginECR(registry, username, password); | ||||
|         } | ||||
|         else { | ||||
| @ -328,10 +329,10 @@ const stateHelper = __importStar(__nccwpck_require__(88647)); | ||||
| function run() { | ||||
|     return __awaiter(this, void 0, void 0, function* () { | ||||
|         try { | ||||
|             const { registry, username, password, logout } = context.getInputs(); | ||||
|             stateHelper.setRegistry(registry); | ||||
|             stateHelper.setLogout(logout); | ||||
|             yield docker.login(registry, username, password); | ||||
|             const input = context.getInputs(); | ||||
|             stateHelper.setRegistry(input.registry); | ||||
|             stateHelper.setLogout(input.logout); | ||||
|             yield docker.login(input.registry, input.username, input.password, input.ecr); | ||||
|         } | ||||
|         catch (error) { | ||||
|             core.setFailed(error.message); | ||||
|  | ||||
| @ -4,6 +4,7 @@ export interface Inputs { | ||||
|   registry: string; | ||||
|   username: string; | ||||
|   password: string; | ||||
|   ecr: string; | ||||
|   logout: boolean; | ||||
| } | ||||
| 
 | ||||
| @ -12,6 +13,7 @@ export function getInputs(): Inputs { | ||||
|     registry: core.getInput('registry'), | ||||
|     username: core.getInput('username'), | ||||
|     password: core.getInput('password'), | ||||
|     ecr: core.getInput('ecr'), | ||||
|     logout: core.getBooleanInput('logout') | ||||
|   }; | ||||
| } | ||||
|  | ||||
| @ -2,8 +2,8 @@ import * as aws from './aws'; | ||||
| import * as core from '@actions/core'; | ||||
| import * as exec from '@actions/exec'; | ||||
| 
 | ||||
| export async function login(registry: string, username: string, password: string): Promise<void> { | ||||
|   if (aws.isECR(registry)) { | ||||
| export async function login(registry: string, username: string, password: string, ecr: string): Promise<void> { | ||||
|   if (/true/i.test(ecr) || (ecr == 'auto' && aws.isECR(registry))) { | ||||
|     await loginECR(registry, username, password); | ||||
|   } else { | ||||
|     await loginStandard(registry, username, password); | ||||
|  | ||||
| @ -5,10 +5,10 @@ import * as stateHelper from './state-helper'; | ||||
| 
 | ||||
| export async function run(): Promise<void> { | ||||
|   try { | ||||
|     const {registry, username, password, logout} = context.getInputs(); | ||||
|     stateHelper.setRegistry(registry); | ||||
|     stateHelper.setLogout(logout); | ||||
|     await docker.login(registry, username, password); | ||||
|     const input: context.Inputs = context.getInputs(); | ||||
|     stateHelper.setRegistry(input.registry); | ||||
|     stateHelper.setLogout(input.logout); | ||||
|     await docker.login(input.registry, input.username, input.password, input.ecr); | ||||
|   } catch (error) { | ||||
|     core.setFailed(error.message); | ||||
|   } | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 CrazyMax
						CrazyMax