Build the docker image only once and create tag link (#6496)

This commit is contained in:
Maurizio Vitale
2021-01-07 10:42:33 +00:00
committed by GitHub
parent 33ad43910b
commit 8d4408f2d6

View File

@@ -45,15 +45,15 @@ function buildImagePerform(args: PublishArgs, tag: string) {
logger.info(response); logger.info(response);
} }
function tagImagePerform(args: PublishArgs, tag: string) { function tagImagePerform(args: PublishArgs, tagImage: string, newTag: string) {
logger.info(`Perform docker tag... ${args.dockerRepo}:${tag} on ${args.dockerRepo}:${tag}`); logger.info(`Perform docker tag... ${args.dockerRepo}:${tagImage} on ${args.dockerRepo}:${newTag}`);
const response = exec('docker', ['tag', `${args.dockerRepo}:${tag}`, `${args.dockerRepo}:${tag}`], {}); const response = exec('docker', ['tag', `${args.dockerRepo}:${tagImage}`, `${args.dockerRepo}:${newTag}`], {});
logger.info(response); logger.info(response);
} }
function pushImagePerform(args: PublishArgs) { function pushImagePerform(args: PublishArgs) {
logger.info(`Perform docker push... ${args.dockerRepo}`); logger.info(`Perform docker push... ${args.dockerRepo} --all-tags`);
const response = exec('docker', ['push', `${args.dockerRepo}`], {}); const response = exec('docker', ['push', `${args.dockerRepo} --all-tags`], {});
logger.info(response); logger.info(response);
} }
@@ -76,10 +76,10 @@ function main(args) {
.option('--loginPassword [type]', ' password') .option('--loginPassword [type]', ' password')
.option('--loginUsername [type]', ' username') .option('--loginUsername [type]', ' username')
.option('--loginCheck [type]', 'perform login') .option('--loginCheck [type]', 'perform login')
.option('--dockerRepo [type]', 'docker repo') .requiredOption('--dockerRepo [type]', 'docker repo')
.option('--dockerTags [type]', ' tags') .requiredOption('--dockerTags [type]', ' tags')
.option('--buildArgs [type]', ' buildArgs') .requiredOption('--buildArgs [type]', ' buildArgs')
.option('--pathProject [type]', 'path ptojrct') .requiredOption('--pathProject [type]', 'path ptojrct')
.parse(process.argv); .parse(process.argv);
if (process.argv.includes('-h') || process.argv.includes('--help')) { if (process.argv.includes('-h') || process.argv.includes('--help')) {
@@ -91,14 +91,24 @@ function main(args) {
loginPerform(args); loginPerform(args);
} }
if (args.dockerTags !== undefined) { let mainTag;
args.dockerTags.split(',').forEach( (tag) => { if (args.dockerTags !== '') {
logger.info(`Analyzing tag:${tag} ...`); args.dockerTags.split(',').forEach( (tag, index) => {
buildImagePerform(args, tag); if (tag) {
tagImagePerform(args, tag); logger.info(`Analyzing tag:${tag} ...`);
pushImagePerform(args); if (index === 0) {
cleanImagePerform(args, tag); logger.info(`Build only once`);
logger.info(`tag:${tag} done`); mainTag = tag;
buildImagePerform(args, mainTag);
}
tagImagePerform(args, mainTag, tag);
logger.info(`tag:${tag} done`);
}
}); });
pushImagePerform(args);
logger.info(`Clean the image with tag:${mainTag} ...`);
cleanImagePerform(args, mainTag);
} else {
logger.error(`dockerTags cannot be empty ...`);
} }
} }