mirror of
https://github.com/docker/login-action.git
synced 2024-11-09 15:23:25 +01:00
Merge pull request #123 from crazy-max/ecr-input
ecr input to specify whether the given registry is ECR
This commit is contained in:
commit
d9927c4142
8 changed files with 29 additions and 15 deletions
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 a new issue