dbt
Saas cicd
Test For Green Builds
Test For Green Builds model for saas cicd.
inferred
Blocks
test_for_green_builds.sql · 29 lines
inferred
-- models/test_for_green_builds.sql
{{ config(materialized='view') }}
SELECT DISTINCT ON (name)
name, build_num, start_time
FROM
(SELECT
builds.project_id AS "project_id",
organizations.name AS "name",
builds.build_num AS "build_num",
builds.start_time AS "start_time"
FROM organizations
LEFT JOIN organization_projects ON organizations.id = organization_projects.organization_id
LEFT JOIN projects ON projects.id = organization_projects.project_id
LEFT JOIN builds ON projects.id = builds.project_id
WHERE
builds.is_first_green_build
ORDER BY builds.start_time ASC) AS "TABLE"
LIMIT 100
# models/schema.yml
version: 2
models:
- name: test_for_green_builds
columns:
- name: name
- name: build_num
- name: start_time
Assumptions
- materialized='view' is the default; no persist hint found.
- schema.yml columns come from view dimensions; a primary_key dimension gets unique + not_null tests.
test_for_green_builds.sql · 16 lines
source-preserved
validation: parses
SELECT DISTINCT ON (name)
name, build_num, start_time
FROM
(SELECT
builds.project_id AS "project_id",
organizations.name AS "name",
builds.build_num AS "build_num",
builds.start_time AS "start_time"
FROM organizations
LEFT JOIN organization_projects ON organizations.id = organization_projects.organization_id
LEFT JOIN projects ON projects.id = organization_projects.project_id
LEFT JOIN builds ON projects.id = builds.project_id
WHERE
builds.is_first_green_build
ORDER BY builds.start_time ASC) AS "TABLE"
LIMIT 100
test_for_green_builds.view.lkml · 45 lines
inferred
view: test_for_green_builds {
derived_table: {
sql: SELECT DISTINCT ON (name)
name, build_num, start_time
FROM
(SELECT
builds.project_id AS "project_id",
organizations.name AS "name",
builds.build_num AS "build_num",
builds.start_time AS "start_time"
FROM organizations
LEFT JOIN organization_projects ON organizations.id = organization_projects.organization_id
LEFT JOIN projects ON projects.id = organization_projects.project_id
LEFT JOIN builds ON projects.id = builds.project_id
WHERE
builds.is_first_green_build
ORDER BY builds.start_time ASC) AS "TABLE"
LIMIT 100 ;;
}
dimension: name {
type: string
sql: ${TABLE}.name ;;
}
dimension: build_num {
type: int
sql: ${TABLE}.build_num ;;
}
dimension: start_time {
type: time
sql: ${TABLE}.start_time ;;
}
measure: count {
type: count
drill_fields: [detail*]
}
measure: build_num_avg {
type: avg
sql: ${TABLE}.build_num ;;
}
}
test_for_green_builds.view.lookml · 35 lines
source-preserved
- view: test_for_green_builds
derived_table:
sql: SELECT DISTINCT ON (name)
name, build_num, start_time
FROM
(SELECT
builds.project_id AS "project_id",
organizations.name AS "name",
builds.build_num AS "build_num",
builds.start_time AS "start_time"
FROM organizations
LEFT JOIN organization_projects ON organizations.id = organization_projects.organization_id
LEFT JOIN projects ON projects.id = organization_projects.project_id
LEFT JOIN builds ON projects.id = builds.project_id
WHERE
builds.is_first_green_build
ORDER BY builds.start_time ASC) AS "TABLE"
LIMIT 100
fields:
- dimension: name
type: string
sql: ${TABLE}.name
- dimension: build_num
type: int
sql: ${TABLE}.build_num
- dimension: start_time
type: time
sql: ${TABLE}.start_time
- measure: count
type: count
drill_fields:
- detail*
- measure: build_num_avg
type: avg
sql: ${TABLE}.build_num
Contents
- test_for_green_builds.sql
- test_for_green_builds.sql
- test_for_green_builds.view.lkml
- test_for_green_builds.view.lookml