dbt-ci

star 4

Use when generating GitHub Actions workflows for dbt, adding dbt build/test/docs steps, or configuring state-based selection with --select state:modified+. Provides templates for both full builds (CD) and incremental builds (CI).

DataRecce By DataRecce schedule Updated 2/6/2026

name: dbt-ci description: > Use when generating GitHub Actions workflows for dbt, adding dbt build/test/docs steps, or configuring state-based selection with --select state:modified+. Provides templates for both full builds (CD) and incremental builds (CI).

dbt CI

GitHub Actions Steps

Full Build (CD / Production Baseline)

Use for production baseline workflows where you build everything:

If uv:

- name: Run dbt
  run: |
    uv run dbt deps
    uv run dbt build --target {TARGET}
    uv run dbt docs generate --target {TARGET}

If pip:

- name: Run dbt
  run: |
    source .venv/bin/activate
    dbt deps
    dbt build --target {TARGET}
    dbt docs generate --target {TARGET}

Incremental Build (CI / Pull Requests)

Use --state for state-based selection when comparing against a baseline:

If uv:

- name: Run dbt (modified models only)
  run: |
    uv run dbt deps
    uv run dbt build --target {TARGET} --select state:modified+ --state {STATE_PATH}
    uv run dbt docs generate --target {TARGET} --select state:modified+ --state {STATE_PATH}

If pip:

- name: Run dbt (modified models only)
  run: |
    source .venv/bin/activate
    dbt deps
    dbt build --target {TARGET} --select state:modified+ --state {STATE_PATH}
    dbt docs generate --target {TARGET} --select state:modified+ --state {STATE_PATH}

Variables

Variable Description Example
{TARGET} dbt target/profile name prod, ci, dev
{STATE_PATH} Path to baseline manifest for comparison target-base

State-Based Selection

  • state:modified - Only models with code changes
  • state:modified+ - Modified models + downstream dependencies
  • +state:modified+ - Upstream + modified + downstream

Requires --state <path> pointing to a directory with baseline manifest.json.

Best Practices

  • Use state:modified+ in CI to only rebuild what changed
  • Always run dbt docs generate to create artifacts for comparison tools
  • Match --target to your profiles.yml environment (prod, ci, dev)
  • Ensure baseline manifest exists before using --state flag

Related Skills

  • Use python-uv-ci skill for Python/uv environment setup steps
  • Use python-pip-ci skill for Python/pip environment setup steps
  • Use recce-cloud-ci skill for Recce Cloud upload/download steps
Install via CLI
npx skills add https://github.com/DataRecce/recce-claude-plugin --skill dbt-ci
Repository Details
star Stars 4
call_split Forks 1
navigation Branch main
article Path SKILL.md
More from Creator