fsc-ibc/.github/workflows/dbt_run_template_integration_test.yml
2025-05-07 12:59:23 -06:00

84 lines
2.6 KiB
YAML

name: dbt_run_template
on:
workflow_call:
inputs:
warehouse:
required: false
type: string
default: DBT_CLOUD
target:
required: false
type: string
default: dev
command:
required: true
type: string
python_version:
required: false
type: string
default: "3.10"
jobs:
run_dbt_jobs:
runs-on: ubuntu-latest
environment:
name: workflow_secrets
steps:
- uses: actions/checkout@v3
- name: Extract project & profile names from dbt_project.yml
id: project-name
run: |
PROFILE_NAME=$(grep "^profile:" dbt_project.yml | sed 's/^profile:[[:space:]]*"//' | sed 's/".*$//')
PROJECT_NAME=$(grep "^name:" dbt_project.yml | sed 's/^name:[[:space:]]*"//' | sed 's/".*$//')
echo "PROFILE_NAME=$PROFILE_NAME" >> $GITHUB_ENV
echo "PROJECT_NAME=$PROJECT_NAME" >> $GITHUB_ENV
echo "PROFILE_NAME: $PROFILE_NAME"
echo "PROJECT_NAME: $PROJECT_NAME"
- name: Set environment variables
run: |
echo "TARGET=${{ inputs.target }}" >> $GITHUB_ENV
echo "ACCOUNT=vna27887.us-east-1" >> $GITHUB_ENV
echo "REGION=us-east-1" >> $GITHUB_ENV
echo "SCHEMA=ADMIN" >> $GITHUB_ENV
echo "USER=DBT_CLOUD_$PROFILE_NAME" >> $GITHUB_ENV
echo "PASSWORD=${{ secrets.PASSWORD }}" >> $GITHUB_ENV
if [[ "${{ inputs.target }}" == *"prod"* ]]; then
echo "DATABASE=$PROFILE_NAME" >> $GITHUB_ENV
echo "ROLE=DBT_CLOUD_$PROFILE_NAME" >> $GITHUB_ENV
echo "WAREHOUSE=${{ inputs.warehouse }}" >> $GITHUB_ENV
elif [[ "${{ inputs.target }}" == *"test"* ]]; then
echo "DATABASE=$PROFILE_NAME" >> $GITHUB_ENV
echo "ROLE=DBT_CLOUD_$PROFILE_NAME" >> $GITHUB_ENV
echo "WAREHOUSE=DBT_TEST" >> $GITHUB_ENV
else
echo "DATABASE=${PROFILE_NAME}_DEV" >> $GITHUB_ENV
echo "ROLE=INTERNAL_DEV" >> $GITHUB_ENV
echo "WAREHOUSE=${{ inputs.warehouse }}" >> $GITHUB_ENV
fi
- uses: actions/setup-python@v4
with:
python-version: ${{ inputs.python_version }}
cache: "pip"
- name: Install dependencies
run: |
pip install -r requirements.txt
dbt deps
- name: Run DBT Jobs
run: |
${{ inputs.command }}
- name: Store logs
uses: actions/upload-artifact@v4
with:
name: dbt-logs
path: |
logs
target