You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Task: Enhance CI/CD Pipeline for Evergreen Deployments
Objective: Ensure consistent testing and artifact generation processes, improving security and efficiency in our CI/CD pipeline. This involves using GitHub's deployments and environments functionality, generating multiple build artifacts, and handling multi-architecture deployments effectively.
Background
To achieve evergreen deployments, we need to streamline our CI/CD pipeline, ensuring that pull requests go through consistent testing before merging into the master (trunk) branch. The core CI pipeline generates the main Docker image artifact representing the code at each commit. However, the current post-build workflows are fragmented and inefficient, often rebuilding artifacts from scratch and posing security risks due to broad access to deployment secrets.
Steps
Adopt GitHub's Deployments and Environments
Use GitHub’s deployment and environments functionality to manage artifact publishing from commits on the trunk branch.
Ensure that deployment secrets are restricted and securely managed.
Refine the Core CI/CD Build
Trigger the core Maven CI/CD build on various events: pull requests, merge queue, master branch commits, and manual triggers.
Balance performance and error detection by customizing tests based on the trigger type.
Generate and archive build artifacts, including status reports and test results.
Separate Build from Deployment
Maintain separation of concerns by ensuring the core CI/CD build does not handle final artifact deployment.
Run the main CI/CD workflow in a less secure environment to protect deployment secrets, especially for pull requests.
Manage Build Artifacts
Identify and categorize the following build artifacts:
Docker Image -> Dockerhub (multi-architectures)
CLI Executables (multiple architectures) -> NPM
Maven Artifacts -> Artifactory
Documentation (Swagger Doc, Java Doc)
DotCMS SDK
Use dedicated deployment scripts (e.g., deploy-artifact-dockerhub.yml) for different artifact types and deployment targets.
Integrate with DotCMS Infrastructure Deployments
Coordinate with existing K8s infrastructure workflows, triggering updates on docker tag changes.
Ensure deployment scripts wait for successful completion status before proceeding.
Handle Versioned Artifacts
Integrate Maven CI-friendly versions to streamline versioned builds.
Add conditional logic to the main CI/CD workflow for setting or using provided version numbers.
Enable manual, tag-based, or scheduled triggers for versioned builds, promoting artifacts without rebuilding.
Support Multi-Architecture Deployments
Build and test default architecture in the core CI/CD workflow, with conditional logic for multi-architecture builds.
Ensure multi-architecture Docker builds are part of the deployment steps, avoiding source rebuilds.
Checklist
Update core CI pipeline to use GitHub’s deployments and environments.
Refactor the core Maven CI/CD build to trigger on various events and balance performance with error detection.
Ensure build artifacts are properly generated and archived.
Maintain separation between build and deployment processes.
Implement dedicated deployment scripts for different artifact types.
Integrate CI/CD with DotCMS infrastructure deployments.
Utilize Maven CI-friendly versions for versioned builds.
Implement multi-architecture support in deployment steps.
Document the CI/CD pipeline and provide clear instructions for managing deployment secrets and handling conflicts.
The content you are editing has changed. Please copy your edits and refresh the page.
Task: Enhance CI/CD Pipeline for Evergreen Deployments
Objective: Ensure consistent testing and artifact generation processes, improving security and efficiency in our CI/CD pipeline. This involves using GitHub's deployments and environments functionality, generating multiple build artifacts, and handling multi-architecture deployments effectively.
Background
To achieve evergreen deployments, we need to streamline our CI/CD pipeline, ensuring that pull requests go through consistent testing before merging into the master (trunk) branch. The core CI pipeline generates the main Docker image artifact representing the code at each commit. However, the current post-build workflows are fragmented and inefficient, often rebuilding artifacts from scratch and posing security risks due to broad access to deployment secrets.
Steps
Adopt GitHub's Deployments and Environments
Refine the Core CI/CD Build
Separate Build from Deployment
Manage Build Artifacts
deploy-artifact-dockerhub.yml
) for different artifact types and deployment targets.Integrate with DotCMS Infrastructure Deployments
Handle Versioned Artifacts
Support Multi-Architecture Deployments
Checklist
Tasks
Additional Notes
The text was updated successfully, but these errors were encountered: