Skip to content
This repository was archived by the owner on Jan 23, 2025. It is now read-only.

STS integration on PROD #108

Merged
merged 6 commits into from
Apr 22, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
50 changes: 36 additions & 14 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,38 +18,52 @@ 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='<server>\n <id>tcrepo</id> \n <username>${env.MVNUSERNAME}</username> \n <password>${env.MVNPASSWD}</password> \n </server> '
C=$(echo $MVNSERVERSETTING | sed 's/\//\\\//g')
sudo sed -i.bak "/<\/servers>/ s/.*/${C}\n&/" /opt/apache-maven/conf/settings.xml
MVNSERVERSETTING='<server>\n <id>tcreposnap</id> \n <username>${env.MVNUSERNAME}</username> \n <password>${env.MVNPASSWD}</password> \n </server> '
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" }}
- run: mvn -f ~/project/pom.xml dependency:go-offline
- 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: .
Expand All @@ -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


Expand All @@ -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
24 changes: 24 additions & 0 deletions .deploy/buildimage.sh
Original file line number Diff line number Diff line change
@@ -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 .