[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
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 46 additions and 21 deletions

View File

@ -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) {
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 {

View File

@ -41,10 +41,16 @@ const projects = [
'extensions'
];
function npmPublish(args: PublishArgs, project: string) {
async function npmPublish(args: PublishArgs, project: string) {
if (args.npmRegistry) {
changeRegistry(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) {
@ -56,6 +62,20 @@ function npmPublish(args: PublishArgs, project: string) {
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) {
@ -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]);
}
}

View File

@ -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';
@ -68,7 +68,7 @@ function main(args) {
program.outputHelp();
}
const sha = commitPerform(args);
const sha = getSha(args);
replacePerform(args, sha);
}

View File

@ -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);

View File

@ -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"