Skip to content

Commit

Permalink
Merge pull request #198 from ustaxcourt/sprint-37
Browse files Browse the repository at this point in the history
Merge sprint 37 to Migration
  • Loading branch information
JessicaMarine authored Apr 20, 2020
2 parents 8f1d00c + 0a54614 commit e9408a0
Show file tree
Hide file tree
Showing 922 changed files with 23,231 additions and 15,616 deletions.
117 changes: 105 additions & 12 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,9 @@ jobs:
- run:
name: Web API - Test
command: npm run test:api
- run:
name: Normalize Coverage for SonarQube
command: npx istanbul-combine -d web-api/coverage web-api/coverage/coverage-final.json
- run:
name: Web API - SonarQube
command: |
Expand All @@ -68,12 +71,16 @@ jobs:
aws_secret_access_key: $AWS_SECRET_ACCESS_KEY
environment:
_JAVA_OPTIONS: '-Xms1024m -Xmx2024m'
resource_class: 2xlarge
steps:
- attach_workspace:
at: ~/
- run:
name: Shared - Test
command: npm run test:shared
- run:
name: Normalize Coverage for SonarQube
command: npx istanbul-combine -d shared/coverage shared/coverage/coverage-final.json
- run:
name: Shared - SonarQube
command: |
Expand All @@ -87,7 +94,7 @@ jobs:
-Dsonar.login="${SHARED_SONAR_TOKEN}" \
-Dsonar.host.url="https://sonarcloud.io"
build-client:
build-client-unit:
docker:
- image: $AWS_ACCOUNT_ID.dkr.ecr.us-east-1.amazonaws.com/ef-cms-us-east-1:latest
aws_auth:
Expand All @@ -96,18 +103,68 @@ jobs:
environment:
_JAVA_OPTIONS: '-Xms2048m -Xmx4096m'
resource_class: 2xlarge
steps:
- attach_workspace:
at: ~/
- run:
name: Web Client - Unit Test
command: npm run build:assets && CI=false npm run test:client:unit
- persist_to_workspace:
root: ~/
paths:
- project/web-client/coverage-unit

build-client-integration:
docker:
- image: $AWS_ACCOUNT_ID.dkr.ecr.us-east-1.amazonaws.com/ef-cms-us-east-1:latest
aws_auth:
aws_access_key_id: $AWS_ACCESS_KEY_ID
aws_secret_access_key: $AWS_SECRET_ACCESS_KEY
environment:
_JAVA_OPTIONS: '-Xms2048m -Xmx4096m'
resource_class: 2xlarge
parallelism: 2
steps:
- attach_workspace:
at: ~/
- run:
name: Create web-client Artifacts Directory
command: mkdir /tmp/web-client/
- run:
name: Web Client - Test
name: Web Client - Integration Test
command: |
SKIP_CACHE_INVALIDATION=true AWS_ACCESS_KEY_ID=noop AWS_SECRET_ACCESS_KEY=noop npm run start:api:ci > /tmp/web-client/server-output.txt &
./wait-until.sh http://localhost:3000/api/swagger
AWS_ACCESS_KEY_ID=noop AWS_SECRET_ACCESS_KEY=noop npm run test:client
TESTFILES=$(circleci tests glob "web-client/integration-tests/*.test.js" | circleci tests split --split-by=timings)
CI=true AWS_ACCESS_KEY_ID=noop AWS_SECRET_ACCESS_KEY=noop npx jest --coverageDirectory=./coverage-integration-${CIRCLE_NODE_INDEX} --runInBand --config web-client/jest-integration.config.js ${TESTFILES}
- store_artifacts:
path: /tmp/web-client
- persist_to_workspace:
root: ~/
paths:
- project/web-client/coverage-integration-*

build-client-coverage:
docker:
- image: $AWS_ACCOUNT_ID.dkr.ecr.us-east-1.amazonaws.com/ef-cms-us-east-1:latest
aws_auth:
aws_access_key_id: $AWS_ACCESS_KEY_ID
aws_secret_access_key: $AWS_SECRET_ACCESS_KEY
steps:
- attach_workspace:
at: ~/
- run:
name: Combine Coverage
command: |
npx istanbul-combine -d combined-coverage -p both -r lcov \
./web-client/coverage-integration-0/coverage-final.json \
./web-client/coverage-integration-1/coverage-final.json \
./web-client/coverage-unit/coverage-final.json
- run:
name: Check Coverage
command: |
npx istanbul check-coverage --include=combined-coverage/coverage-final.json \
--statements 95 --functions 95 --branches 95 --lines 95
- run:
name: Web Client - SonarQube
command: |
Expand All @@ -121,7 +178,7 @@ jobs:
-Dsonar.login="${UI_SONAR_TOKEN}" \
-Dsonar.host.url="https://sonarcloud.io"
- store_artifacts:
path: /tmp/web-client
path: ~/project/combined-coverage

e2e-pa11y:
docker:
Expand Down Expand Up @@ -242,7 +299,7 @@ jobs:
command: docker run -e "AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID}" -e "AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY}" -e "COGNITO_SUFFIX=${COGNITO_SUFFIX}" -e "EFCMS_DOMAIN=${EFCMS_DOMAIN}" -e "SES_DMARC_EMAIL=${SES_DMARC_EMAIL}" -e "POST_CONFIRMATION_ROLE_ARN=${POST_CONFIRMATION_ROLE_ARN}" -e "CLOUDWATCH_ROLE_ARN=${CLOUDWATCH_ROLE_ARN}" -e "ES_INSTANCE_COUNT=${ES_INSTANCE_COUNT}" --rm efcms /bin/sh -c "cd web-api/terraform/main && ../bin/deploy-app.sh ${ENV}"
- run:
name: 'Deploy - Web Client - Terraform'
command: docker run -e "AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID}" -e "AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY}" -e "EFCMS_DOMAIN=${EFCMS_DOMAIN}" -e "DYNAMSOFT_S3_ZIP_PATH=${DYNAMSOFT_S3_ZIP_PATH}" -e "DYNAMSOFT_URL=${DYNAMSOFT_URL}" -e "DYNAMSOFT_PRODUCT_KEYS=${DYNAMSOFT_PRODUCT_KEYS}" -e "IS_DYNAMSOFT_ENABLED=${IS_DYNAMSOFT_ENABLED}" --rm efcms /bin/sh -c "cd web-client/terraform/main && ../bin/deploy-app.sh $ENV"
command: docker run -e "AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID}" -e "AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY}" -e "EFCMS_DOMAIN=${EFCMS_DOMAIN}" -e "DYNAMSOFT_S3_ZIP_PATH=${DYNAMSOFT_S3_ZIP_PATH}" -e "DYNAMSOFT_URL=${DYNAMSOFT_URL}" -e "DYNAMSOFT_PRODUCT_KEYS=${DYNAMSOFT_PRODUCT_KEYS}" -e "IS_DYNAMSOFT_ENABLED=${IS_DYNAMSOFT_ENABLED}" --rm efcms /bin/sh -c "cd web-client/terraform/main && ../bin/deploy-app.sh $ENV"
- run:
name: 'Setup SNS Subscription'
command: docker run -e "AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID}" -e "AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY}" -e "COGNITO_SUFFIX=${COGNITO_SUFFIX}" -e "AWS_ACCOUNT_ID=${AWS_ACCOUNT_ID}" -e "EFCMS_DOMAIN=${EFCMS_DOMAIN}" -e "SES_DMARC_EMAIL=${SES_DMARC_EMAIL}" -e "POST_CONFIRMATION_ROLE_ARN=${POST_CONFIRMATION_ROLE_ARN}" -e "CLOUDWATCH_ROLE_ARN=${CLOUDWATCH_ROLE_ARN}" -e "ES_INSTANCE_COUNT=${ES_INSTANCE_COUNT}" --rm efcms /bin/sh -c "cd web-api && ./setup-sns-subscriptions.sh ${ENV}"
Expand Down Expand Up @@ -321,6 +378,9 @@ jobs:
- run:
name: 'Deploy - Web API - Serverless - Reports - us-east-1'
command: docker run -e "AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID}" -e "AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY}" -e "EFCMS_DOMAIN=${EFCMS_DOMAIN}" -e "CIRCLE_HONEYBADGER_API_KEY=${CIRCLE_HONEYBADGER_API_KEY}" -v $(pwd)/.cache:/home/app/.cache --rm efcms /bin/sh -c "./web-api/run-serverless-reports.sh ${ENV} us-east-1"
- run:
name: 'Deploy - Web API - Serverless - Practitioners - us-east-1'
command: docker run -e "AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID}" -e "AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY}" -e "EFCMS_DOMAIN=${EFCMS_DOMAIN}" -e "CIRCLE_HONEYBADGER_API_KEY=${CIRCLE_HONEYBADGER_API_KEY}" -v $(pwd)/.cache:/home/app/.cache --rm efcms /bin/sh -c "./web-api/run-serverless-practitioners.sh ${ENV} us-east-1"
- run:
name: 'Deploy - Web API - Serverless - Notifications - us-east-1'
command: docker run -e "AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID}" -e "AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY}" -e "EFCMS_DOMAIN=${EFCMS_DOMAIN}" -e "CIRCLE_HONEYBADGER_API_KEY=${CIRCLE_HONEYBADGER_API_KEY}" -v $(pwd)/.cache:/home/app/.cache --rm efcms /bin/sh -c "./web-api/run-serverless-notifications.sh ${ENV} us-east-1"
Expand Down Expand Up @@ -402,6 +462,9 @@ jobs:
- run:
name: 'Deploy - Web API - Serverless - Reports - us-west-1'
command: docker run -e "AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID}" -e "AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY}" -e "EFCMS_DOMAIN=${EFCMS_DOMAIN}" -e "CIRCLE_HONEYBADGER_API_KEY=${CIRCLE_HONEYBADGER_API_KEY}" -v $(pwd)/.cache:/home/app/.cache --rm efcms /bin/sh -c "./web-api/run-serverless-reports.sh ${ENV} us-west-1"
- run:
name: 'Deploy - Web API - Serverless - Practitioners - us-west-1'
command: docker run -e "AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID}" -e "AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY}" -e "EFCMS_DOMAIN=${EFCMS_DOMAIN}" -e "CIRCLE_HONEYBADGER_API_KEY=${CIRCLE_HONEYBADGER_API_KEY}" -v $(pwd)/.cache:/home/app/.cache --rm efcms /bin/sh -c "./web-api/run-serverless-practitioners.sh ${ENV} us-west-1"
- run:
name: 'Deploy - Web API - Serverless - Notifications - us-west-1'
command: docker run -e "AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID}" -e "AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY}" -e "EFCMS_DOMAIN=${EFCMS_DOMAIN}" -e "CIRCLE_HONEYBADGER_API_KEY=${CIRCLE_HONEYBADGER_API_KEY}" -v $(pwd)/.cache:/home/app/.cache --rm efcms /bin/sh -c "./web-api/run-serverless-notifications.sh ${ENV} us-west-1"
Expand All @@ -426,12 +489,15 @@ jobs:
fi
docker build -t efcms -f Dockerfile .
- run:
name: Setup Honeybadger Keys
command: echo "export CIRCLE_HONEYBADGER_API_KEY='$(./get-honeybadger-keys.sh $CIRCLE_BRANCH)'" >> $BASH_ENV
- run:
name: 'Deploy - Switch environment color'
command: docker run -e "AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID}" -e "AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY}" -e "EFCMS_DOMAIN=${EFCMS_DOMAIN}" --rm efcms /bin/sh -c "cd web-api && ./switch-environment-color.sh ${ENV}"
- run:
name: 'Deploy - Web Client - S3'
command: docker run -e "DYNAMSOFT_URL_OVERRIDE=${DYNAMSOFT_URL_OVERRIDE}" -e "ENV=${ENV}" -e "AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID}" -e "AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY}" -e "EFCMS_DOMAIN=${EFCMS_DOMAIN}" -e "COGNITO_SUFFIX=${COGNITO_SUFFIX}" -e "CIRCLE_SHA1=${CIRCLE_SHA1}" -e "CIRCLE_HONEYBADGER_API_KEY_DEV=${CIRCLE_HONEYBADGER_API_KEY_DEV}" -e "CIRCLE_HONEYBADGER_API_KEY_STG=${CIRCLE_HONEYBADGER_API_KEY_STG}" --rm efcms /bin/sh -c "./web-client/build-dist.sh $ENV && aws s3 sync dist s3://ui-${ENV}.${EFCMS_DOMAIN} --delete --cache-control no-cache && aws s3 sync dist s3://failover-ui-${ENV}.${EFCMS_DOMAIN} --delete --cache-control no-cache"
command: docker run -e "DYNAMSOFT_URL_OVERRIDE=${DYNAMSOFT_URL_OVERRIDE}" -e "ENV=${ENV}" -e "AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID}" -e "AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY}" -e "EFCMS_DOMAIN=${EFCMS_DOMAIN}" -e "COGNITO_SUFFIX=${COGNITO_SUFFIX}" -e "CIRCLE_SHA1=${CIRCLE_SHA1}" -e "CIRCLE_HONEYBADGER_API_KEY=${CIRCLE_HONEYBADGER_API_KEY}" --rm efcms /bin/sh -c "./web-client/build-dist.sh $ENV && aws s3 sync dist s3://ui-${ENV}.${EFCMS_DOMAIN} --delete --cache-control no-cache && aws s3 sync dist s3://failover-ui-${ENV}.${EFCMS_DOMAIN} --delete --cache-control no-cache"
- run:
name: 'Deploy - Public Web Client - S3'
command: docker run -e "ENV=${ENV}" -e "AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID}" -e "AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY}" -e "EFCMS_DOMAIN=${EFCMS_DOMAIN}" -e "COGNITO_SUFFIX=${COGNITO_SUFFIX}" -e "CIRCLE_SHA1=${CIRCLE_SHA1}" --rm efcms /bin/sh -c "./web-client/build-dist-public.sh $ENV && aws s3 sync dist-public s3://ui-public-${ENV}.${EFCMS_DOMAIN} --delete --cache-control no-cache && aws s3 sync dist-public s3://failover-ui-public-${ENV}.${EFCMS_DOMAIN} --delete --cache-control no-cache"
Expand Down Expand Up @@ -476,7 +542,10 @@ workflows:
- build-api:
requires:
- bundle
- build-client:
- build-client-unit:
requires:
- bundle
- build-client-integration:
requires:
- bundle
- e2e-pa11y:
Expand All @@ -485,13 +554,17 @@ workflows:
- e2e-cypress:
requires:
- bundle
- pre-deploy:
- build-client-coverage:
requires:
- build-shared
- build-api
- build-client
- build-client-unit
- build-client-integration
- e2e-pa11y
- e2e-cypress
- pre-deploy:
requires:
- build-client-coverage
- deploy-api-west:
requires:
- pre-deploy
Expand Down Expand Up @@ -533,7 +606,14 @@ workflows:
branches:
ignore:
- develop
- build-client:
- build-client-unit:
requires:
- bundle
filters:
branches:
ignore:
- develop
- build-client-integration:
requires:
- bundle
filters:
Expand All @@ -554,16 +634,25 @@ workflows:
branches:
ignore:
- develop
- pre-deploy:
- build-client-coverage:
requires:
- build-shared
- build-api
- build-client
- build-client-unit
- build-client-integration
- e2e-pa11y
- e2e-cypress
filters:
branches:
ignore:
- develop
- pre-deploy:
requires:
- build-client-coverage
filters:
branches:
only:
- irs
- staging
- test
- migration
Expand All @@ -575,6 +664,7 @@ workflows:
filters:
branches:
only:
- irs
- staging
- test
- migration
Expand All @@ -586,6 +676,7 @@ workflows:
filters:
branches:
only:
- irs
- staging
- test
- migration
Expand All @@ -598,6 +689,7 @@ workflows:
filters:
branches:
only:
- irs
- staging
- test
- migration
Expand All @@ -609,6 +701,7 @@ workflows:
filters:
branches:
only:
- irs
- staging
- test
- migration
Expand Down
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@

.cache/
.DS_Store
.dynamodb/
Expand Down Expand Up @@ -38,3 +39,5 @@ web-client/pa11y/pa11y-screenshots
web-client/reports
web-client/tests_output/
web-client/terraform/common/cloudfront-edge/index.js.zip
proxy-request-times.json
reports/test-reporter.xml
Loading

0 comments on commit e9408a0

Please sign in to comment.