All Projects → cms-sw → cms-bot

cms-sw / cms-bot

Licence: other
A few scripts to automate approval / testing process

Programming Languages

python
139335 projects - #7 most used programming language
shell
77523 projects
c
50402 projects - #5 most used programming language
javascript
184084 projects - #8 most used programming language
groovy
2714 projects
HTML
75241 projects
awk
318 projects

Introduction.

cms-bot started as a single script used to drive PR approval and grew to be the core of the whole release engineering process for CMSSW.

Setup

To have it working you'll need a ~/.github-token which can access the cms-sw organization.

Release integration

  • process-pull-request: this is the script which updates the status of a CMSSW PR. It parses all the messages associated to the specified PR and if it spots a transition (e.g. a L2 signature) it posts a message acknowledging what happended, updates the tags etc. The state of the PR is fully obtained by parsing all the comments, so that we do not have to maintain our own state tracking DB.
  • watchers.yaml: contains all the information required by process-pull-requests to notify developers when a PR touches the packages they watch.

Release building

  • process-build-release-request
  • release-build: script used to build a release which has been requested through a Github issue.
  • upload-release: script used to upload a release to the repository. When the job processing build requests spots a request to upload, it SSH to the build machine which has the release and executes this script.
  • config.map: semicolon separated key=value pairs formatted file with release queue related information. Each line represent a release queue. In particular CMSDIST_TAG is used to point to the CMSDIST tag to be used by the release building process.

Logging

Logging happens at many different level but we are trying to unify things using Elasticsearch for "live" data from which we dump precomputed views on a basis.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].