Convert python testing workflow to reusable workflow #2806
Merged
+345
−114
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Context
This PR implements the CI workflow modernization for the python client by converting all CI jobs to reusable workflows. This aligns the python client with the established pattern from the Go clients (see PR) and enables centralized CI management for the datadog-api-spec repository.
This work enables:
test.yml
maintains the familiar individual job structure while leveraging reusable componentsChanges
New Files
.github/workflows/reusable-ci.yml
: Complete CI workflow that orchestrates all validation steps - the single entry point for external repos.github/workflows/reusable-pre-commit.yml
: Pre-commit checks with configurable auto-commit behavior and fork handling.github/workflows/reusable-examples.yml
: Example code validation workflowModified Files
.github/workflows/test.yml
: Refactored to call individual reusable workflows (maintains familiar structure).github/workflows/reusable-python-test.yml
: Stripped to contain only core testing logic, enhanced with target-branch supportKey Design Decisions
reusable-ci.yml
for simplicityTests
This PR maintains 100% functional equivalence with the original CI behavior:
Local Repository (test.yml)
Reusable Workflows
reusable-python-test.yml
After merging, this will be tested end-to-end by calling the reusable workflows from the datadog-api-spec repository to validate generated client code, ensuring full MergeQueue compatibility.