diff --git a/lib/cli/scripts/exec.ts b/lib/cli/scripts/exec.ts index 71071fbbff..617c720471 100644 --- a/lib/cli/scripts/exec.ts +++ b/lib/cli/scripts/exec.ts @@ -29,7 +29,13 @@ export function exec(command: string, args?: string[], opts?: { cwd?: string }) const { status, error, stderr, stdout } = spawnSync(command, args, { ...opts }); if (status !== 0) { - logger.error(`Command failed: ${command} ${args.map((x) => JSON.stringify(x)).join(', ')}`); + + if (args) { + logger.error(`Command failed: ${command} ${args.map((x) => JSON.stringify(x)).join(', ')}`); + } else { + logger.error(`Command failed ${command}`); + } + if (error) { logger.error('Error: ' + (error ? error.message : 'undefined')); } else { diff --git a/lib/cli/scripts/npm-publish.ts b/lib/cli/scripts/npm-publish.ts index b0b546b67d..8d16039b39 100644 --- a/lib/cli/scripts/npm-publish.ts +++ b/lib/cli/scripts/npm-publish.ts @@ -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]); } } diff --git a/lib/cli/scripts/update-commit-sha.ts b/lib/cli/scripts/update-commit-sha.ts index c659416df2..80ca0b830c 100644 --- a/lib/cli/scripts/update-commit-sha.ts +++ b/lib/cli/scripts/update-commit-sha.ts @@ -27,7 +27,7 @@ export interface CommitArgs { skipGnu: boolean; } -function commitPerform(args: CommitArgs): string { +function getSha(args: CommitArgs): string { logger.info('Check commit sha...'); const gitPointer = args.pointer ? args.pointer : 'HEAD'; @@ -57,7 +57,7 @@ function main(args) { .version('0.1.0') .description('This command allows you to update the commit sha as part of the package.json.\n' + 'Your package.json must to have an existing property called "commit.\n\n' + - 'adf-cli update-commit-sha --pointer "HEAD~1" --pathProject "$(pwd)"\n\n' + + 'adf-cli update-commit-sha --pointer "HEAD~1" --pathProject "$(pwd)"\n\n' + 'adf-cli update-commit-sha --pathProject "$(pwd)" --skipGnu') .option('--pointer [type]', 'pointer') .option('--pathPackage [type]', 'pathPackage') @@ -68,7 +68,7 @@ function main(args) { program.outputHelp(); } - const sha = commitPerform(args); + const sha = getSha(args); replacePerform(args, sha); } diff --git a/scripts/travis/deploy/deploy.sh b/scripts/travis/deploy/deploy.sh index 01bca64fba..e00270cbdb 100755 --- a/scripts/travis/deploy/deploy.sh +++ b/scripts/travis/deploy/deploy.sh @@ -4,6 +4,6 @@ DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" cd $DIR/../../../ - node ./scripts/travis/deploy/move-dist-folder.js --base-href $TRAVIS_BUILD_NUMBER && (./scripts/travis/deploy/pr-publish.sh -n $TRAVIS_BUILD_NUMBER -r $REPO_DOCKER -u $USERNAME_DOCKER -p $PASSWORD_DOCKER || exit 1); + node ./scripts/travis/deploy/move-dist-folder.js --base-href $TRAVIS_BUILD_NUMBER && (./scripts/travis/deploy/pr-publish.sh -n $TRAVIS_BUILD_NUMBER -r $REPO_DOCKER -u $DOCKER_REPOSITORY_USER -p $DOCKER_REPOSITORY_PASSWORD || exit 1); (node --no-deprecation ./scripts/travis/deploy/pr-deploy.js -n $TRAVIS_BUILD_NUMBER -u $RANCHER_TOKEN -p $RANCHER_SECRET -s $REPO_RANCHER --image "docker:$REPO_DOCKER/adf/demo-shell:$TRAVIS_BUILD_NUMBER" --env $ENVIRONMENT_NAME -r $ENVIRONMENT_URL || exit 1); diff --git a/scripts/travis/deploy/pr-publish.sh b/scripts/travis/deploy/pr-publish.sh index 5fcfa30a12..04d8f72683 100755 --- a/scripts/travis/deploy/pr-publish.sh +++ b/scripts/travis/deploy/pr-publish.sh @@ -18,11 +18,11 @@ name_docker_repo(){ } username_docker_repo(){ - USERNAME_DOCKER=$1 + DOCKER_REPOSITORY_USER=$1 } password_docker_repo(){ - PASSWORD_DOCKER=$1 + DOCKER_REPOSITORY_PASSWORD=$1 } while [[ $1 == -* ]]; do @@ -43,7 +43,7 @@ echo "====== PUBLISH DOCKER IMAGE TAG pr $NAME_PR =====" docker build -t $DOCKER_REPO/adf/demo-shell:$NAME_PR --build-arg BUILD_NUMBER=$NAME_PR . echo "====== LOGIN =====" -docker login http://$DOCKER_REPO -p $PASSWORD_DOCKER -u $USERNAME_DOCKER +docker login http://$DOCKER_REPO -p $DOCKER_REPOSITORY_PASSWORD -u $DOCKER_REPOSITORY_USER docker push "$DOCKER_REPO/adf/demo-shell:$NAME_PR"