<!--
title: Verify CI build consistency
domain: data-systems
topic: CI/CD
language: Yaml
source: apache/spark
updated: 2025-07-18
url: https://awesomereviewers.com/reviewers/spark-verify-ci-build-consistency/
-->

Ensure CI pipelines thoroughly verify build outputs and maintain consistency across different build tools and configurations. This prevents broken builds from reaching contributors and ensures reliable deployment artifacts.

Key practices:
1. **Cross-tool verification**: When using multiple build tools (Maven, SBT), verify that both produce consistent, working artifacts
2. **Proper build phases**: Use correct Maven lifecycle phases (e.g., `package test` instead of just `test`) to ensure proper classpath resolution
3. **Rigorous output testing**: Test the actual distribution artifacts, not just intermediate build outputs

Example from Maven workflow:
```yaml
# Ensure proper Maven phase ordering for integration tests
./build/mvn $MAVEN_CLI_OPTS -pl sql/connect/client/jvm,sql/connect/client/integration-tests,sql/connect/common,sql/connect/server package test -fae
```

This approach protects contributors' daily development by catching build inconsistencies early and making it easier to identify offending commits when builds break.
