Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • Multi-JDK jobs are "multi-jdk" jobs in Jenkins terms.
  • The job name should be the name of the corresponding project suffixed with -multi-jdk, e.g., java-identity-provider-multi-jdk.
  • These jobs should be triggered by SCM polling so that they only run if changes have been made, but polled only once per day:

H H(0-3) 15 20 * * *

  • This specifier means once, some time between 00:00 and 03:59.  Again, the use of Jenkins hash notation spreads the triggering of these jobs throughout that period.
  • The number of builds retained should be 30, to allow good tracking of trends.
  • Typical Maven goals: clean verify -Prelease

...

  • Nightly jobs are "freeform" jobs in Jenkins terms.
  • The job name should be the name of the corresponding project suffixed with -nightly, e.g., java-identity-provider-nightly.
  • Nightly jobs are arranged in groups consisting of a sequence of jobs associated with a particular parent POM:
    • A trigger job (trigger-nightly-v2v7,trigger-nightly-v3v8) which determines the time the group is rebuilt. This triggers the building of the parent project's nightly.
    • The parent project's nightly job, which once built triggers the first dependent nightly,
    • Subsequent dependent nightlies, each of which triggers the next once it has been built.
    • The group is structured mainly as a chain, but jobs which themselves have no dependencies may be added as branches at any point where all of their own dependencies have already been built. This is useful for jobs which we might want to re-trigger the nightly for without rebuilding everything.
  • Within each group, the triggering of the subsequent job is:
    • An unconditional post-built action; this forces all jobs in the chain to be performed even if one should fail.
    • Ordered so that a dependency is always built before all of its dependent jobs.
  • The number of builds retained should be 30, to allow good tracking of trends.
  • Typical Maven goals: clean -Prelease -U deploy site
    • The site goal enables things like the Checkstyle and Cobertura results to be published.
  • Post-build actions:
    • Publish Checkstyle analysis results
      • Leave box blank
      • Select "Detect modules" advanced warning for multi-module projects.
    • Build other projects:
      • next project in the chain
      • Select "Trigger even if the build fails" option.
    • Publish HTML reports:
      • target/site | index.html | Site Report
    • Publish Javadoc:
      • target/apidocs or target/site/apidocs (which?) for single module project
      • foo-parent/target/site/apidocs for multi-module project
    • Publish TestNG Results:
      • **/target/surefire-reports/testng-results.xml
      • Select "Escape Test description string"
      • Select "Escape exception messages"
    • E-mail notification:
      • commits@shibboleth.net
      • Send e-mail for every unstable build

The V3 V7 nightly job group executes in the following order, with indentation indicating branching from the main chain:

  • trigger-nightly-v3v7 (at 0120:xx 00 Eastern every day)
  • java-parent-project-v3v7-nightly
    • ant-extensions-nightly
    • jetty7-dta-ssl-nightly
    • jetty9-dta-ssl-nightly
    • tomcat6-dta-ssl-nightly
  • java-support-v7-nightly
  • spring-extensions-v5-nightly
    • java-metadata-aggregator-v0.9-nightly
  • java-opensaml-nightly
  • java-identity-provider-nightly
  • java-idp-testbed-nightly

The V2 V8 nightly group executes in the following order:

  • trigger-nightly-v2v8 (at 0220:xx 00 Eastern every day)
  • java-parent-project-v2-nightly
  • java-xmltooling-nightly
  • java-openws-nightly
  • java-opensaml2-nightly
  • java-shib-common-nightly
  • java-shib-idp2-nightly
  • xmlsectoolv8-nightly

Jenkins System Configuration Notes

...