Skip to content

Commit 6ceee35

Browse files
Gunasekar KGunasekar K
authored andcommitted
modification v1 to v2
2 parents f20de0a + f98b72c commit 6ceee35

File tree

2 files changed

+148
-0
lines changed

2 files changed

+148
-0
lines changed

.circleci/config.yml

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
version: 2
2+
jobs:
3+
"build-dev":
4+
docker:
5+
- image: circleci/openjdk:8-jdk
6+
steps:
7+
# Initialization1.
8+
- run: git clone --branch master https://github.com/topcoder-platform/tc-deploy-scripts ../buildscript
9+
- checkout
10+
- run:
11+
name: Installation of build dependencies.
12+
command: |
13+
sudo apt install jq
14+
sudo apt install awscli
15+
- run:
16+
name: Configuring maven
17+
command: |
18+
MVNSERVERSETTING='<server>\n <id>tcrepo</id> \n <username>${env.MVNUSERNAME}</username> \n <password>${env.MVNPASSWD}</password> \n </server> '
19+
C=$(echo $MVNSERVERSETTING | sed 's/\//\\\//g')
20+
sudo sed -i.bak "/<\/servers>/ s/.*/${C}\n&/" /opt/apache-maven/conf/settings.xml
21+
MVNSERVERSETTING='<server>\n <id>tcreposnap</id> \n <username>${env.MVNUSERNAME}</username> \n <password>${env.MVNPASSWD}</password> \n </server> '
22+
C=$(echo $MVNSERVERSETTING | sed 's/\//\\\//g')
23+
sudo sed -i.bak "/<\/servers>/ s/.*/${C}\n&/" /opt/apache-maven/conf/settings.xml
24+
- setup_remote_docker
25+
- restore_cache:
26+
key: ap-review-microservice-{{ checksum "~/project/service/pom.xml" }}
27+
- run: mvn -f ~/project/service/pom.xml dependency:go-offline
28+
- save_cache:
29+
paths:
30+
- ~/.m2
31+
key: ap-review-microservice-{{ checksum "~/projects/service/pom.xml" }}
32+
- run: mvn -f ~/project/service/pom.xml clean site package
33+
- run:
34+
name: Save test results
35+
command: |
36+
mkdir -p ~/junit/
37+
find . -type f -regex ".*/target/site/cobertura/coverage.xml" -exec cp {} ~/junit/ \;
38+
# find . -type f -regex ".*/target/surefire-reports/.*xml" -exec cp {} ~/junit/ \;
39+
when: always
40+
- store_test_results:
41+
path: ~/junit
42+
- store_artifacts:
43+
path: ~/junit
44+
- run: docker --version
45+
- run:
46+
name: Deploy to AWS
47+
command: |
48+
chmod +x /home/circleci/project/service/build/buildimage.sh
49+
/home/circleci/project/service/build/buildimage.sh /home/circleci/project /home/circleci/project/service/build ap-review dev
50+
- deploy:
51+
command: |
52+
echo "ntegration testing"
53+
cp ./../buildscript/master_deply_v4.1.sh .
54+
./master_deply_v4.1.sh -d EBS -e DEV -t ${TAGNAME} -s wolf
55+
56+
workflows:
57+
version: 2
58+
build:
59+
jobs:
60+
# Development builds are executed on "develop" branch only.
61+
- "build-dev":
62+
filters:
63+
branches:
64+
only: [dev-circleci, dev-mstest]

service/build/buildimage.sh

Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
#!/usr/bin/env bash
2+
# Define script variables
3+
WORKSPACE=$1
4+
DEPLOY_DIR=$2
5+
SERVICE=$3
6+
APINAME=$3 #ap-review
7+
CONFIG=$4
8+
ENV=$4
9+
10+
11+
REPO="${SERVICE}-microservice"
12+
TAG="${REPO}:${CONFIG}.${VER}"
13+
IMAGE="${REGISTRY}/${TAG}"
14+
15+
16+
DOCKER_REPO=appiriodevops
17+
VER=`date "+%Y%m%d%H%M"`
18+
IMAGE="$SERVICE-microservice:$ENV.$VER"
19+
20+
DOCKERRUN_TEMPLATE=$DEPLOY_DIR/Dockerrun.aws.json.template
21+
DOCKERRUN=$DEPLOY_DIR/Dockerrun.aws.json
22+
AWS_S3_BUCKET=appirio-platform-dev
23+
AWS_PROFILE="tc-$ENV"
24+
AWS_S3_KEY="services/docker/$IMAGE"
25+
ENV_JAVA_PARAMS=" "
26+
ENV_CONFIG=`echo "$ENV" | tr '[:lower:]' '[:upper:]'`
27+
28+
AWS_REGION=$(eval "echo \$${ENV_CONFIG}_AWS_REGION")
29+
AWS_ACCESS_KEY_ID=$(eval "echo \$${ENV_CONFIG}_AWS_ACCESS_KEY_ID")
30+
AWS_SECRET_ACCESS_KEY=$(eval "echo \$${ENV_CONFIG}_AWS_SECRET_ACCESS_KEY")
31+
32+
configure_aws_cli() {
33+
aws --version
34+
aws configure set aws_access_key_id $AWS_ACCESS_KEY_ID
35+
aws configure set aws_secret_access_key $AWS_SECRET_ACCESS_KEY
36+
aws configure set default.region $AWS_REGION
37+
aws configure set default.output json
38+
echo "Configured AWS CLI."
39+
}
40+
41+
configure_aws_cli
42+
43+
# Elastic Beanstalk Application name
44+
# dev
45+
APPNAME="Development"
46+
if [ "$ENV" = "qa" ]; then
47+
APPNAME="QA"
48+
fi
49+
if [ "$ENV" = "prod" ]; then
50+
APPNAME="Production"
51+
AWS_S3_BUCKET=appirio-platform-prod
52+
ENV_JAVA_PARAMS='-Xmx3g -Dnewrelic.environment=production -javaagent:$NEWRELIC_JAR'
53+
fi
54+
55+
cd $DEPLOY_DIR
56+
57+
echo "Generating Dockerfile"
58+
cat Dockerfile.template | sed -e "s/@ENV_JAVA_PARAMS@/$ENV_JAVA_PARAMS/g" > Dockerfile
59+
60+
echo "Generate sumo config files"
61+
cat sumo.conf.template | sed -e "s/@env@/${ENV}/g" > sumo.conf
62+
cat sumo-sources.json.template | sed -e "s/@env@/${ENV}/g" > sumo-sources.json
63+
64+
echo "Copying deployment files to build folder"
65+
cp $WORKSPACE/service/target/review-microservice*.jar review-microservice.jar
66+
cp $WORKSPACE/service/src/main/resources/review-service.yaml review-service.yaml
67+
68+
echo "Generating Docker aws json......."
69+
PLATFORM_BUCKET=appirio-platform-$CONFIG
70+
EBDOCKER_FILENAME=${APINAME}-${CONFIG}.${VER}.aws.json
71+
cat $WORKSPACE/service/build/Dockerrun.aws.json.template | sed -e "s/@IMAGE@/${IMAGE}/g" > ./$EBDOCKER_FILENAME
72+
cat ./$EBDOCKER_FILENAME
73+
74+
echo "copying beanstalk docker file..."
75+
aws s3 cp $EBDOCKER_FILENAME s3://$PLATFORM_BUCKET/services/elasticbeanstalk/
76+
77+
echo "copying dockercfg......"
78+
aws s3 cp "s3://appirio-platform-$ENV/services/common/dockercfg" ~/.dockercfg
79+
80+
echo "Building docker image $DOCKER_REPO/$IMAGE"
81+
docker build -t $DOCKER_REPO/$IMAGE $DEPLOY_DIR
82+
83+
VER1="$ENV.$VER"
84+
echo export TAGNAME="$VER1" >> "$BASH_ENV"

0 commit comments

Comments
 (0)