diff --git a/.circleci/config.yml b/.circleci/config.yml index 17bf804a..96f4bc51 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -7,7 +7,17 @@ orbs: aws-cli: circleci/aws-cli@3.1.4 kubernetes: circleci/kubernetes@1.3.1 docker: circleci/docker@1.5.0 + +parameters: + namespace: + type: enum + default: select-a-namespace + enum: + - giraffe + - platypus + - porcupine + jobs: build_and_test: parameters: @@ -57,7 +67,31 @@ jobs: - store_artifacts: path: coverage destination: ~/coverage - + + update-dev: + docker: + - image: cimg/aws:2023.01 + resource_class: large + steps: + - checkout + - setup_remote_docker + - aws-cli/setup: + aws-region: DEV_AWS_REGION + aws-access-key-id: CIRCLE_CI_USER_ACCESS_KEY_ID + aws-secret-access-key: CIRCLE_CI_USER_SECRET_ACCESS_KEY + - run: docker build -t dev_i14y . + - run: docker tag dev_i14y:latest 213305845712.dkr.ecr.us-west-1.amazonaws.com/dev_i14y:<< pipeline.parameters.namespace >> + - run: aws ecr get-login-password --region us-west-1 | docker login --username AWS --password-stdin 213305845712.dkr.ecr.us-west-1.amazonaws.com + - run: docker push 213305845712.dkr.ecr.us-west-1.amazonaws.com/dev_i14y:<< pipeline.parameters.namespace >> + - run: + name: update i14y k8s deployment + command: | + aws ssm send-command \ + --document-name "searchgov-deployment-ssm-document" \ + --targets "Key=tag:Name,Values=jumphost-dev-search-instance" \ + --parameters '{"DeploymentName":["search-<< pipeline.parameters.namespace >>-i14y-deploy"], "Namespace":["<< pipeline.parameters.namespace >>"]}' \ + --comment "restart i14y deployment in << pipeline.parameters.namespace >> namespace" + update-staging: docker: - image: cimg/aws:2023.01 @@ -70,10 +104,10 @@ jobs: aws-secret-access-key: CIRCLE_CI_USER_SECRET_ACCESS_KEY - run: docker build -t i14y . - run: docker tag i14y:latest 213305845712.dkr.ecr.us-east-2.amazonaws.com/i14y:latest - - run: docker tag i14y:latest 213305845712.dkr.ecr.us-east-2.amazonaws.com/i14y:${CIRCLE_BUILD_NUM} + - run: docker tag i14y:latest 213305845712.dkr.ecr.us-east-2.amazonaws.com/i14y:${CIRCLE_SHA1:0:7} - run: aws ecr get-login-password --region us-east-2 | docker login --username AWS --password-stdin 213305845712.dkr.ecr.us-east-2.amazonaws.com - run: docker push 213305845712.dkr.ecr.us-east-2.amazonaws.com/i14y:latest - - run: docker push 213305845712.dkr.ecr.us-east-2.amazonaws.com/i14y:${CIRCLE_BUILD_NUM} + - run: docker push 213305845712.dkr.ecr.us-east-2.amazonaws.com/i14y:${CIRCLE_SHA1:0:7} - run: name: update i14y k8s deployment command: | @@ -94,10 +128,10 @@ jobs: aws-secret-access-key: CIRCLE_CI_USER_SECRET_ACCESS_KEY - run: docker build -t i14y . - run: docker tag i14y:latest 213305845712.dkr.ecr.us-east-1.amazonaws.com/i14y:latest - - run: docker tag i14y:latest 213305845712.dkr.ecr.us-east-1.amazonaws.com/i14y:${CIRCLE_BUILD_NUM} + - run: docker tag i14y:latest 213305845712.dkr.ecr.us-east-1.amazonaws.com/i14y:${CIRCLE_SHA1:0:7} - run: aws ecr get-login-password --region us-east-1 | docker login --username AWS --password-stdin 213305845712.dkr.ecr.us-east-1.amazonaws.com - run: docker push 213305845712.dkr.ecr.us-east-1.amazonaws.com/i14y:latest - - run: docker push 213305845712.dkr.ecr.us-east-1.amazonaws.com/i14y:${CIRCLE_BUILD_NUM} + - run: docker push 213305845712.dkr.ecr.us-east-1.amazonaws.com/i14y:${CIRCLE_SHA1:0:7} - run: name: update i14y k8s deployment command: | @@ -109,6 +143,7 @@ jobs: workflows: + version: 2 build_and_test: jobs: - build_and_test: @@ -137,3 +172,18 @@ workflows: branches: only: - production + + # to build and deploy your dev image, all pipeline jobs must be triggered manually. This is to ensure that an acceptable namespace is selected + manual-trigger: + when: + equal: [<< pipeline.trigger_source >>, api] + jobs: + - update-dev: + name: "update i14y for << pipeline.parameters.namespace >> namesapce" + context: + - aws-client-keys + filters: + branches: + only: + - /^SRCH.*/ +