Fix ref spec for default Git context

Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
This commit is contained in:
CrazyMax 2021-04-26 11:02:09 +02:00
parent c0c3e27be3
commit 19c07384dc
No known key found for this signature in database
GPG key ID: 3248E46B6BB8C7F7
3 changed files with 28 additions and 15 deletions

View file

@ -111,7 +111,7 @@ PejgXO0uIRolYQ3sz2tMGhx1MfBqH64=
-----END PGP PRIVATE KEY BLOCK-----`; -----END PGP PRIVATE KEY BLOCK-----`;
jest.spyOn(context, 'defaultContext').mockImplementation((): string => { jest.spyOn(context, 'defaultContext').mockImplementation((): string => {
return 'https://github.com/docker/build-push-action.git#test-jest'; return 'https://github.com/docker/build-push-action.git#refs/heads/test-jest';
}); });
jest.spyOn(context, 'tmpDir').mockImplementation((): string => { jest.spyOn(context, 'tmpDir').mockImplementation((): string => {
@ -161,7 +161,7 @@ describe('getArgs', () => {
'--build-arg', 'MY_ARG=val1,val2,val3', '--build-arg', 'MY_ARG=val1,val2,val3',
'--build-arg', 'ARG=val', '--build-arg', 'ARG=val',
'--iidfile', '/tmp/.docker-build-push-jest/iidfile', '--iidfile', '/tmp/.docker-build-push-jest/iidfile',
'https://github.com/docker/build-push-action.git#test-jest' 'https://github.com/docker/build-push-action.git#refs/heads/test-jest'
] ]
], ],
[ [
@ -175,7 +175,7 @@ describe('getArgs', () => {
'--tag', 'name/app:7.4', '--tag', 'name/app:7.4',
'--tag', 'name/app:latest', '--tag', 'name/app:latest',
'--iidfile', '/tmp/.docker-build-push-jest/iidfile', '--iidfile', '/tmp/.docker-build-push-jest/iidfile',
'https://github.com/docker/build-push-action.git#test-jest' 'https://github.com/docker/build-push-action.git#refs/heads/test-jest'
] ]
], ],
[ [
@ -244,13 +244,13 @@ describe('getArgs', () => {
'build', 'build',
'--output', '.', '--output', '.',
'--secret', 'id=GIT_AUTH_TOKEN,src=/tmp/.docker-build-push-jest/.tmpname-jest', '--secret', 'id=GIT_AUTH_TOKEN,src=/tmp/.docker-build-push-jest/.tmpname-jest',
'https://github.com/docker/build-push-action.git#test-jest' 'https://github.com/docker/build-push-action.git#refs/heads/test-jest'
] ]
], ],
[ [
'0.4.2', '0.4.2',
new Map<string, string>([ new Map<string, string>([
['context', 'https://github.com/docker/build-push-action.git#heads/master'], ['context', 'https://github.com/docker/build-push-action.git#refs/heads/master'],
['tag', 'localhost:5000/name/app:latest'], ['tag', 'localhost:5000/name/app:latest'],
['platforms', 'linux/amd64,linux/arm64'], ['platforms', 'linux/amd64,linux/arm64'],
['secrets', 'GIT_AUTH_TOKEN=abcdefghijklmno=0123456789'], ['secrets', 'GIT_AUTH_TOKEN=abcdefghijklmno=0123456789'],
@ -267,13 +267,13 @@ describe('getArgs', () => {
'--file', './test/Dockerfile', '--file', './test/Dockerfile',
'--builder', 'builder-git-context-2', '--builder', 'builder-git-context-2',
'--push', '--push',
'https://github.com/docker/build-push-action.git#heads/master' 'https://github.com/docker/build-push-action.git#refs/heads/master'
] ]
], ],
[ [
'0.4.2', '0.4.2',
new Map<string, string>([ new Map<string, string>([
['context', 'https://github.com/docker/build-push-action.git#heads/master'], ['context', 'https://github.com/docker/build-push-action.git#refs/heads/master'],
['tag', 'localhost:5000/name/app:latest'], ['tag', 'localhost:5000/name/app:latest'],
['platforms', 'linux/amd64,linux/arm64'], ['platforms', 'linux/amd64,linux/arm64'],
['secrets', `GIT_AUTH_TOKEN=abcdefghi,jklmno=0123456789 ['secrets', `GIT_AUTH_TOKEN=abcdefghi,jklmno=0123456789
@ -301,13 +301,13 @@ ccc"`],
'--file', './test/Dockerfile', '--file', './test/Dockerfile',
'--builder', 'builder-git-context-2', '--builder', 'builder-git-context-2',
'--push', '--push',
'https://github.com/docker/build-push-action.git#heads/master' 'https://github.com/docker/build-push-action.git#refs/heads/master'
] ]
], ],
[ [
'0.4.2', '0.4.2',
new Map<string, string>([ new Map<string, string>([
['context', 'https://github.com/docker/build-push-action.git#heads/master'], ['context', 'https://github.com/docker/build-push-action.git#refs/heads/master'],
['tag', 'localhost:5000/name/app:latest'], ['tag', 'localhost:5000/name/app:latest'],
['platforms', 'linux/amd64,linux/arm64'], ['platforms', 'linux/amd64,linux/arm64'],
['secrets', `GIT_AUTH_TOKEN=abcdefghi,jklmno=0123456789 ['secrets', `GIT_AUTH_TOKEN=abcdefghi,jklmno=0123456789
@ -335,13 +335,13 @@ ccc`],
'--file', './test/Dockerfile', '--file', './test/Dockerfile',
'--builder', 'builder-git-context-2', '--builder', 'builder-git-context-2',
'--push', '--push',
'https://github.com/docker/build-push-action.git#heads/master' 'https://github.com/docker/build-push-action.git#refs/heads/master'
] ]
], ],
[ [
'0.5.1', '0.5.1',
new Map<string, string>([ new Map<string, string>([
['context', 'https://github.com/docker/build-push-action.git#heads/master'], ['context', 'https://github.com/docker/build-push-action.git#refs/heads/master'],
['tag', 'localhost:5000/name/app:latest'], ['tag', 'localhost:5000/name/app:latest'],
['secret-files', `MY_SECRET=${path.join(__dirname, 'fixtures', 'secret.txt').split(path.sep).join(path.posix.sep)}`], ['secret-files', `MY_SECRET=${path.join(__dirname, 'fixtures', 'secret.txt').split(path.sep).join(path.posix.sep)}`],
['file', './test/Dockerfile'], ['file', './test/Dockerfile'],
@ -358,7 +358,7 @@ ccc`],
'--builder', 'builder-git-context-2', '--builder', 'builder-git-context-2',
'--network', 'host', '--network', 'host',
'--push', '--push',
'https://github.com/docker/build-push-action.git#heads/master' 'https://github.com/docker/build-push-action.git#refs/heads/master'
] ]
] ]
])( ])(

10
dist/index.js generated vendored
View file

@ -13013,9 +13013,15 @@ const github = __importStar(__webpack_require__(438));
const buildx = __importStar(__webpack_require__(295)); const buildx = __importStar(__webpack_require__(295));
let _defaultContext, _tmpDir; let _defaultContext, _tmpDir;
function defaultContext() { function defaultContext() {
var _a, _b;
if (!_defaultContext) { if (!_defaultContext) {
_defaultContext = `${process.env.GITHUB_SERVER_URL || 'https://github.com'}/${github.context.repo.owner}/${github.context.repo.repo}.git#${(_b = (_a = github.context) === null || _a === void 0 ? void 0 : _a.ref) === null || _b === void 0 ? void 0 : _b.replace(/^refs\//, '')}`; let ref = github.context.ref;
if (github.context.sha && ref && !ref.startsWith('refs/')) {
ref = `refs/heads/${github.context.ref}`;
}
if (github.context.sha && !ref.startsWith(`refs/pull/`)) {
ref = github.context.sha;
}
_defaultContext = `${process.env.GITHUB_SERVER_URL || 'https://github.com'}/${github.context.repo.owner}/${github.context.repo.repo}.git#${ref}`;
} }
return _defaultContext; return _defaultContext;
} }

View file

@ -38,9 +38,16 @@ export interface Inputs {
export function defaultContext(): string { export function defaultContext(): string {
if (!_defaultContext) { if (!_defaultContext) {
let ref = github.context.ref;
if (github.context.sha && ref && !ref.startsWith('refs/')) {
ref = `refs/heads/${github.context.ref}`;
}
if (github.context.sha && !ref.startsWith(`refs/pull/`)) {
ref = github.context.sha;
}
_defaultContext = `${process.env.GITHUB_SERVER_URL || 'https://github.com'}/${github.context.repo.owner}/${ _defaultContext = `${process.env.GITHUB_SERVER_URL || 'https://github.com'}/${github.context.repo.owner}/${
github.context.repo.repo github.context.repo.repo
}.git#${github.context?.ref?.replace(/^refs\//, '')}`; }.git#${ref}`;
} }
return _defaultContext; return _defaultContext;
} }