mirror of
https://github.com/docker/login-action.git
synced 2026-07-07 17:45:36 +00:00
Compare commits
8 Commits
de22160057
...
18e358fee3
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
18e358fee3 | ||
|
|
859a0ca3d3 | ||
|
|
4580814a5d | ||
|
|
6bd04e769a | ||
|
|
a0ff215914 | ||
|
|
699c7e9616 | ||
|
|
4b8e182de5 | ||
|
|
f71e6ddc95 |
@ -1,3 +0,0 @@
|
|||||||
/dist/**
|
|
||||||
/coverage/**
|
|
||||||
/node_modules/**
|
|
||||||
65
__tests__/main.test.ts
Normal file
65
__tests__/main.test.ts
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
import {expect, jest, test} from '@jest/globals';
|
||||||
|
import osm = require('os');
|
||||||
|
|
||||||
|
import {main} from '../src/main';
|
||||||
|
import * as docker from '../src/docker';
|
||||||
|
import * as stateHelper from '../src/state-helper';
|
||||||
|
|
||||||
|
test('errors without username and password', async () => {
|
||||||
|
jest.spyOn(osm, 'platform').mockImplementation(() => 'linux');
|
||||||
|
process.env['INPUT_LOGOUT'] = 'true'; // default value
|
||||||
|
await expect(main()).rejects.toThrow(new Error('Username and password required'));
|
||||||
|
});
|
||||||
|
|
||||||
|
test('successful with username and password', async () => {
|
||||||
|
jest.spyOn(osm, 'platform').mockImplementation(() => 'linux');
|
||||||
|
const setRegistrySpy = jest.spyOn(stateHelper, 'setRegistry');
|
||||||
|
const setLogoutSpy = jest.spyOn(stateHelper, 'setLogout');
|
||||||
|
const dockerSpy = jest.spyOn(docker, 'login').mockImplementation(() => Promise.resolve());
|
||||||
|
|
||||||
|
const username = 'dbowie';
|
||||||
|
process.env[`INPUT_USERNAME`] = username;
|
||||||
|
|
||||||
|
const password = 'groundcontrol';
|
||||||
|
process.env[`INPUT_PASSWORD`] = password;
|
||||||
|
|
||||||
|
const ecr = 'auto';
|
||||||
|
process.env['INPUT_ECR'] = ecr;
|
||||||
|
|
||||||
|
const logout = false;
|
||||||
|
process.env['INPUT_LOGOUT'] = String(logout);
|
||||||
|
|
||||||
|
await main();
|
||||||
|
|
||||||
|
expect(setRegistrySpy).toHaveBeenCalledWith('');
|
||||||
|
expect(setLogoutSpy).toHaveBeenCalledWith(logout);
|
||||||
|
expect(dockerSpy).toHaveBeenCalledWith('', username, password, ecr);
|
||||||
|
});
|
||||||
|
|
||||||
|
test('calls docker login', async () => {
|
||||||
|
jest.spyOn(osm, 'platform').mockImplementation(() => 'linux');
|
||||||
|
const setRegistrySpy = jest.spyOn(stateHelper, 'setRegistry');
|
||||||
|
const setLogoutSpy = jest.spyOn(stateHelper, 'setLogout');
|
||||||
|
const dockerSpy = jest.spyOn(docker, 'login').mockImplementation(() => Promise.resolve());
|
||||||
|
|
||||||
|
const username = 'dbowie';
|
||||||
|
process.env[`INPUT_USERNAME`] = username;
|
||||||
|
|
||||||
|
const password = 'groundcontrol';
|
||||||
|
process.env[`INPUT_PASSWORD`] = password;
|
||||||
|
|
||||||
|
const registry = 'ghcr.io';
|
||||||
|
process.env[`INPUT_REGISTRY`] = registry;
|
||||||
|
|
||||||
|
const ecr = 'auto';
|
||||||
|
process.env['INPUT_ECR'] = ecr;
|
||||||
|
|
||||||
|
const logout = true;
|
||||||
|
process.env['INPUT_LOGOUT'] = String(logout);
|
||||||
|
|
||||||
|
await main();
|
||||||
|
|
||||||
|
expect(setRegistrySpy).toHaveBeenCalledWith(registry);
|
||||||
|
expect(setLogoutSpy).toHaveBeenCalledWith(logout);
|
||||||
|
expect(dockerSpy).toHaveBeenCalledWith(registry, username, password, ecr);
|
||||||
|
});
|
||||||
@ -65,7 +65,7 @@ ENV RUNNER_TEMP=/tmp/github_runner
|
|||||||
ENV RUNNER_TOOL_CACHE=/tmp/github_tool_cache
|
ENV RUNNER_TOOL_CACHE=/tmp/github_tool_cache
|
||||||
RUN --mount=type=bind,target=.,rw \
|
RUN --mount=type=bind,target=.,rw \
|
||||||
--mount=type=cache,target=/src/node_modules \
|
--mount=type=cache,target=/src/node_modules \
|
||||||
yarn run test --coverage --coverageDirectory=/tmp/coverage
|
yarn run test --coverageDirectory=/tmp/coverage
|
||||||
|
|
||||||
FROM scratch AS test-coverage
|
FROM scratch AS test-coverage
|
||||||
COPY --from=test /tmp/coverage /
|
COPY --from=test /tmp/coverage /
|
||||||
|
|||||||
20
package.json
20
package.json
@ -4,13 +4,9 @@
|
|||||||
"main": "lib/main.js",
|
"main": "lib/main.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "ncc build src/main.ts --source-map --minify --license licenses.txt",
|
"build": "ncc build src/main.ts --source-map --minify --license licenses.txt",
|
||||||
"lint": "yarn run prettier && yarn run eslint",
|
"lint": "eslint src/**/*.ts __tests__/**/*.ts",
|
||||||
"format": "yarn run prettier:fix && yarn run eslint:fix",
|
"format": "eslint --fix src/**/*.ts __tests__/**/*.ts",
|
||||||
"eslint": "eslint --max-warnings=0 .",
|
"test": "jest --coverage",
|
||||||
"eslint:fix": "eslint --fix .",
|
|
||||||
"prettier": "prettier --check \"./**/*.ts\"",
|
|
||||||
"prettier:fix": "prettier --write \"./**/*.ts\"",
|
|
||||||
"test": "jest",
|
|
||||||
"all": "yarn run build && yarn run format && yarn test"
|
"all": "yarn run build && yarn run format && yarn test"
|
||||||
},
|
},
|
||||||
"repository": {
|
"repository": {
|
||||||
@ -22,8 +18,14 @@
|
|||||||
"docker",
|
"docker",
|
||||||
"login"
|
"login"
|
||||||
],
|
],
|
||||||
"author": "Docker Inc.",
|
"author": "Docker",
|
||||||
"license": "Apache-2.0",
|
"contributors": [
|
||||||
|
{
|
||||||
|
"name": "CrazyMax",
|
||||||
|
"url": "https://crazymax.dev"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@actions/core": "^1.10.0",
|
"@actions/core": "^1.10.0",
|
||||||
"@aws-sdk/client-ecr": "^3.398.0",
|
"@aws-sdk/client-ecr": "^3.398.0",
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user