definitions: scripts: - script: &prep-dir DIR=${DIR:=.}; cd $DIR; pip install poetry; poetry install; - script: &lint poetry run black . - script: &validate-static poetry run mypy . - script: &aws-context apt-get update; apt-get install -y jq; pip install awscli; export AWS_ROLE_ARN=arn:aws:iam::$AWS_ACCOUNT_NO:role/$OIDC_ROLE; export AWS_ROLE_SESSION_NAME=$OIDC_ROLE; export AWS_WEB_IDENTITY_TOKEN_FILE=$(pwd)/web-identity-token; echo $BITBUCKET_STEP_OIDC_TOKEN > $(pwd)/web-identity-token; export AWS_ACCESS_KEY_ID=$(echo $STS_OUTPUT | jq -r '.Credentials.AccessKeyId'); export AWS_SECRET_ACCESS_KEY=$(echo $STS_OUTPUT | jq -r '.Credentials.SecretAccessKey'); export AWS_SECURITY_TOKEN=$(echo $STS_OUTPUT | jq -r '.Credentials.SessionToken'); export AWS_REGION='us-east-2'; aws sts get-caller-identity; export IS_DEPLOY_ALL=true; steps: &deployment-plan-steps - step: name: Plan devops-pipeline image: hugree/bitbucket-aws-python38-tf154:latest oidc: true script: - *prep-dir - *aws-context - python terraform.py plan --environment=$ENVIRONMENT --module=devops-pipeline/other-resources caches: - pip - step: name: Plan textract-pipeline image: hugree/terraform-with-snowsql:latest oidc: true script: - *prep-dir - *aws-context - python terraform.py plan --environment=$ENVIRONMENT --module=textract-pipeline/terraform caches: - pip - step: name: Plan streamlit-server image: hugree/bitbucket-aws-python38-tf154:latest oidc: true script: - *prep-dir - *aws-context - python terraform.py plan --environment=$ENVIRONMENT --module=streamlit-server caches: - pip - step: name: Plan Snowflake Changes image: python:3.7 size: 2x script: - pip install snowflake-connector-python - pip install schemachange --upgrade - | schemachange -a $SNOWFLAKE_ACCOUNT -u $SNOWFLAKE_USER \ -f snowflake/ \ -r $SNOWFLAKE_ROLE -w $SNOWFLAKE_WAREHOUSE \ -d $SNOWFLAKE_DATABASE -c $SNOWFLAKE_DATABASE.SCHEMACHANGE.CHANGE_HISTORY \ --create-change-history-table -v \ --dry-run caches: - pip - step: image: hugree/terraform-with-snowsql:latest name: Plan Snowsql oidc: true script: - *prep-dir - *aws-context - python terraform.py plan --environment=$ENVIRONMENT --module=textract-pipeline/terraform --apply-extra-args="-target=null_resource.snowsql_client_create" caches: - pip - step: image: python:3.8 name: Plan streamlit to EC2 oidc: true script: - *aws-context - apt-get install -y git - >- aws ssm send-command --document-name "AWS-RunShellScript" --instance-ids $INSTANCE_ID_TF --region $AWS_DEFAULT_REGION --parameters commands='[ "sudo -u ubuntu -i <- aws ssm send-command --document-name "AWS-RunShellScript" --instance-ids $INSTANCE_ID_TF --region $AWS_DEFAULT_REGION --parameters commands='[ "sudo -u ubuntu -i <