CRAB CI/CD flow with Jenkins
- Each new release created in CRABServer repository triggers Jenkins job that builds RPMs and docker image for crabcache, crabserver, crabtaskworker.
- In
master
branch agreed naming convention for tagging new releases should follow this logic:v3.YYMMDD
. Note: dash is not allowed in branch or tag name. - Built RPMs are stored in
comp.crab_[branch]
repository every time overwriting old RPMs files.[branch]
stands for the branch name which was used to create new release, e.g.comp.crab_master
.
- If RPMs build job was successful, Jenkins job that builds Docker images is triggered.
- Built images are stored in
cmssw/[crabcache|crabserver|crabtaskworker]
Docker Hub repository. - After build is done, email notification is sent confirming that overall build process is done with indication whether build failed or succeed. Log is attached to the email for investigation.
- crabserver can be deployed to given environment by entering needed parameters in this Jenkins job.
- Two parameters should be provided before starting the build job:
DOCKER_IMAGE_TAG
andENVIRONMENT
. DOCKER_IMAGE_TAG
requires to enter image tag that should be deployed.ENVIRONMENT
requires to enterk8s
host name where provided tag should be deployed. Default value points tocmsweb-testbed.cern.ch
.- After deployment of crabserver is done, email notification is sent confirming that deployment process is done with indication whether it failed or succeed. Log is attached to the email for investigation.