Add pkg/cicd Deployer interface and Github implementation #437
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.
Introduces a new
pkg/cicdpackage that provides a generic interface for triggering deployments via external CICD systems. This package will be used by the rollback controller to trigger rollback deployments and poll for their completion status.Implementation
pkg/cicd/deployer.goCore interface and types:
Deployerinterface:TriggerDeployment(ctx, req)- Initiates a deployment in the CICD systemGetDeploymentStatus(ctx, deploymentID)- Retrieves current deployment statusName()- Returns a human-readable deployer name for logging/metricsDeploymentRequest- Embeds Rollback and Release resources with provider-specific optionsDeploymentResult- Contains deployment ID, status, message, and URLDeploymentStatus- Enum for Pending, InProgress, Succeeded, Failed, UnknownDeployerError- Wraps errors with retryability informationNoopDeployer- Test implementation that always succeeds immediatelypkg/cicd/github/deployer.goGitHub Deployments API implementation:
githubtype revisionrepositoryoptionpkg/cicd/github/deployer_test.goUnit tests covering deployment triggering, status polling, error handling, and helper functions