diff --git a/action.yml b/action.yml index cf1c580..106ae8f 100644 --- a/action.yml +++ b/action.yml @@ -70,7 +70,10 @@ inputs: ssh: description: "List of SSH agent socket or keys to expose to the build" required: false - + trace-data: + description: "Flag to indicate whether link to dockerfile is added to image labels or not" + default: 'false' + required: false outputs: digest: description: 'Image content-addressable identifier also called a digest' diff --git a/dist/index.js b/dist/index.js index e266279..a945c4a 100644 --- a/dist/index.js +++ b/dist/index.js @@ -12083,20 +12083,16 @@ function getInputs(defaultContext) { cacheTo: yield getInputList('cache-to', true), secrets: yield getInputList('secrets', true), githubToken: core.getInput('github-token'), - ssh: yield getInputList('ssh') + ssh: yield getInputList('ssh'), + traceData: core.getInput('trace-data') || 'false' }; - if (userInputs.load == true || - userInputs.push == true || - userInputs.outputs.find(val => val.indexOf('type=image') > -1 || val.indexOf('type=registry') > -1)) { - //Add repo as source-label if not already supplied by user - const sourceLabelKey = 'org.opencontainers.image.source'; - if (userInputs.labels.find(val => val.startsWith(sourceLabelKey) == true) == null) { - const githubOwnerRepoUrl = defaultContext.split('#')[0]; - userInputs.labels.push(`${sourceLabelKey}=${githubOwnerRepoUrl}`); - } - //Add dockerfile path as label + if (userInputs.traceData == 'true' && //if user explictly asks to add traceData + (userInputs.load == true || + userInputs.push == true || + userInputs.outputs.find(val => val.indexOf('type=image') > -1 || val.indexOf('type=registry') > -1))) { + //Add link to dockerfile as label let dockerfilePath = userInputs.file; - userInputs.labels.push(`dockerfile-path=${dockerfilePath}`); + userInputs.labels.push(`dockerfile-path=${defaultContext}/${dockerfilePath}`); } return userInputs; }); diff --git a/src/context.ts b/src/context.ts index c626983..dcf266f 100644 --- a/src/context.ts +++ b/src/context.ts @@ -73,24 +73,19 @@ export async function getInputs(defaultContext: string): Promise { cacheTo: await getInputList('cache-to', true), secrets: await getInputList('secrets', true), githubToken: core.getInput('github-token'), - ssh: await getInputList('ssh') + ssh: await getInputList('ssh'), + traceData: core.getInput('trace-data') || 'false' }; if ( - userInputs.load == true || - userInputs.push == true || - userInputs.outputs.find(val => val.indexOf('type=image') > -1 || val.indexOf('type=registry') > -1) + userInputs.traceData == 'true' && //if user explictly asks to add traceData + (userInputs.load == true || + userInputs.push == true || + userInputs.outputs.find(val => val.indexOf('type=image') > -1 || val.indexOf('type=registry') > -1)) ) { - //Add repo as source-label if not already supplied by user - const sourceLabelKey = 'org.opencontainers.image.source'; - if (userInputs.labels.find(val => val.startsWith(sourceLabelKey) == true) == null) { - const githubOwnerRepoUrl = defaultContext.split('#')[0]; - userInputs.labels.push(`${sourceLabelKey}=${githubOwnerRepoUrl}`); - } - - //Add dockerfile path as label + //Add link to dockerfile as label let dockerfilePath = userInputs.file; - userInputs.labels.push(`dockerfile-path=${dockerfilePath}`); + userInputs.labels.push(`dockerfile-path=${defaultContext}/${dockerfilePath}`); } return userInputs;