feat: implement dagster and dbt validation in ci
This commit is contained in:
@@ -17,3 +17,6 @@ PGADMIN_PASSWORD=changeme
|
|||||||
|
|
||||||
# Discord webhook for ELO alerts
|
# Discord webhook for ELO alerts
|
||||||
DISCORD_WEBHOOK_URL=https://discord.com/api/webhooks/your/webhook/url
|
DISCORD_WEBHOOK_URL=https://discord.com/api/webhooks/your/webhook/url
|
||||||
|
|
||||||
|
# MLflow
|
||||||
|
MLFLOW_TRACKING_URI=http://mlflow:5000
|
||||||
|
|||||||
9
.github/workflows/ci.yml
vendored
9
.github/workflows/ci.yml
vendored
@@ -80,6 +80,15 @@ jobs:
|
|||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: uv sync
|
run: uv sync
|
||||||
|
|
||||||
|
- name: Load environment from .env.example
|
||||||
|
run: grep -v '^#' .env.example | grep -v '^$' >> "$GITHUB_ENV"
|
||||||
|
|
||||||
|
- name: Generate dbt manifest
|
||||||
|
run: uv run dbt parse --project-dir dbt --profiles-dir dbt
|
||||||
|
|
||||||
|
- name: Validate Dagster definitions
|
||||||
|
run: uv run dagster definitions validate
|
||||||
|
|
||||||
- name: Run tests with coverage
|
- name: Run tests with coverage
|
||||||
run: uv run pytest tests/ --cov=data_platform --cov-report=json:coverage.json
|
run: uv run pytest tests/ --cov=data_platform --cov-report=json:coverage.json
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,5 @@
|
|||||||
"""Generic tests for Dagster definitions — schedules, jobs, and the Definitions object."""
|
"""Generic tests for Dagster definitions — schedules, jobs, and the Definitions object."""
|
||||||
|
|
||||||
from pathlib import Path
|
|
||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
from dagster import DefaultScheduleStatus
|
from dagster import DefaultScheduleStatus
|
||||||
|
|
||||||
@@ -95,14 +93,7 @@ class TestScheduleSpecific:
|
|||||||
# Definitions integration test
|
# Definitions integration test
|
||||||
# ---------------------------------------------------------------------------
|
# ---------------------------------------------------------------------------
|
||||||
|
|
||||||
_MANIFEST = Path(__file__).resolve().parent.parent / "dbt" / "target" / "manifest.json"
|
|
||||||
_skip_no_manifest = pytest.mark.skipif(
|
|
||||||
not _MANIFEST.exists(),
|
|
||||||
reason="dbt manifest not found (only available after local dbt compile)",
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
@_skip_no_manifest
|
|
||||||
class TestDefinitions:
|
class TestDefinitions:
|
||||||
def test_definitions_loads(self):
|
def test_definitions_loads(self):
|
||||||
from data_platform.definitions import defs
|
from data_platform.definitions import defs
|
||||||
|
|||||||
Reference in New Issue
Block a user