From fd53531be7b39acbbf05989993736146f9009dff Mon Sep 17 00:00:00 2001 From: Eugenio Romano Date: Mon, 13 Jan 2020 16:06:59 +0100 Subject: [PATCH] unify rancher update strategy (#5367) * unify rancher update strategy * fix script * fix script --- .travis.yml | 25 +++----- scripts/rancher-update.sh | 61 ------------------- scripts/travis/deploy/deploy-pr.sh | 18 ++++++ scripts/travis/deploy/deploy.sh | 12 +++- ...branch.sh => get-docker-image-tag-name.sh} | 5 +- scripts/travis/deploy/move-dist-folder.js | 2 - scripts/travis/deploy/pr-publish.sh | 51 ---------------- .../{pr-deploy.js => rancher-pr-deploy.js} | 0 .../release/{release.sh => release-npm.sh} | 1 - 9 files changed, 40 insertions(+), 135 deletions(-) delete mode 100755 scripts/rancher-update.sh create mode 100755 scripts/travis/deploy/deploy-pr.sh rename scripts/travis/deploy/{tag-travis-branch.sh => get-docker-image-tag-name.sh} (58%) delete mode 100755 scripts/travis/deploy/pr-publish.sh rename scripts/travis/deploy/{pr-deploy.js => rancher-pr-deploy.js} (100%) rename scripts/travis/release/{release.sh => release-npm.sh} (99%) diff --git a/.travis.yml b/.travis.yml index 34e6cea8be..d1b5caaa64 100644 --- a/.travis.yml +++ b/.travis.yml @@ -68,10 +68,7 @@ jobs: script: - ./scripts/travis/build/build.sh || exit 1; - ./scripts/lint.sh || exit 1; - - ./scripts/travis/release/release.sh - - TAG_VERSION=$(./scripts/travis/deploy/tag-travis-branch.sh) - - echo "Running the docker with tag" $TAG_VERSION - - ./node_modules/@alfresco/adf-cli/bin/adf-cli docker-publish --loginCheck --loginUsername "$DOCKER_REPOSITORY_USER" --loginPassword "$DOCKER_REPOSITORY_PASSWORD" --loginRepo "$DOCKER_REPOSITORY_DOMAIN" --dockerRepo "$DOCKER_REPOSITORY" --dockerTags "$TAG_VERSION,$TAGS" --pathProject "$(pwd)" + - ./scripts/travis/release/release-npm.sh - stage: Unit test @@ -109,23 +106,21 @@ jobs: script: ./scripts/travis/e2e/process-services-cloud-e2e.sh + - stage: Update Rancher PR + name: Update Rancher PR + script: ./scripts/travis/deploy/deploy-pr.sh + + - stage: Update Rancher + name: Update Rancher + script: ./scripts/travis/deploy/deploy.sh + + - stage: Check bundle script: - ADF_VERSION=$(npm view @alfresco/adf-core@${TAG_NPM} version) - ./scripts/npm-check-bundles.sh -v ${ADF_VERSION} - - stage: Update Rancher - script: - - TAG_VERSION=$(./scripts/travis/deploy/tag-travis-branch.sh) - - echo "Update rancher with docker tag" $TAG_VERSION --url $REPO_RANCHER --environment_name $REPO_RANCHER_ADF_NAME - - ./scripts/rancher-update.sh --access_key $RANCHER_TOKEN --secret_key $RANCHER_SECRET --url $REPO_RANCHER --environment_name $REPO_RANCHER_ADF_NAME --image docker:$DOCKER_REPOSITORY:$TAG_VERSION - - - - stage: Update Rancher PR - name: Update Rancher PR - script: ./scripts/travis/deploy/deploy.sh - notifications: slack: on_pull_requests: false diff --git a/scripts/rancher-update.sh b/scripts/rancher-update.sh deleted file mode 100755 index 1c576fe706..0000000000 --- a/scripts/rancher-update.sh +++ /dev/null @@ -1,61 +0,0 @@ -#!/bin/bash - -show_help() { - echo "Usage: docker_publish.sh" - echo "" - echo "--access_key rancher access key" - echo "--secret_key rancher secret key" - echo "--url rancher_url" - echo "--environment_name service name to replace in rancher" - echo "--image image to gater and load in the service, example: docker:alfresco/demo-shell:latest" -} - -access_key(){ - ACCESSKEY=$1 -} - -secret_key(){ - SECRETKEY=$1 -} - -url(){ - RANCHERURL=$1 -} - -environment_name(){ - ENVIRONMENTNAME=$1 -} - -image_name(){ - IMAGE=$1 -} - -while [[ $1 == -* ]]; do - case "$1" in - -h|--help|-\?) show_help; exit 0;; - --access_key) access_key $2; shift 2;; - --secret_key) secret_key $2; shift 2;; - --url) url $2; shift 2;; - --environment_name) environment_name $2; shift 2;; - --image) image_name $2; shift 2;; - -*) echo "invalid option: $1" 1>&2; show_help; exit 1;; - esac -done - -docker pull etlweather/gaucho:alpine - -docker=$(which docker) - -echo "getting the id" - -ENVIRONMENTID=$($docker run --rm -e CATTLE_ACCESS_KEY=$ACCESSKEY \ - -e CATTLE_SECRET_KEY=$SECRETKEY \ - -e CATTLE_URL=$RANCHERURL \ - etlweather/gaucho:alpine id_of $ENVIRONMENTNAME) - -echo "id retrieved! is $ENVIRONMENTID" - -$docker run --rm -e CATTLE_ACCESS_KEY=$ACCESSKEY \ - -e CATTLE_SECRET_KEY=$SECRETKEY \ - -e CATTLE_URL=$RANCHERURL \ - etlweather/gaucho:alpine upgrade $ENVIRONMENTID --imageUuid $IMAGE --auto_complete true --timeout 600 diff --git a/scripts/travis/deploy/deploy-pr.sh b/scripts/travis/deploy/deploy-pr.sh new file mode 100755 index 0000000000..cd4b8d081c --- /dev/null +++ b/scripts/travis/deploy/deploy-pr.sh @@ -0,0 +1,18 @@ +#!/usr/bin/env bash + +DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" + +cd $DIR/../../../ + +# Get Tag Image +TAG_VERSION=$(./scripts/travis/deploy/get-docker-image-tag-name.sh) +echo "Running the docker with tag" $TAG_VERSION + +# Publish Image to docker +node ./scripts/travis/deploy/move-dist-folder.js --base-href $TRAVIS_BUILD_NUMBER +./node_modules/@alfresco/adf-cli/bin/adf-cli docker-publish --loginCheck --loginUsername "$DOCKER_REPOSITORY_USER" --loginPassword "$DOCKER_REPOSITORY_PASSWORD" --loginRepo "$DOCKER_REPOSITORY_DOMAIN" --dockerRepo "$DOCKER_REPOSITORY" --dockerTags "$TAG_VERSION" --pathProject "$(pwd)" + +echo "Update rancher with docker tag" $TAG_VERSION --url $REPO_RANCHER --environment_name $REPO_RANCHER_ADF_NAME + +# Deploy PR in Rancher env +(node --no-deprecation ./scripts/travis/deploy/rancher-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/deploy.sh b/scripts/travis/deploy/deploy.sh index e00270cbdb..e59f13a991 100755 --- a/scripts/travis/deploy/deploy.sh +++ b/scripts/travis/deploy/deploy.sh @@ -4,6 +4,14 @@ 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 $DOCKER_REPOSITORY_USER -p $DOCKER_REPOSITORY_PASSWORD || exit 1); +# Get Tag Image +TAG_VERSION=$(./scripts/travis/deploy/get-docker-image-tag-name.sh) +echo "Running the docker with tag" $TAG_VERSION - (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); +# Publish Image to docker +./node_modules/@alfresco/adf-cli/bin/adf-cli docker-publish --loginCheck --loginUsername "$DOCKER_REPOSITORY_USER" --loginPassword "$DOCKER_REPOSITORY_PASSWORD" --loginRepo "$DOCKER_REPOSITORY_DOMAIN" --dockerRepo "$DOCKER_REPOSITORY" --dockerTags "$TAG_VERSION,$TRAVIS_BRANCH" --pathProject "$(pwd)" + +echo "Update rancher with docker tag" $TAG_VERSION --url $REPO_RANCHER --environment_name $REPO_RANCHER_ADF_NAME + +# Deploy PR in Rancher env +(node --no-deprecation ./scripts/travis/deploy/rancher-pr-deploy.js -n $TRAVIS_BUILD_NUMBER -u $RANCHER_TOKEN -p $RANCHER_SECRET -s $REPO_RANCHER --image "docker:$REPO_DOCKER/adf/demo-shell:$TAG_VERSION" --env $ENVIRONMENT_NAME -r $ENVIRONMENT_URL || exit 1); diff --git a/scripts/travis/deploy/tag-travis-branch.sh b/scripts/travis/deploy/get-docker-image-tag-name.sh similarity index 58% rename from scripts/travis/deploy/tag-travis-branch.sh rename to scripts/travis/deploy/get-docker-image-tag-name.sh index 421ea35c16..46d8d7991e 100755 --- a/scripts/travis/deploy/tag-travis-branch.sh +++ b/scripts/travis/deploy/get-docker-image-tag-name.sh @@ -1,10 +1,9 @@ #!/usr/bin/env bash -if [[ $TRAVIS_BRANCH == "master" ]]; then +if [[ $TRAVIS_BRANCH == "master" ]]; then TAG_VERSION=$(grep -m1 version package.json | awk '{ print $2 }' | sed 's/[", ]//g') else - TAG_VERSION=$TRAVIS_BRANCH-$TRAVIS_BUILD_NUMBER + TAG_VERSION=$TRAVIS_BRANCH-$TRAVIS_BUILD_NUMBER fi; - echo $TAG_VERSION; diff --git a/scripts/travis/deploy/move-dist-folder.js b/scripts/travis/deploy/move-dist-folder.js index d4def6174b..bdcd1a4612 100755 --- a/scripts/travis/deploy/move-dist-folder.js +++ b/scripts/travis/deploy/move-dist-folder.js @@ -61,5 +61,3 @@ async function main() { } main(); - - diff --git a/scripts/travis/deploy/pr-publish.sh b/scripts/travis/deploy/pr-publish.sh deleted file mode 100755 index 04d8f72683..0000000000 --- a/scripts/travis/deploy/pr-publish.sh +++ /dev/null @@ -1,51 +0,0 @@ -#!/usr/bin/env bash -DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" - - -show_help() { - echo "Usage: pr-publish.sh" - echo "" - echo "-n or --name pr name" - echo "-r or --repo docker repository url" -} - -name_pr(){ - NAME_PR=$1 -} - -name_docker_repo(){ - DOCKER_REPO=$1 -} - -username_docker_repo(){ - DOCKER_REPOSITORY_USER=$1 -} - -password_docker_repo(){ - DOCKER_REPOSITORY_PASSWORD=$1 -} - -while [[ $1 == -* ]]; do - case "$1" in - -h|--help|-\?) show_help; exit 0;; - -n|--name) name_pr $2; shift 2;; - -r|--repo) name_docker_repo $2; shift 2;; - -u|--username) username_docker_repo $2; shift 2;; - -p|--password) password_docker_repo $2; shift 2;; - -*) echo "invalid option: $1" 1>&2; show_help; exit 0;; - esac -done - -cd $DIR/../../../ - -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 $DOCKER_REPOSITORY_PASSWORD -u $DOCKER_REPOSITORY_USER -docker push "$DOCKER_REPO/adf/demo-shell:$NAME_PR" - - - - diff --git a/scripts/travis/deploy/pr-deploy.js b/scripts/travis/deploy/rancher-pr-deploy.js similarity index 100% rename from scripts/travis/deploy/pr-deploy.js rename to scripts/travis/deploy/rancher-pr-deploy.js diff --git a/scripts/travis/release/release.sh b/scripts/travis/release/release-npm.sh similarity index 99% rename from scripts/travis/release/release.sh rename to scripts/travis/release/release-npm.sh index 4c81b7f7aa..d1ab77a486 100755 --- a/scripts/travis/release/release.sh +++ b/scripts/travis/release/release-npm.sh @@ -18,5 +18,4 @@ then fi; echo "Publishing on npm with tag $TAG_NPM" - ./node_modules/@alfresco/adf-cli/bin/adf-cli npm-publish --npmRegistry $NPM_REGISTRY_ADDRESS --tokenRegistry $NPM_REGISTRY_TOKEN --tag $TAG_NPM --pathProject "$(pwd)"