About Cyrus Works¶
Whenever the Cyrus team push changes to the project repository, a notification is sent to Jenkins (open source automation server). Our Jenkins server is called Cyrus Works and can be found at https://www.cyrus.works.
Once a week Cyrus.Works builds a complete image, fetching all upstream packages.
Interim builds during the week use the cached weekly image and apply the latest Cyrus IMAP code changes from Git.
Email notifications of build results are sent to the development team.
Cyrus.works will fail is certain strings are found in the log files. To view results and filter errors/warnings view: https://cyrus.works/job/master-jessie/lastFailedBuild/parsed_console/
How it works¶
You can find out more about Cyrus.Works in the FastMail 2016 advent series blog post.
The code used to build Cyrus.works is available https://github.com/cyrusimap/cyrusworks.
Instructions on how to add rules: https://wiki.jenkins.io/display/JENKINS/Log+Parser+Plugin
The rules for Cyrus Works are stored within git: https://github.com/cyrusimap/cyrusworks/blob/master/Scripts/cyrusworksrules
You need to add rules to two places:
- Git: so when cyrus.works is reinstalled those rules are not lost
2. The server: so they’re actually used. Changed pushed to git aren’t pushed to the server. This is for security reasons (we don’t want anyone on the internet to be able to push changes to a live server).