[ADF-5033] Improve publish script (#5297)

* check if npm package is already present before to publish

* fix lint and remove duplicate password

* fix script
This commit is contained in:
Eugenio Romano
2019-11-29 14:51:46 +00:00
committed by GitHub
parent 8541591816
commit cf83630573
5 changed files with 46 additions and 21 deletions

View File

@@ -41,23 +41,43 @@ const projects = [
'extensions'
];
function npmPublish(args: PublishArgs, project: string) {
async function npmPublish(args: PublishArgs, project: string) {
if (args.npmRegistry) {
changeRegistry(args, project);
}
logger.info(`Publishing lib ${project} to npm`);
const options = ['publish'];
if (args.tag) {
options.push('-tag');
options.push(`${args.tag}`);
}
const response = exec('npm', options, { cwd: path.resolve(`${args.pathProject}/lib/dist/${project}`) });
logger.info(response);
if (args.npmRegistry) {
removeNPMRC(args, project);
const version = require(`${args.pathProject}/lib/dist/${project}/package.json`).version;
const exist = npmCheckExist(project, version);
if (!exist) {
logger.info(`Publishing lib ${project} to npm`);
const options = ['publish'];
if (args.tag) {
options.push('-tag');
options.push(`${args.tag}`);
}
const response = exec('npm', options, { cwd: path.resolve(`${args.pathProject}/lib/dist/${project}`) });
logger.info(response);
if (args.npmRegistry) {
removeNPMRC(args, project);
}
await sleep(120000);
} else {
logger.info(`@alfresco/adf-${project}@${version} already exist`);
}
}
function npmCheckExist(project: string, version: string) {
logger.info(`Check if lib ${project} is already in npm`);
const exist = exec(`npm`, [`view`, `@alfresco/adf-${project}@${version} version`] );
return exist !== '';
}
function changeRegistry(args: PublishArgs, project: string) {
logger.info(`Change registry... `);
const folder = `${args.pathProject}/lib/dist/${project}`;
@@ -98,9 +118,8 @@ async function main(args) {
}
for (let i = 0; i < projects.length; i++) {
await sleep(120000);
logger.info(`========Analyzing project: ${projects[i]} ========`);
npmPublish(args, projects[i]);
await npmPublish(args, projects[i]);
}
}