Jenkins Work-Flow Improvements and CMake Find-Module Standardization Martin Storø Nyfløtt CERN Summer Student 01.08.2016 Supervisor: Patricia Mendez Lorenzo
Outline Jenkins-GitHub Workflow Today Automating of CMake external packages update process CMake find-modules Jenkins email templates Conclusion
Jenkins-GitHub Workflow Today You push something to GitHub Jenkins realizes there is a change by polling e.g. each 10th minute Executes job: Pull changes, compile, run tests, etc. Publish result If failed, email is sent with build log
Jenkins and GitHub Integration Problem: Single Sign-On (SSO) Configuring resources outside SSO Stack: CentOS 7, Apache, Jenkins Reviewing with IT-security (Sebastian Lopienski) Suggested modules: mod_security and mod_evasive Implementation of shared secret mechanism with GitHub (Pull request) Pull request: https://github.com/jenkinsci/github-plugin/pull/129 How to set up: https://ep-dep-sft.web.cern.ch/Jenkins-HowTo
Automating CMake External Package Updating On new version of external module: Clone repo Tar repo Upload to AFS Update version numbers in CMake files Start job in Jenkins Fully automated in Python Script triggers on logged events from GitHub web-hooks https://gitlab.cern.ch/mstorony/lcgcmake-module-updater
CMake Find Modules Inconsistency: File names, variable names, flow Lack of documentation Deprecation of APIs/directives Proposal of guidelines and actions
Jenkins Email Templates Need for better email notifications Implemented with Email-ext plugin Implemented in Groovy, tap directly into the Jenkins API Tight cooperation with Axel Neumann Being used at root-incremental, lcg_ext_dev2, lcg_ext_dev3, lcg_ext_dev4, cling-generic-build Configurable for each project (Commit linking) https://gitlab.cern.ch/mstorony/phsft-jenkins-email-template/
Jenkins GitHub Workflow Future You push something to GitHub GitHub tells Jenkins there is a change Executes job: Pull changes, compile, run tests, etc. Publish result If failed, human-readable email is sent out
Conclusion Misleading documentation OSS contribution More efficient work-flow with GitHub Improved email notifications Automation of time-consuming tasks (CMake) Fun times
Questions martin.storo.nyflott@cern.ch Happy Swiss national holiday!