CI Templates

Use DatasetLint in CI to block dataset QA regressions before merge. These snippets assume the repository already contains the dataset paths being checked and that DatasetLint is installed from the current checkout.

Minimal Dataset Check

name: DatasetLint
on:
  pull_request:
  push:
    branches: [main]

jobs:
  datasetlint:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-python@v5
        with:
          python-version: "3.11"
      - run: python -m pip install -U pip
      - run: python -m pip install -e .
      - run: datasetlint examples/minimal_dataset

Fail On Warning

name: DatasetLint Strict
on:
  pull_request:

jobs:
  datasetlint:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-python@v5
        with:
          python-version: "3.11"
      - run: python -m pip install -U pip
      - run: python -m pip install -e .
      - run: datasetlint data/training --fail-on warning

Save Report Artifacts

name: DatasetLint Reports
on:
  pull_request:

jobs:
  datasetlint:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-python@v5
        with:
          python-version: "3.11"
      - run: python -m pip install -U pip
      - run: python -m pip install -e .
      - run: mkdir -p datasetlint-reports
      - run: datasetlint report examples/bad_dataset --out datasetlint-reports/report.json
        continue-on-error: true
      - run: datasetlint report examples/bad_dataset --out datasetlint-reports/report.md
        continue-on-error: true
      - run: datasetlint report examples/bad_dataset --out datasetlint-reports/report.html
        continue-on-error: true
      - uses: actions/upload-artifact@v4
        with:
          name: datasetlint-reports
          path: datasetlint-reports/
      - run: datasetlint examples/bad_dataset

The final validation step preserves the failing exit code after artifacts have been uploaded.

Diff Old And New Datasets

name: DatasetLint Diff
on:
  pull_request:

jobs:
  dataset-diff:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0
      - uses: actions/setup-python@v5
        with:
          python-version: "3.11"
      - run: python -m pip install -U pip
      - run: python -m pip install -e .
      - run: git fetch origin main
      - run: git checkout origin/main -- data/baseline
      - run: datasetlint diff data/baseline data/current --fail-on-regression

Adjust data/baseline and data/current to match the dataset layout in the repository. --fail-on-regression exits non-zero when the new dataset has worse issue counts, missing sensors, reduced duration, or other configured regressions.