featuresmith
  • Docs
  • SDK
  • CLI
  • Examples
  • Roadmap
v0.1.0
Documentation

Getting Started

  • Introduction
  • Installation
  • Quick Start
  • Benchmarks
  • Development Setup
  • Contributing

Core Concepts

  • Architecture Overview
  • Dataset Layer
  • Connectors
  • Profiling Engine
  • Rule Engine

Python SDK

  • load()
  • profile()
  • analyze()
  • Data Models
  • Exceptions
  • Plugins

CLI Reference

  • analyze
  • Configuration

Guides

  • CI/CD Integration
  • Custom Rules
  • Writing Plugins

Resources

  • Release Notes
  • FAQ
  • Troubleshooting
DocsGuide

Getting Started

  • Introduction
  • Installation
  • Quick Start
  • Benchmarks
  • Development Setup
  • Contributing

Core Concepts

  • Architecture Overview
  • Dataset Layer
  • Connectors
  • Profiling Engine
  • Rule Engine

Python SDK

  • load()
  • profile()
  • analyze()
  • Data Models
  • Exceptions
  • Plugins

CLI Reference

  • analyze
  • Configuration

Guides

  • CI/CD Integration
  • Custom Rules
  • Writing Plugins

Resources

  • Release Notes
  • FAQ
  • Troubleshooting
HomeDocsCI/CD Integration

Guides

CI/CD Integration

Automate data quality and target leakage checks in your deployment pipelines

Data quality issues and target leakage often sneak into production because datasets are updated out-of-band or model retraining runs automatically. Featuresmith is designed to run inside CI/CD pipelines to prevent model degradation by gating deployments on strict rule audits.

Exit-Code Gating

The featuresmith analyze command returns deterministic exit codes that shell runners can check to decide whether to block or proceed with the build:

  • 0: Clean run — no findings detected at or above the requested severity threshold.
  • 1: Rule violation(s) detected — one or more audits failed. This will automatically fail standard CI steps unless ignored.
  • 2: Invalid input — misspelled arguments, target column not in schema, or incorrect options.
  • 3: Ingestion/load failure — database or files could not be read or parsed.

GitHub Actions Workflow

Here is a complete, copy-pasteable GitHub Actions workflow file (.github/workflows/data-audit.yml) that runs Featuresmith on every pull request to check for schema drift and target leakage:

yaml
1name: Data Quality Audit
2
3on:
4 push:
5 branches: [ main ]
6 pull_request:
7 branches: [ main ]
8
9jobs:
10 audit-data:
11 runs-on: ubuntu-latest
12 steps:
13 - name: Checkout Code
14 uses: actions/checkout@v4
15
16 - name: Install Python & uv
17 uses: astral-sh/setup-uv@v3
18 with:
19 python-version: "3.11"
20
21 - name: Install Featuresmith
22 run: |
23 uv pip install featuresmith-core featuresmith-cli --system
24
25 - name: Run Data Quality Audit
26 run: |
27 # Gate pipeline on 'warning' and 'critical' severity levels
28 featuresmith analyze data/train.csv --target churn --severity warning

Customizing Gates

You can customize the strictness of your CI gate by overriding severity settings in your local .featuresmith.yml configuration file, or by passing the --severity flag to the CLI.

bash
1# Only fail builds on critical violations (fully empty columns or target leakage)
2featuresmith analyze data/train.csv --target churn --severity critical

Explore

  • Quick Start
  • Python SDK
  • CLI Reference
  • Examples
featuresmith

Open-source data profiling and validation for Python engineers.

Documentation

  • Introduction
  • Quick Start
  • Python SDK
  • CLI Reference

Community

  • GitHub
  • Discussions
  • Issues
  • Contributing

Project

  • Roadmap
  • Release status
  • Benchmarks
  • Changelog
  • Examples

Legal

  • Apache 2.0 License
  • Code of Conduct
  • Security

© 2026 Featuresmith Contributors. Released under the Apache 2.0 License.

Built in the open — contributions welcome.