trigger: branches: include: - master pool: name: ci-pool-prd steps: - script: | echo "Running on branch: ${BUILD_SOURCEBRANCH#refs/heads/}" displayName: 'Smoke test filesystem access' - 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: | python3 -m venv venv source venv/bin/activate pip install -r 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 displayName: 'Run dbt docs' - script: | source venv/bin/activate set -a && source .env && set +a dbt compile displayName: 'Run dbt compile' - 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'