.circleci/config.yml
version: 2
jobs:
build-service:
docker:
- image: circleci/openjdk:8u171-jdk-stretch
environment:
CC_TEST_REPORTER_ID: 3195f456f8512c7f896c253646f4860352f164c0bcc699568f6ebb9571b39302
steps:
- add_ssh_keys:
fingerprints:
- "72:21:1b:8c:0e:23:94:63:64:dd:39:4d:b2:7f:b6:07"
- checkout
- run: sudo chown circleci:circleci /srv -R
- run: |
mvn clean install -B -s .circleci/settings.xml \
-Daws.accessKeyId=${AWS_ACCESS_KEY_ID} \
-Daws.secretKey=${AWS_SECRET_KEY} \
-Daws.codecommit.git.user=${AWS_CODECOMMIT_GIT_USER} \
-Daws.codecommit.git.secret=${AWS_CODECOMMIT_GIT_SECRET} \
-Daws.codecommit.iam.user=${AWS_CODECOMMIT_IAM_USER} \
-Daws.codecommit.iam.secret=${AWS_CODECOMMIT_IAM_SECRET} \
-Daws.codecommit.ssh.id=${AWS_CODECOMMIT_SSH_ID} \
-Daws.codecommit.ssh.privatekey=${AWS_CODECOMMIT_SSH_PRIVATEKEY} \
-Dgithub.user=${GITHUB_USER} \
-Dgithub.secret=${GITHUB_SECRET} \
-Dgithub.ssh.privatekey=${GITHUB_SSH_PRIVATEKEY} \
-Dgithub.token=${GITHUB_TOKEN}
- save_cache:
key: configrd-service-{{ .Branch }}-{{ checksum "pom.xml" }}-{{ .Environment.CIRCLE_SHA1 }}
paths:
- target
- ~/.m2
- store_test_results:
paths:
- target/surefire-reports
- target/failsafe-report
deploy-service:
docker:
- image: circleci/openjdk:8-jdk
steps:
- checkout
- restore_cache:
keys:
- configrd-service-{{ .Branch }}-{{ checksum "pom.xml" }}-{{.Environment.CIRCLE_SHA1}}
- run: mvn jar:jar deploy:deploy -B -DskipTests -s .circleci/settings.xml
- store_artifacts:
path: target
docker-push:
docker:
- image: circleci/openjdk:8-jdk
steps:
- checkout
- restore_cache:
key: configrd-service-{{ .Branch }}-{{ checksum "pom.xml" }}-{{.Environment.CIRCLE_SHA1}}
- setup_remote_docker:
docker_layer_caching: true
- run:
name: Build and push docker image
command: |
docker login -u $DOCKER_USER -p $DOCKER_PASS
set +e
docker pull $DOCKERHUB/${DOCKER_IMAGE_NAME}:latest
docker build --cache-from $DOCKERHUB/${DOCKER_IMAGE_NAME}:latest -t $DOCKERHUB/${DOCKER_IMAGE_NAME}:${CIRCLE_SHA1:0:7} .
docker push $DOCKERHUB/${DOCKER_IMAGE_NAME}:${CIRCLE_SHA1:0:7}
docker tag $DOCKERHUB/${DOCKER_IMAGE_NAME}:${CIRCLE_SHA1:0:7} $DOCKERHUB/${DOCKER_IMAGE_NAME}:latest
docker push $DOCKERHUB/${DOCKER_IMAGE_NAME}:latest
s3-push:
docker:
- image: circleci/openjdk:8-jdk
steps:
- checkout
- run:
name: insall awscli
command: |
sudo apt-get install awscli -y
- run:
name: push resource to s3
command: |
export AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID}
export AWS_SECRET_ACCESS_KEY=${AWS_SECRET_KEY}
aws s3 cp src/test/resources/ s3://config.appcrossings.net/ --recursive --metadata-directive REPLACE --acl public-read
workflows:
version: 2
build_push:
jobs:
- s3-push:
filters:
branches:
only:
- master
- build-service
- deploy-service:
requires:
- build-service
- docker-push:
filters:
branches:
only:
- master
requires:
- deploy-service