
Cloud & Backend
CI/CD in software development: Continuous Delivery (CD) for one-click releases
Aug 5, 2025
Content
Authors
David Härer
Cloud & Backend
In modern software development, it is crucial to deliver software quickly and reliably to customers. But how can it be ensured that each new version is stable, tested, and ready for deployment without developers getting bogged down in manual processes?
Continuous Integration (CI) ensures that the code is stable and tested. But how is this code transformed into a deployable artifact that can be delivered at any time? This is where Continuous Delivery (CD) comes into play. CD automates the path from development to deployment and enables teams to perform releases at the push of a button.

In this article, the second part of our series on CI/CD, we will show how Continuous Delivery works, what processes it includes, and how teams can benefit from this automation.
What does Continuous Delivery (CD) mean?
The result of software development is so-called software artifacts. These artifacts can vary depending on the type of software, for example:
· Executable programs (e.g., .exe or .apk files)
· Libraries (e.g., npm packages or .dll files)
· Container images (e.g., Docker images)
· Configuration files (e.g., YAML or ENV files)
· Documentation or log files
An artifact is ready for delivery when it meets the following criteria:
1. It has been successfully built.
2. It has passed all tests.
3. It is ready to be delivered to a target environment.
Continuous Delivery (CD) means that with every change to the main branch, the corresponding software artifacts are automatically built, tested, and prepared for delivery. The goal is to keep the software in a deployable state at all times.
Build Pipelines: Automating the Build Process
A build pipeline is an automated workflow that creates a runnable artifact from source code. Each time code is integrated into the main branch, a build process is triggered. The following aspects are considered:
Build Tooling:
Tools like CMake, Maven, uv, or Webpack ensure that the code is compiled, packaged, and transformed into an artifact.
Complex software supply chains can be managed through the development of custom build tools.
Build Environment:
Container technologies like Docker create a consistent build environment in which all necessary build tools are provided.
Techniques like cross-compilation enable the creation of artifacts for different target platforms.
Reproducible Builds:
A reproducible build guarantees that the same artifact can be created from the same source code repeatedly—regardless of the environment or the tools used.
An important factor is the reproducible creation of the build environment itself.
Acceptance Tests:
Automated tests ensure that the artifact is stable and functional.
In certain cases, manual tests may also be required to ensure specific quality requirements.
Artifact Repositories: Central Storage for Software Artifacts
Finished artifacts are stored and managed in an artifact repository. These repositories enable centralized delivery and reuse of artifacts. They can be categorized into two types:
Universal Repositories
These repositories support a variety of artifact types and are ideal for projects that work with different technologies. They provide a central platform for managing various artifacts and seamless integration with CI/CD tools. Examples include:
JFrog Artifactory: Supports most package formats and offers extensive integration options with CI/CD tools.
Sonatype Nexus: Focused on security and governance, making it ideal for companies with high compliance requirements.
GitHub Packages: Directly integrated into GitHub, ideal for projects hosted on GitHub.
Specialized Platforms
These repositories are tailored for specific artifact types and offer optimized functions for their management. Examples include:
Container Registry: Platforms like Docker Hub or integrated solutions (e.g., GitLab Container Registry) serve as central storage for container images.
npm: The standard registry for JavaScript and Node.js packages.
PyPI: The central platform for Python libraries.
NuGet Gallery: The official platform for .NET packages.
By using artifact repositories, all created artifacts are made centrally available, consistently managed, and can be utilized at any time for deployment or further development.
The Result: Release at the Push of a Button
With Continuous Delivery (CD), software development becomes more efficient and flexible. Teams can deliver a tested and deployable software artifact at any time without requiring additional manual steps.
Outlook: The Next Step Towards Full Automation
With Continuous Delivery (CD), teams can deliver a tested and deployable software artifact at any time. But how will the entire process—from code change to deployment in the production environment—be fully automated? In the third and final part of our series, we will focus on Continuous Deployment (CD) and show how teams can master this step towards full automation to make releases even faster and more reliable.