Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
41 commits
Select commit Hold shift + click to select a range
f37945b
test/buildkite-improvements
fivetran-catfritz Mar 20, 2026
3a42fa5
test/buildkite-improvements
fivetran-catfritz Mar 20, 2026
bbeda27
fix
fivetran-catfritz Mar 20, 2026
44682e3
test again
fivetran-catfritz Mar 20, 2026
5e99d16
test again
fivetran-catfritz Mar 20, 2026
d93c8ae
test again
fivetran-catfritz Mar 20, 2026
6b0c045
test again
fivetran-catfritz Mar 20, 2026
0aa67fe
test again
fivetran-catfritz Mar 20, 2026
8f0fcc7
test again
fivetran-catfritz Mar 20, 2026
9f6b06b
test again
fivetran-catfritz Mar 20, 2026
526cead
test again
fivetran-catfritz Mar 20, 2026
c358444
test again
fivetran-catfritz Mar 20, 2026
d69c836
test again
fivetran-catfritz Mar 20, 2026
0938509
test again
fivetran-catfritz Mar 20, 2026
3b59641
test again
fivetran-catfritz Mar 20, 2026
9e163de
fix dbt compile
fivetran-catfritz Mar 22, 2026
94677d9
add compile message
fivetran-catfritz Mar 22, 2026
57c8b59
add compile messages
fivetran-catfritz Mar 22, 2026
86cb6fb
remove schema cleanup
fivetran-catfritz Mar 27, 2026
e467b3b
add auto retry
fivetran-catfritz Mar 27, 2026
6baae08
debug
fivetran-catfritz Mar 27, 2026
399164a
debug
fivetran-catfritz Mar 27, 2026
bdc97ab
update generated schema name
fivetran-catfritz Mar 28, 2026
29db7c6
update where schema var name passed
fivetran-catfritz Apr 1, 2026
a03251b
add comments
fivetran-catfritz Apr 1, 2026
e0eae75
update names
fivetran-catfritz Apr 16, 2026
3453ff2
add test names
fivetran-catfritz Apr 16, 2026
d589042
add sql warehosue
fivetran-catfritz Apr 16, 2026
cd7635f
adjust vars
fivetran-catfritz Apr 17, 2026
90293de
adjust vars
fivetran-catfritz Apr 17, 2026
43b35af
move run_models to central
fivetran-catfritz Apr 17, 2026
8613c23
try centralizing
fivetran-catfritz Apr 17, 2026
384664a
try again
fivetran-catfritz Apr 17, 2026
61d8df6
try again
fivetran-catfritz Apr 17, 2026
4745c31
more consolidaton
fivetran-catfritz Apr 17, 2026
5229fd4
update
fivetran-catfritz Apr 17, 2026
c363f51
fix it
fivetran-catfritz Apr 17, 2026
dc8dcfa
file rename
fivetran-catfritz Apr 17, 2026
af9b389
update
fivetran-catfritz Apr 17, 2026
2ff6358
update
fivetran-catfritz Apr 17, 2026
f4ded3d
update
fivetran-catfritz Apr 17, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 2 additions & 24 deletions .buildkite/hooks/pre-command
Original file line number Diff line number Diff line change
@@ -1,25 +1,3 @@
#!/bin/bash

set -e

# Export secrets for Docker containers.
# Restrict exposing secrets only to the steps that need them
export GCLOUD_SERVICE_KEY=$(gcloud secrets versions access latest --secret="GCLOUD_SERVICE_KEY" --project="dbt-package-testing-363917")
export CI_POSTGRES_DBT_HOST=$(gcloud secrets versions access latest --secret="CI_POSTGRES_DBT_HOST" --project="dbt-package-testing-363917")
export CI_POSTGRES_DBT_USER=$(gcloud secrets versions access latest --secret="CI_POSTGRES_DBT_USER" --project="dbt-package-testing-363917")
export CI_POSTGRES_DBT_PASS=$(gcloud secrets versions access latest --secret="CI_POSTGRES_DBT_PASS" --project="dbt-package-testing-363917")
export CI_POSTGRES_DBT_DBNAME=$(gcloud secrets versions access latest --secret="CI_POSTGRES_DBT_DBNAME" --project="dbt-package-testing-363917")
export CI_REDSHIFT_DBT_DBNAME=$(gcloud secrets versions access latest --secret="CI_REDSHIFT_DBT_DBNAME" --project="dbt-package-testing-363917")
export CI_REDSHIFT_DBT_HOST=$(gcloud secrets versions access latest --secret="CI_REDSHIFT_DBT_HOST" --project="dbt-package-testing-363917")
export CI_REDSHIFT_DBT_PASS=$(gcloud secrets versions access latest --secret="CI_REDSHIFT_DBT_PASS" --project="dbt-package-testing-363917")
export CI_REDSHIFT_DBT_USER=$(gcloud secrets versions access latest --secret="CI_REDSHIFT_DBT_USER" --project="dbt-package-testing-363917")
export CI_SNOWFLAKE_DBT_ACCOUNT=$(gcloud secrets versions access latest --secret="CI_SNOWFLAKE_DBT_ACCOUNT" --project="dbt-package-testing-363917")
export CI_SNOWFLAKE_DBT_DATABASE=$(gcloud secrets versions access latest --secret="CI_SNOWFLAKE_DBT_DATABASE" --project="dbt-package-testing-363917")
export CI_SNOWFLAKE_DBT_PASS=$(gcloud secrets versions access latest --secret="CI_SNOWFLAKE_DBT_PASS" --project="dbt-package-testing-363917")
export CI_SNOWFLAKE_DBT_ROLE=$(gcloud secrets versions access latest --secret="CI_SNOWFLAKE_DBT_ROLE" --project="dbt-package-testing-363917")
export CI_SNOWFLAKE_DBT_USER=$(gcloud secrets versions access latest --secret="CI_SNOWFLAKE_DBT_USER" --project="dbt-package-testing-363917")
export CI_SNOWFLAKE_DBT_WAREHOUSE=$(gcloud secrets versions access latest --secret="CI_SNOWFLAKE_DBT_WAREHOUSE" --project="dbt-package-testing-363917")
export CI_DATABRICKS_DBT_HOST=$(gcloud secrets versions access latest --secret="CI_DATABRICKS_DBT_HOST" --project="dbt-package-testing-363917")
export CI_DATABRICKS_DBT_HTTP_PATH=$(gcloud secrets versions access latest --secret="CI_DATABRICKS_DBT_HTTP_PATH" --project="dbt-package-testing-363917")
export CI_DATABRICKS_DBT_TOKEN=$(gcloud secrets versions access latest --secret="CI_DATABRICKS_DBT_TOKEN" --project="dbt-package-testing-363917")
export CI_DATABRICKS_DBT_CATALOG=$(gcloud secrets versions access latest --secret="CI_DATABRICKS_DBT_CATALOG" --project="dbt-package-testing-363917")
curl -s -o /tmp/build-setup.sh "https://raw.githubusercontent.com/fivetran/dbt_package_automations/refs/heads/feature/buildkite-scripts/.buildkite/scripts/build_setup.sh"
source /tmp/build-setup.sh
55 changes: 44 additions & 11 deletions .buildkite/pipeline.yml
Original file line number Diff line number Diff line change
@@ -1,74 +1,107 @@
# Each test downloads a centralized test runner script from the dbt_package_automations repo,
# which handles environment setup, dependency installation, and dbt test execution.

env:
RUN_MODELS_URL: "https://raw.githubusercontent.com/fivetran/dbt_package_automations/refs/heads/feature/buildkite-scripts/.buildkite/scripts/run_models.sh"

steps:
- label: ":postgres: Run Tests - Postgres"
key: "run-dbt-postgres"
key: "run_dbt_postgres"
retry:
automatic:
- exit_status: -1 # Timeout
limit: 1
plugins:
- docker#v3.13.0:
image: "python:3.10.13"
image: "python:3.13"
shell: [ "/bin/bash", "-e", "-c" ]
environment:
- "BASH_ENV=/tmp/.bashrc"
- "BUILD_SCHEMA"
- "CI_POSTGRES_DBT_DBNAME"
- "CI_POSTGRES_DBT_HOST"
- "CI_POSTGRES_DBT_PASS"
- "CI_POSTGRES_DBT_USER"
commands: |
bash .buildkite/scripts/run_models.sh postgres
curl -s "${RUN_MODELS_URL}" | bash -s postgres

- label: ":snowflake-db: Run Tests - Snowflake"
key: "run_dbt_snowflake"
retry:
automatic:
- exit_status: -1 # Timeout
limit: 1
plugins:
- docker#v3.13.0:
image: "python:3.10.13"
image: "python:3.13"
shell: [ "/bin/bash", "-e", "-c" ]
environment:
- "BASH_ENV=/tmp/.bashrc"
- "BUILD_SCHEMA"
- "CI_SNOWFLAKE_DBT_ACCOUNT"
- "CI_SNOWFLAKE_DBT_DATABASE"
- "CI_SNOWFLAKE_DBT_PASS"
- "CI_SNOWFLAKE_DBT_ROLE"
- "CI_SNOWFLAKE_DBT_USER"
- "CI_SNOWFLAKE_DBT_WAREHOUSE"
commands: |
bash .buildkite/scripts/run_models.sh snowflake
curl -s "${RUN_MODELS_URL}" | bash -s snowflake

- label: ":gcloud: Run Tests - BigQuery"
key: "run_dbt_bigquery"
retry:
automatic:
- exit_status: -1 # Timeout
limit: 1
plugins:
- docker#v3.13.0:
image: "python:3.10.13"
image: "python:3.13"
shell: [ "/bin/bash", "-e", "-c" ]
environment:
- "BASH_ENV=/tmp/.bashrc"
- "BUILD_SCHEMA"
- "GCLOUD_SERVICE_KEY"
commands: |
bash .buildkite/scripts/run_models.sh bigquery
curl -s "${RUN_MODELS_URL}" | bash -s bigquery

- label: ":amazon-redshift: Run Tests - Redshift"
key: "run_dbt_redshift"
concurrency: 3
concurrency_group: "warehouse/redshift"
retry:
automatic:
- exit_status: -1 # Timeout
limit: 1
plugins:
- docker#v3.13.0:
image: "python:3.10.13"
image: "python:3.13"
shell: [ "/bin/bash", "-e", "-c" ]
environment:
- "BASH_ENV=/tmp/.bashrc"
- "BUILD_SCHEMA"
- "CI_REDSHIFT_DBT_DBNAME"
- "CI_REDSHIFT_DBT_HOST"
- "CI_REDSHIFT_DBT_PASS"
- "CI_REDSHIFT_DBT_USER"
commands: |
bash .buildkite/scripts/run_models.sh redshift
curl -s "${RUN_MODELS_URL}" | bash -s redshift

- label: ":databricks: Run Tests - Databricks"
key: "run_dbt_databricks"
retry:
automatic:
- exit_status: -1 # Timeout
limit: 1
plugins:
- docker#v3.13.0:
image: "python:3.10.13"
image: "python:3.13"
shell: [ "/bin/bash", "-e", "-c" ]
environment:
- "BASH_ENV=/tmp/.bashrc"
- "BUILD_SCHEMA"
- "CI_DATABRICKS_DBT_HOST"
- "CI_DATABRICKS_DBT_HTTP_PATH"
- "CI_DATABRICKS_DBT_TOKEN"
- "CI_DATABRICKS_DBT_CATALOG"
commands: |
bash .buildkite/scripts/run_models.sh databricks
curl -s "${RUN_MODELS_URL}" | bash -s databricks
25 changes: 0 additions & 25 deletions .buildkite/scripts/run_models.sh

This file was deleted.

50 changes: 0 additions & 50 deletions integration_tests/ci/sample.profiles.yml

This file was deleted.

18 changes: 18 additions & 0 deletions integration_tests/ci/test_scenarios.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Name of the dbt variable used to set the schema where data lives
# This is the variable name you use in dbt (e.g., amazon_ads_schema)
schema_variable_name: "amazon_ads_schema"
default_include_incremental: false # Whether default scenario should test incremental runs

# Additional test scenarios (default run happens automatically)
test_scenarios:
- name: "portfolio history disabled"
vars:
amazon_ads__portfolio_history_enabled: false
include_incremental: false

# Add more scenarios as needed:
# - name: "some other scenario"
# vars:
# amazon_ads__some_other_flag: true
# amazon_ads__another_setting: "custom_value"
# include_incremental: false
45 changes: 38 additions & 7 deletions integration_tests/dbt_project.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ profile: 'integration_tests'

vars:
amazon_ads:
amazon_ads_schema: amazon_ads_integration_tests_03
amazon_ads_schema: "amazon_ads_integration_tests"
amazon_ads_ad_group_history_identifier: "ad_group_history_data"
amazon_ads_ad_group_level_report_identifier: "ad_group_level_report_data"
amazon_ads_advertised_product_report_identifier: "advertised_product_report_data"
Expand Down Expand Up @@ -43,12 +43,43 @@ seeds:
amazon_ads_integration_tests:
+column_types:
_fivetran_synced: "timestamp"
campaign_budget_amount: "float"
click_through_rate: "float"
keyword_bid: "float"
clicks: "float"
impressions: "float"
cost: "float"
# Seeds with reporting metrics (clicks, impressions, cost)
ad_group_level_report_data:
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thinking to also update +column_types for packages that don't specify the source table to clean up buildkite runs.

+column_types:
_fivetran_synced: "timestamp"
clicks: "float"
impressions: "float"
cost: "float"
campaign_level_report_data:
+column_types:
_fivetran_synced: "timestamp"
campaign_budget_amount: "float"
clicks: "float"
impressions: "float"
cost: "float"
targeting_keyword_report_data:
+column_types:
_fivetran_synced: "timestamp"
campaign_budget_amount: "float"
keyword_bid: "float"
clicks: "float"
impressions: "float"
cost: "float"
search_term_ad_keyword_report_data:
+column_types:
_fivetran_synced: "timestamp"
campaign_budget_amount: "float"
keyword_bid: "float"
clicks: "float"
impressions: "float"
cost: "float"
advertised_product_report_data:
+column_types:
_fivetran_synced: "timestamp"
campaign_budget_amount: "float"
clicks: "float"
impressions: "float"
cost: "float"
flags:
send_anonymous_usage_stats: False
use_colors: True