configrd/configrd-service

View on GitHub
.circleci/config.yml

Summary

Maintainability
Test Coverage
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