version: 2.1 common_env_vars: &common_env_vars AWS_REGION: us-west-2 parameters: manual: type: boolean default: false jobs: # Manually triggered: TS_ENV=prod prod_plan: docker: - image: cimg/ruby:3.1.0 environment: *common_env_vars steps: - checkout - run: .circleci/bin/install - run: TS_ENV=prod terraspace plan demo prod_up: docker: - image: cimg/ruby:3.1.0 environment: *common_env_vars steps: - checkout - run: .circleci/bin/install - run: TS_ENV=prod terraspace up demo -y # On PR: TS_ENV=dev terraspace plan # On push: TS_ENV=dev terraspace up - checks a specific branch only dev_plan_or_up: docker: - image: cimg/ruby:3.1.0 environment: *common_env_vars steps: - checkout - run: .circleci/bin/install - run: .circleci/bin/terraspace-plan-or-up.sh demo # depends if PR workflows: prod_plan_then_up_with_approval: when: << pipeline.parameters.manual >> jobs: - prod_plan - hold: type: approval requires: - prod_plan - prod_up: requires: - hold dev_plan_or_up: when: not: << pipeline.parameters.manual >> jobs: - dev_plan_or_up