Automated Build of Releases

The github issues can be used to build CMSSW Releases. The main idea is that an authorized user creates an issue with the name “Build <release_name>”. Then, cms-bot guides you through the process.

Only authorized people can request of a release through a github issue. To request the build of a release your username must be in the list REQUEST_BUILD_RELEASE in the categories.py file. Likewise, the build must be approved from one of the users in the list APPROVE_BUILD_RELEASE.

if you are not authorized to request a build, cms-bot will inform it and ignore the issue. In this diagram you can see a detailed description of the process.

Click here to access the diagram in Google Drive.

Notice that there is a label for each state of the process, this is the way in which cms-bot can tell the status of a build issue.

General Workflow

Here you can see an example of the process. This process is inteded to be very similar to the manual workflow and at any time the release manager should be able to manually continue it or solve a failure.

Important: The state of the build is marked using the labels of the Github Issue. There is a main label that represents the state of the process, and a label per each architecture that indicates the particular state of that architecture. You can modify the labels of the issue to change the state of the build. For example, if the build for the architecture slc6_amd64_gcc481 had an error, the issue will get the label slc6_amd64_gcc481-build-error. If you can manually fix the issue in the jenkins node, you can remove that label replace it with slc6_amd64_gcc481-build-ok. cms-bot will interpret it as if the build for that architecture went ok and continue with the workflow.

Scripts and Jenkins Jobs

Commands

During the process, cms-bot will indicate to the user which commands they can write in the comments depending on the status of the build. You need to be in the list APPROVE_BUILD_RELEASE in the file categories.py, otherwise your commands will be ignored. Currently the commands are:

Quick start