From 07f39ee8be0e694b33cee1cb16c40c5601375ace Mon Sep 17 00:00:00 2001 From: Kanaka Pothina Date: Sat, 16 May 2026 20:50:05 -0400 Subject: [PATCH] Enable CD on DBT --- .github/workflows/dbt-cd-deploy.yml | 61 +++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 .github/workflows/dbt-cd-deploy.yml diff --git a/.github/workflows/dbt-cd-deploy.yml b/.github/workflows/dbt-cd-deploy.yml new file mode 100644 index 0000000..b55ba48 --- /dev/null +++ b/.github/workflows/dbt-cd-deploy.yml @@ -0,0 +1,61 @@ +name: dbt prod Deploy + +on: + push: + branches: [ "master" ] # runs after PR merge (push to master) + workflow_dispatch: + +concurrency: + group: dbt-prod + cancel-in-progress: false + +jobs: + dbt-run: + runs-on: ubuntu-latest + environment: DBT_MI + defaults: + run: + working-directory: marketing_insights + + env: + DBT_PRIVATE_KEY: ${{ secrets.DBT_PRIVATE_KEY }} + DBT_PRIVATE_KEY_PATH: /home/runner/.dbt/rsa_key.p8 + DBT_SNOWFLAKE_ACCOUNT: ${{ secrets.DBT_SNOWFLAKE_ACCOUNT }} + DBT_SNOWFLAKE_ROLE: ${{ secrets.DBT_SNOWFLAKE_ROLE }} + DBT_SNOWFLAKE_USER: ${{ secrets.DBT_SNOWFLAKE_USER }} + DBT_SCHEMA: pr_${{ github.event.pull_request.number }}_ANALYTICS + + steps: + - name: Checkout repo + uses: actions/checkout@v3 + with: + fetch-depth: 0 # needed so we can access master too + + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: "3.12.13" + + - name: Install dbt + run: | + python -m pip install --upgrade pip + pip install dbt-core==1.11.8 dbt-snowflake==1.11.4 + + - name: Set up dbt profile + private key + run: | + mkdir -p ~/.dbt + cp .dbt/profiles.yml ~/.dbt/profiles.yml + echo "$DBT_PRIVATE_KEY" > ~/.dbt/rsa_key.p8 + chmod 600 ~/.dbt/rsa_key.p8 + + - name: dbt deps + run: dbt deps --target prod + + - name: dbt seed + run: dbt seed --target prod + + - name: dbt compile + run: dbt compile --target prod + + - name: dbt build (prod) + run: dbt build --target prod \ No newline at end of file