-
Notifications
You must be signed in to change notification settings - Fork 5
Introduction and Concepts CI
Every pull request to NiFi Hub runs automated quality checks before merging. Different checks fire depending on what files are modified.
Workflow: bundle-ci.yml
Triggers: PRs modifying extensions/, pom.xml, checkstyle.xml
When a PR touches extension bundle code, the workflow:
- Detects changed bundles — walks the changed file list and identifies which bundle aggregator directories are affected
-
Builds each changed bundle in parallel with full quality checks:
-
Checkstyle — NiFi coding conventions enforced via
checkstyle.xml(200-char lines, no star imports,finaleverywhere possible, SLF4J loggers, etc.) -
PMD — static analysis rules aligned with Apache NiFi, defined in
pmd-ruleset.xml - Apache RAT — verifies Apache 2.0 license headers are present on all source files
- Unit tests — all tests run via Maven Surefire
- Code coverage — minimum 80% line coverage enforced via JaCoCo; results uploaded to Codecov
-
Checkstyle — NiFi coding conventions enforced via
- Posts a coverage summary on the PR as a comment, showing line/branch/instruction percentages and a per-module breakdown
Only bundles whose source files changed are built — unaffected bundles are skipped.
Workflow: flow-ci.yml
Triggers: PRs modifying flows/
When a PR touches flow definitions or flow tests, two jobs run in parallel:
Uses the Snowflake Flow Diff Action to post a human-readable summary of what changed in each modified flow, plus checkstyle violations. See that page for full details.
-
Detects changed flow buckets — identifies which
flows/<bucket>/directories are affected -
Runs pytest against the corresponding
tests/directory for each changed bucket - Tests validate flow structure (required components present, parameters defined, connections valid) using nipyapi
Workflow: code-compliance.yml
Triggers: PRs and pushes to main
Runs security and compliance checks across the full codebase:
- CodeQL — GitHub's static analysis for security vulnerabilities (Java)
- Checkstyle — applied across all extension source files
- PMD — applied across all extension source files
- Apache RAT — license header verification
Workflow: dependency-check.yml
Triggers: PRs modifying extensions/
Verifies that all Maven dependencies in extension bundles are on their latest available versions. PRs that introduce outdated dependencies fail this check, keeping the dependency graph current.
All PRs require at least one approving review plus all applicable CI checks passing before merging to main.