Modify image built message (#86)

Signed-off-by: divyansh42 <diagrawa@redhat.com>
This commit is contained in:
Divyanshu Agrawal 2021-11-18 20:03:42 +05:30 committed by GitHub
parent 3ffbc5da4f
commit 72b90216e8
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 18 additions and 14 deletions

2
dist/index.js vendored

File diff suppressed because one or more lines are too long

2
dist/index.js.map vendored

File diff suppressed because one or more lines are too long

View file

@ -58,27 +58,24 @@ export async function run(): Promise<void> {
const archs = getArch(); const archs = getArch();
const platforms = getPlatform(); const platforms = getPlatform();
// core.debug(`Archs ---> ${archs.toString()}`);
// core.debug(`Platforms ---> ${platforms.toString()}`);
if ((archs.length > 0) && (platforms.length > 0)) { if ((archs.length > 0) && (platforms.length > 0)) {
throw new Error("The --platform option may not be used in combination with the --arch option."); throw new Error("The --platform option may not be used in combination with the --arch option.");
} }
const builtImage = [];
if (containerFiles.length !== 0) { if (containerFiles.length !== 0) {
await doBuildUsingContainerFiles(cli, newImage, workspace, containerFiles, useOCI, builtImage.push(...await doBuildUsingContainerFiles(cli, newImage, workspace, containerFiles, useOCI,
archs, platforms, labelsList); archs, platforms, labelsList));
} }
else { else {
if (platforms.length > 0) { if (platforms.length > 0) {
throw new Error("The --platform option is not supported for builds without containerfiles."); throw new Error("The --platform option is not supported for builds without containerfiles.");
} }
await doBuildFromScratch(cli, newImage, useOCI, archs, labelsList); builtImage.push(...await doBuildFromScratch(cli, newImage, useOCI, archs, labelsList));
} }
if ((archs.length > 0) || (platforms.length > 0)) { if ((archs.length > 0) || (platforms.length > 0)) {
core.info(`Creating manifest with tag${tagsList.length !== 1 ? "s" : ""} "${tagsList.join(", ")}"`); core.info(`Creating manifest with tag${tagsList.length !== 1 ? "s" : ""} "${tagsList.join(", ")}"`);
const builtImage = [];
const builtManifest = []; const builtManifest = [];
for (const tag of tagsList) { for (const tag of tagsList) {
const manifestName = getFullImageName(image, tag); const manifestName = getFullImageName(image, tag);
@ -87,13 +84,11 @@ export async function run(): Promise<void> {
for (const arch of archs) { for (const arch of archs) {
const tagSuffix = removeIllegalCharacters(arch); const tagSuffix = removeIllegalCharacters(arch);
builtImage.push(`${newImage}-${tagSuffix}`);
await cli.manifestAdd(manifestName, `${newImage}-${tagSuffix}`); await cli.manifestAdd(manifestName, `${newImage}-${tagSuffix}`);
} }
for (const platform of platforms) { for (const platform of platforms) {
const tagSuffix = removeIllegalCharacters(platform); const tagSuffix = removeIllegalCharacters(platform);
builtImage.push(`${newImage}-${tagSuffix}`);
await cli.manifestAdd(manifestName, `${newImage}-${tagSuffix}`); await cli.manifestAdd(manifestName, `${newImage}-${tagSuffix}`);
} }
} }
@ -116,7 +111,7 @@ export async function run(): Promise<void> {
async function doBuildUsingContainerFiles( async function doBuildUsingContainerFiles(
cli: BuildahCli, newImage: string, workspace: string, containerFiles: string[], useOCI: boolean, archs: string[], cli: BuildahCli, newImage: string, workspace: string, containerFiles: string[], useOCI: boolean, archs: string[],
platforms: string[], labels: string[], platforms: string[], labels: string[],
): Promise<void> { ): Promise<string[]> {
if (containerFiles.length === 1) { if (containerFiles.length === 1) {
core.info(`Performing build from Containerfile`); core.info(`Performing build from Containerfile`);
} }
@ -137,7 +132,7 @@ async function doBuildUsingContainerFiles(
const lines = splitByNewline(inputExtraArgsStr); const lines = splitByNewline(inputExtraArgsStr);
buildahBudExtraArgs = lines.flatMap((line) => line.split(" ")).map((arg) => arg.trim()); buildahBudExtraArgs = lines.flatMap((line) => line.split(" ")).map((arg) => arg.trim());
} }
const builtImage = [];
// since multi arch image can not have same tag // since multi arch image can not have same tag
// therefore, appending arch/platform in the tag // therefore, appending arch/platform in the tag
if (archs.length > 0 || platforms.length > 0) { if (archs.length > 0 || platforms.length > 0) {
@ -147,6 +142,7 @@ async function doBuildUsingContainerFiles(
`${newImage}-${tagSuffix}`, context, containerFileAbsPaths, buildArgs, `${newImage}-${tagSuffix}`, context, containerFileAbsPaths, buildArgs,
useOCI, labels, layers, buildahBudExtraArgs, arch, undefined useOCI, labels, layers, buildahBudExtraArgs, arch, undefined
); );
builtImage.push(`${newImage}-${tagSuffix}`);
} }
for (const platform of platforms) { for (const platform of platforms) {
@ -155,6 +151,7 @@ async function doBuildUsingContainerFiles(
`${newImage}-${tagSuffix}`, context, containerFileAbsPaths, buildArgs, `${newImage}-${tagSuffix}`, context, containerFileAbsPaths, buildArgs,
useOCI, labels, layers, buildahBudExtraArgs, undefined, platform useOCI, labels, layers, buildahBudExtraArgs, undefined, platform
); );
builtImage.push(`${newImage}-${tagSuffix}`);
} }
} }
else { else {
@ -162,12 +159,15 @@ async function doBuildUsingContainerFiles(
newImage, context, containerFileAbsPaths, buildArgs, newImage, context, containerFileAbsPaths, buildArgs,
useOCI, labels, layers, buildahBudExtraArgs useOCI, labels, layers, buildahBudExtraArgs
); );
builtImage.push(newImage);
} }
return builtImage;
} }
async function doBuildFromScratch( async function doBuildFromScratch(
cli: BuildahCli, newImage: string, useOCI: boolean, archs: string[], labels: string[], cli: BuildahCli, newImage: string, useOCI: boolean, archs: string[], labels: string[],
): Promise<void> { ): Promise<string[]> {
core.info(`Performing build from scratch`); core.info(`Performing build from scratch`);
const baseImage = core.getInput(Inputs.BASE_IMAGE, { required: true }); const baseImage = core.getInput(Inputs.BASE_IMAGE, { required: true });
@ -180,6 +180,7 @@ async function doBuildFromScratch(
const container = await cli.from(baseImage); const container = await cli.from(baseImage);
const containerId = container.output.replace("\n", ""); const containerId = container.output.replace("\n", "");
const builtImage = [];
if (archs.length > 0) { if (archs.length > 0) {
for (const arch of archs) { for (const arch of archs) {
const tagSuffix = removeIllegalCharacters(arch); const tagSuffix = removeIllegalCharacters(arch);
@ -194,6 +195,7 @@ async function doBuildFromScratch(
await cli.config(containerId, newImageConfig); await cli.config(containerId, newImageConfig);
await cli.copy(containerId, content); await cli.copy(containerId, content);
await cli.commit(containerId, `${newImage}-${tagSuffix}`, useOCI); await cli.commit(containerId, `${newImage}-${tagSuffix}`, useOCI);
builtImage.push(`${newImage}-${tagSuffix}`);
} }
} }
else { else {
@ -207,8 +209,10 @@ async function doBuildFromScratch(
await cli.config(containerId, newImageConfig); await cli.config(containerId, newImageConfig);
await cli.copy(containerId, content); await cli.copy(containerId, content);
await cli.commit(containerId, newImage, useOCI); await cli.commit(containerId, newImage, useOCI);
builtImage.push(newImage);
} }
return builtImage;
} }
run().catch(core.setFailed); run().catch(core.setFailed);