Continuous Integration (CI)¶
In PSS®X, we have implemented a Continuous Integration (CI) workflow to ensure a consistent, reliable, and efficient development process. This section provides an overview of the CI pipeline, its benefits, and the tools we are using.
Our CI pipeline consists of the following stages:
-
Source Code Management: All the code changes are stored in a centralized repository, GitLab, which allows for easy collaboration, version control, and branch management.
-
Build: The source code is compiled and built using the project's build system (dotnet).
-
Test: Unit tests, integration tests, and end-to-end tests are run to ensure the code changes do not introduce any errors or regressions.
-
Code Quality Checks: Static code analysis tool SonarQube is used to check the quality of the code, adherence to coding standards, and detection of potential security vulnerabilities.
-
Packaging and Deployment: If the tests pass, the built artifacts are packaged and deployed to the appropriate environment for further testing or release.
Basic templates¶
Our pipelines should use the templates, we provide. There are several pipeline templates, that implement the basic functionality:
Please always use the newest version of the templates.
Releases¶
Project to provide a semantic release CI/CD template for github fow, gitlab flow or trunk-based developments
For detailed information, please refer to the documentation
Release-It¶
Project to provide a semantic release CI/CD template for git flow
For detailed information, please refer to the documentation
Kaniko¶
Build docker images.
The kaniko template is used to build and test docker images.
For detailed information, please refer to the documentation
Dotnet¶
Gitlab CI/CD template provides commands for working with .NET projects.
For detailed information, please refer to the documentation
Terraform¶
This template implements a method to select one of two terraform states depending on the branch (default-branch or other branch ) and also to select one or another eks cluster if the terraform file uses the kubernetes, kubectl or helm provider.
For detailed information, please refer to the documentation
Sonarqube¶
Template is a GitLab CI/CD configuration file designed for building, testing, and analyzing .NET Core projects. It includes the setup of a code proxy for securely accessing private Git repositories
For detailed information, please refer to the documentation
Jfrog¶
Gitlab CI/CD template facilitates setup of the jfrog to provide the cli functionality
For detailed information, please refer to the documentation
Release-cli¶
Gitlab CI/CD template for Gitlab Release command-line tool
For detailed information, please refer to the documentation
Trivy¶
Gitlab CI/CD template that facilitates scan targets against security issues
For detailed information, please refer to the documentation
Cosign¶
Cosign CI/CD template is a tool used for signing, verifying, and protecting container images and other software artifacts. It aims to improve the security of our software supply chain.
For detailed information, please refer to the documentation