From ae2ea751408299e7052b7420271df92ae781ef1c Mon Sep 17 00:00:00 2001 From: Shelley Nason Date: Thu, 12 Feb 2026 13:11:22 -0500 Subject: [PATCH] Deploy to demo environment from production branch. --- .circleci/config.yml | 32 +++++++++++++++-- .circleci/deploy-sidekiq.sh | 71 +++++++++++++++++++------------------ .circleci/deploy.sh | 71 +++++++++++++++++++------------------ 3 files changed, 103 insertions(+), 71 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index a1c71ef4f..2b51fb518 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -139,6 +139,14 @@ jobs: path: coverage deploy: + parameters: + deploy_environment: + type: enum + enum: + - staging + - demo + - production + default: staging docker: - image: cimg/base:2025.01 steps: @@ -162,7 +170,7 @@ jobs: # echo "Removing prebuilt Rust library (will be rebuilt on CF)..." # rm -rf ext/widget_renderer/target/release/libwidget_renderer.so 2>/dev/null || true # rm -f ext/widget_renderer/libwidget_renderer.so 2>/dev/null || true - ./.circleci/deploy-sidekiq.sh + ./.circleci/deploy-sidekiq.sh << parameters.deploy_environment >> no_output_timeout: 30m - run: @@ -174,7 +182,7 @@ jobs: # echo "Removing prebuilt Rust library (will be rebuilt on CF)..." # rm -rf ext/widget_renderer/target/release/libwidget_renderer.so 2>/dev/null || true # rm -f ext/widget_renderer/libwidget_renderer.so 2>/dev/null || true - ./.circleci/deploy.sh + ./.circleci/deploy.sh << parameters.deploy_environment >> no_output_timeout: 30m cron_tasks: @@ -215,11 +223,29 @@ workflows: requires: - build - deploy: + name: deploy-to-staging + deploy_environment: staging requires: - test filters: branches: only: - develop - - main + - deploy: + name: deploy-to-demo + deploy_environment: demo + requires: + - test + filters: + branches: + only: + - production + - deploy: + name: deploy-to-production + deploy_environment: production + requires: + - test + filters: + branches: + only: - production diff --git a/.circleci/deploy-sidekiq.sh b/.circleci/deploy-sidekiq.sh index 1db716ff4..56af48a6d 100755 --- a/.circleci/deploy-sidekiq.sh +++ b/.circleci/deploy-sidekiq.sh @@ -166,40 +166,43 @@ cf_push_with_retry() { return 1 } -if [ "${CIRCLE_BRANCH}" == "production" ] -then - echo "Logging into cloud.gov" - # Log into CF and push - cf login -a $CF_API_ENDPOINT -u $CF_PRODUCTION_SPACE_DEPLOYER_USERNAME -p $CF_PRODUCTION_SPACE_DEPLOYER_PASSWORD -o $CF_ORG -s prod - echo "PUSHING to PRODUCTION..." - echo "Syncing Login.gov environment variables..." - ./.circleci/sync-login-gov-env.sh touchpoints-production-sidekiq-worker - cf_push_with_retry touchpoints-production-sidekiq-worker - echo "Push to Production Complete." -else - echo "Not on the production branch." -fi +TARGET_ENV="${1:-}" -if [ "${CIRCLE_BRANCH}" == "main" ] -then - echo "Logging into cloud.gov" - # Log into CF and push - cf login -a $CF_API_ENDPOINT -u $CF_USERNAME -p $CF_PASSWORD -o $CF_ORG -s $CF_SPACE - echo "Pushing to Demo..." - cf_push_with_retry touchpoints-demo-sidekiq-worker - echo "Push to Demo Complete." -else - echo "Not on the main branch." +if [ -z "$TARGET_ENV" ]; then + echo "Usage: ./.circleci/deploy-sidekiq.sh " + exit 1 fi -if [ "${CIRCLE_BRANCH}" == "develop" ] -then - echo "Logging into cloud.gov" - # Log into CF and push - cf login -a $CF_API_ENDPOINT -u $CF_USERNAME -p $CF_PASSWORD -o $CF_ORG -s $CF_SPACE - echo "Pushing to Staging..." - cf_push_with_retry touchpoints-staging-sidekiq-worker - echo "Push to Staging Complete." -else - echo "Not on the develop branch." -fi +case "$TARGET_ENV" in + production) + echo "Logging into cloud.gov" + # Log into CF and push + cf login -a $CF_API_ENDPOINT -u $CF_PRODUCTION_SPACE_DEPLOYER_USERNAME -p $CF_PRODUCTION_SPACE_DEPLOYER_PASSWORD -o $CF_ORG -s prod + echo "PUSHING to PRODUCTION..." + echo "Syncing Login.gov environment variables..." + ./.circleci/sync-login-gov-env.sh touchpoints-production-sidekiq-worker + cf_push_with_retry touchpoints-production-sidekiq-worker + echo "Push to Production Complete." + ;; + demo) + echo "Logging into cloud.gov" + # Log into CF and push + cf login -a $CF_API_ENDPOINT -u $CF_USERNAME -p $CF_PASSWORD -o $CF_ORG -s $CF_SPACE + echo "Pushing to Demo..." + cf_push_with_retry touchpoints-demo-sidekiq-worker + echo "Push to Demo Complete." + ;; + staging) + echo "Logging into cloud.gov" + # Log into CF and push + cf login -a $CF_API_ENDPOINT -u $CF_USERNAME -p $CF_PASSWORD -o $CF_ORG -s $CF_SPACE + echo "Pushing to Staging..." + cf_push_with_retry touchpoints-staging-sidekiq-worker + echo "Push to Staging Complete." + ;; + *) + echo "Unknown environment: $TARGET_ENV" + echo "Usage: ./.circleci/deploy-sidekiq.sh " + exit 1 + ;; +esac diff --git a/.circleci/deploy.sh b/.circleci/deploy.sh index a70ce758c..ea1dd6b53 100755 --- a/.circleci/deploy.sh +++ b/.circleci/deploy.sh @@ -281,40 +281,43 @@ cf_push_with_retry() { return 1 } -if [ "${CIRCLE_BRANCH}" == "production" ] -then - echo "Logging into cloud.gov" - # Log into CF and push - cf login -a $CF_API_ENDPOINT -u $CF_PRODUCTION_SPACE_DEPLOYER_USERNAME -p $CF_PRODUCTION_SPACE_DEPLOYER_PASSWORD -o $CF_ORG -s prod - echo "PUSHING web servers to Production..." - echo "Syncing Login.gov environment variables..." - ./.circleci/sync-login-gov-env.sh touchpoints - cf_push_with_retry touchpoints touchpoints.yml false - echo "Push to Production Complete." -else - echo "Not on the production branch." -fi +TARGET_ENV="${1:-}" -if [ "${CIRCLE_BRANCH}" == "main" ] -then - echo "Logging into cloud.gov" - # Log into CF and push - cf login -a $CF_API_ENDPOINT -u $CF_USERNAME -p $CF_PASSWORD -o $CF_ORG -s $CF_SPACE - echo "Pushing web servers to Demo..." - cf_push_with_retry touchpoints-demo "" true - echo "Push to Demo Complete." -else - echo "Not on the main branch." +if [ -z "$TARGET_ENV" ]; then + echo "Usage: ./.circleci/deploy.sh " + exit 1 fi -if [ "${CIRCLE_BRANCH}" == "develop" ] -then - echo "Logging into cloud.gov" - # Log into CF and push - cf login -a $CF_API_ENDPOINT -u $CF_USERNAME -p $CF_PASSWORD -o $CF_ORG -s $CF_SPACE - echo "Pushing web servers to Staging..." - cf_push_with_retry touchpoints-staging "" true - echo "Push to Staging Complete." -else - echo "Not on the develop branch." -fi +case "$TARGET_ENV" in + production) + echo "Logging into cloud.gov" + # Log into CF and push + cf login -a $CF_API_ENDPOINT -u $CF_PRODUCTION_SPACE_DEPLOYER_USERNAME -p $CF_PRODUCTION_SPACE_DEPLOYER_PASSWORD -o $CF_ORG -s prod + echo "PUSHING web servers to Production..." + echo "Syncing Login.gov environment variables..." + ./.circleci/sync-login-gov-env.sh touchpoints + cf_push_with_retry touchpoints touchpoints.yml false + echo "Push to Production Complete." + ;; + demo) + echo "Logging into cloud.gov" + # Log into CF and push + cf login -a $CF_API_ENDPOINT -u $CF_USERNAME -p $CF_PASSWORD -o $CF_ORG -s $CF_SPACE + echo "Pushing web servers to Demo..." + cf_push_with_retry touchpoints-demo "" true + echo "Push to Demo Complete." + ;; + staging) + echo "Logging into cloud.gov" + # Log into CF and push + cf login -a $CF_API_ENDPOINT -u $CF_USERNAME -p $CF_PASSWORD -o $CF_ORG -s $CF_SPACE + echo "Pushing web servers to Staging..." + cf_push_with_retry touchpoints-staging "" true + echo "Push to Staging Complete." + ;; + *) + echo "Unknown environment: $TARGET_ENV" + echo "Usage: ./.circleci/deploy.sh " + exit 1 + ;; +esac