Link Search Menu Expand Document
Consortium of European Social Science Data Archives

Release Process

Terminology

See Naming Conventions.

Current release process

The CESSDA software release process is partially automated, using continuous integration to automatically create test deployments.

Source code is built and unit tests are run in the component’s source code repositories. The resulting artefact is a Docker image, with a tag set to the branch name and the build number of the build that created the image. This Docker image is deployed to the development cluster automatically.

The deployment pipeline automatically starts the test pipeline, which runs integration tests against the development deployment. If the integration tests pass the components deployed to development are deployed together to staging. This is the last automatic stage.

To release to production, the service owner will decide on a release date. By convention, this is usually a Tuesday. On this date, once the release checklist has been completed, the deploy job will be run against a specific staging build.

Continuous deployment

CESSDA is implementing continuous deployment across its services.

Continuous deployment automatically deploys new code that is merged into the main branch of a repository to production once tests pass. It reduces the amount of effort needed to release new versions of software.

The code is build and tested using the same process as mentioned above, with unit tests run during the build pipeline and intergration tests run after the code has been deployed. One of the significant differences is that code is no longer deployed to the development cluster and is instead deployed directly to staging.

Integration tests are run against staging. Once these tests pass, the new code is deployed directly to production. There is no manual release process.

Jenkinsfile

  • Use ${GIT_COMMIT} for image tags i.e. ${DOCKER_ARTIFACT_REGISTRY}/${productName}-${componentName}:${GIT_COMMIT}