Jenkins¶
Jenkins is a automated build system.
General Points and Goals¶
Jenkins does a number of automatic ZenPack building tasks. We currently have 2 Jenkins servers:
- http://solutions-jenkins.zenoss.eng (Solutions)
- jenkins.zenoss.com
Task List¶
Jenkins task list is the entry point. It allows you to search for specific builds. If you search these
- Master: Builds latest release
- Develop: Builds latest develop branch
- Request: Pull Requests: Feature -> Develop merge build tests
Zenpack Workflow¶
- Make your zenpack in Github with a Develop branch
- Install and Enable Git Flow
- Push your development branch up to Github
- Now go up to Github and create a pull request
- Someone else will review and merge
- See the documentation on workflow at Git-Flow and Git for Gits ;)
Go to Jenkins and Probe Build¶
- Jenkins has a 5 minute delay
- You can force build (Build Now)
- Jenkins will automatically increment the revision number and commit hash
Releasing¶
- Once devel is stable you can release: (See Zenpack Release Notes)
- If working on a hotfix, see HotFix Release Notes
New Builds¶
ssh to the server jenkins.zenosslabs.com
Ask someone for credentials
add-zenpack-jobs -o zenoss -t <very_long_hash_key>:
Find the <very_long_hash_key> in the crontab entry
Wait that script start prompting for unselected ZenPacks. You will see:
What does [Syaunq?] mean? s) Skip to next job. Don't do anything. y) Add or update Jenkins job. a) Add or update and always do the same in future. u) Update Jenkins job only if it already exists. n) Skip and never ask about this job again. q) Quit. ?) This help."
Answer ‘s’ until you see yours, then ‘a’ and ‘q’
Tests on Builds¶
- Unit tests are not yet available
- Jenkins will spin-up a 4.2.4 Zenoss and compile the egg
- All Java artifacts are imported each time
- Includes: See the Manifest.in file