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:

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

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