trigger: none # Because we trigger this only in PRs, no need to have triggers here pool: name: ci-pool-prd steps: - script: | echo "Running on branch: ${BUILD_SOURCEBRANCH#refs/heads/}" displayName: 'Print branch' - script: | cp ~/dbt-ci/.env . # Check if it matches the refs/pull//merge pattern if [[ $BUILD_SOURCEBRANCH =~ ^refs/pull/([0-9]+)/merge$ ]]; then POSTGRES_DATABASE="ci_pr_${BASH_REMATCH[1]}" else POSTGRES_DATABASE="ci_${BUILD_SOURCEBRANCH#refs/heads/}" fi echo "POSTGRES_DATABASE: $POSTGRES_DATABASE" echo "POSTGRES_DATABASE=${POSTGRES_DATABASE}" >> .env set -a && source .env && set +a displayName: 'Load env' - script: | set -a && source .env && set +a psql -h $POSTGRES_HOST -U $POSTGRES_USER -d postgres -c "SELECT 1 FROM pg_database WHERE datname = 'postgres';" displayName: 'Smoke test Postgres connection' - script: | set -a && source .env && set +a psql -h $POSTGRES_HOST -U $POSTGRES_USER -d postgres -c "CREATE DATABASE ${POSTGRES_DATABASE}" displayName: 'Create branch dedicated database' - script: | cd ~/dbt-ci /bin/bash build-master-artifacts.sh displayName: 'Build master artifacts' - script: | python3 -m venv venv source venv/bin/activate pip install -r requirements.txt pip install -r ci/ci-requirements.txt displayName: 'Create python virtual environment' - script: | source venv/bin/activate dbt deps displayName: 'Install dbt deps' - script: | source venv/bin/activate set -a && source .env && set +a dbt docs generate --no-compile --empty-catalog --select "state:modified" --state ~/dbt-ci/master-artifacts/ displayName: 'Run dbt docs' - script: | source venv/bin/activate set -a && source .env && set +a dbt compile --debug --select "state:modified" --state ~/dbt-ci/master-artifacts/ displayName: 'Run dbt compile' - script: | source venv/bin/activate cd ci /bin/bash sqlfluff-check.sh ../target/compiled displayName: 'Validate models compiled SQL' - script: | set -a && source .env && set +a psql -h $POSTGRES_HOST -U $POSTGRES_USER -d postgres -c "DROP DATABASE ${POSTGRES_DATABASE}" condition: always() displayName: 'Delete branch dedicated database'