diff --git a/.circleci/config.yml b/.circleci/config.yml index b7aa2ae..d6cb7f1 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -18,29 +18,44 @@ install_awscli: &install_awscli aws --version eb --version +install_deploysuite: &install_deploysuite + name: Installation of install_deploysuite. + command: | + git clone --branch v1.3 https://github.com/topcoder-platform/tc-deploy-scripts ../buildscript + cp ./../buildscript/master_deploy.sh . + cp ./../buildscript/buildenv.sh . + cp ./../buildscript/awsconfiguration.sh . # Instructions of deployment deploy_steps: &deploy_steps - checkout - attach_workspace: at: . - run: *install_awscli + - run: *install_deploysuite - setup_remote_docker - - run: .deploy/ecs_deploy.sh $DEPLOY_ENV + - run: + name: "configuring aws environment" + command: | + ./awsconfiguration.sh $DEPLOY_ENV + - run: + name: "Building Docker image for deployment" + command: | + source awsenvconf + .deploy/buildimage.sh $DEPLOY_ENV +# - run: .deploy/ecs_deploy.sh $DEPLOY_ENV + - deploy: + name: Running MasterScript. + command: | + source awsenvconf + ./buildenv.sh -e $DEPLOY_ENV -b $LOGICAL_ENV-tc-elasticsearch-feeder-deployvar + source buildenvvar + ./master_deploy.sh -d ECS -e $DEPLOY_ENV -t latest -s $LOGICAL_ENV-tc-elasticsearch-feeder-appvar -i elasticsearchfeeder -p FARGATE jobs: build: <<: *java_env steps: - checkout - - run: - name: Configuring maven - command: | - MVNSERVERSETTING='\n tcrepo \n ${env.MVNUSERNAME} \n ${env.MVNPASSWD} \n ' - C=$(echo $MVNSERVERSETTING | sed 's/\//\\\//g') - sudo sed -i.bak "/<\/servers>/ s/.*/${C}\n&/" /opt/apache-maven/conf/settings.xml - MVNSERVERSETTING='\n tcreposnap \n ${env.MVNUSERNAME} \n ${env.MVNPASSWD} \n ' - C=$(echo $MVNSERVERSETTING | sed 's/\//\\\//g') - sudo sed -i.bak "/<\/servers>/ s/.*/${C}\n&/" /opt/apache-maven/conf/settings.xml - setup_remote_docker - restore_cache: key: tc-elasticsearch-feeder-service-{{ checksum "~/project/pom.xml" }} @@ -48,8 +63,7 @@ jobs: - save_cache: paths: - ~/.m2 - key: tc-elasticsearch-feeder-service-{{ checksum "~/project/pom.xml" }} - + key: tc-elasticsearch-feeder-service-{{ checksum "~/project/pom.xml" }} - run: mvn clean compile package - persist_to_workspace: root: . @@ -60,18 +74,21 @@ jobs: <<: *python_env environment: DEPLOY_ENV: "PROD" + LOGICAL_ENV: "PROD" steps: *deploy_steps deploy_dev: <<: *python_env environment: DEPLOY_ENV: "DEV" + LOGICAL_ENV: "DEV" steps: *deploy_steps deploy_test: <<: *python_env environment: - DEPLOY_ENV: "TEST" + DEPLOY_ENV: "DEV" + LOGICAL_ENV: "TEST" steps: *deploy_steps @@ -81,20 +98,25 @@ workflows: jobs: - build - deploy_dev: + context : org-global filters: branches: only: [dummy-dev] requires: - build - deploy_prod: + context : org-global filters: branches: only: master requires: - build - deploy_test: + context : org-global filters: branches: - only: dev + only: + - dev + - dev-sts requires: - build diff --git a/.deploy/buildimage.sh b/.deploy/buildimage.sh new file mode 100755 index 0000000..789cb38 --- /dev/null +++ b/.deploy/buildimage.sh @@ -0,0 +1,24 @@ +#!/bin/bash + +# fail if any occurs +set -e + +ENV=$1 +ENV=`echo "$ENV" | tr '[:upper:]' '[:lower:]'` +# Define script variables +DEPLOY_DIR="$( cd "$( dirname "$0" )" && pwd )" +WORKSPACE=$PWD +cd $DEPLOY_DIR/docker +echo "Copying deployment files to docker folder" +cp $WORKSPACE/target/elasticsearch-feeder-service*.jar elasticsearch-feeder-service.jar +cp $WORKSPACE/src/main/resources/elasticsearch-feeder-service.yaml elasticsearch-feeder-service.yaml +cp $WORKSPACE/.deploy/ecs_task_template.json ecs_task_template.json + +echo "Logging into docker" +echo "############################" +#docker login $DOCKER_EMAIL -u $DOCKER_USER -p $DOCKER_PASSWD +#docker login -u $DOCKER_USER -p $DOCKER_PASSWD +aws s3 cp "s3://appirio-platform-$ENV/services/common/dockercfg" ~/.dockercfg +#TAG=$AWS_ACCOUNT_ID.dkr.ecr.$AWS_REGION.amazonaws.com/$AWS_REPOSITORY:$CIRCLE_SHA1 +TAG="elasticsearchfeeder:latest" +docker build -t $TAG .