Improve jjb global template documentation 45/26745/1
authorJessica Wagantall <jwagantall@linuxfoundation.org>
Thu, 21 Dec 2017 20:10:19 +0000 (12:10 -0800)
committerJessica Wagantall <jwagantall@linuxfoundation.org>
Thu, 21 Dec 2017 20:23:02 +0000 (12:23 -0800)
Add more details to the global java and python templates

Change-Id: Ieca6eb48406a369e0da707e3ccb662c649a5d1d7
Issue-ID: CIMAN-122
Signed-off-by: Jessica Wagantall <jwagantall@linuxfoundation.org>
jjb/global-templates-java.yaml
jjb/global-templates-python.yaml

index c8d5665..61b4b07 100644 (file)
@@ -2,8 +2,8 @@
 - job-template:
     # Job template for Java verify jobs
     #
-    # The purpose of this job template is to run "maven clean install" for
-    # projects using this template.
+    # The purpose of this job template is to run:
+    # 1. maven clean install -DskipTests=true
     #
     # Required Variables:
     #     branch:    git branch (eg. stable/lithium or master)
@@ -66,8 +66,8 @@
 - job-template:
     # Job template for Java verify jobs
     #
-    # The purpose of this job template is to run "maven clean install" for
-    # projects using this template.
+    # The purpose of this job template is to run:
+    # 1. maven clean install
     #
     # Required Variables:
     #     branch:    git branch (eg. stable/lithium or master)
     # Job template for Java verify jobs running checkstyle at the end
     # When checkstyle will be fully incorporated, it is meant to replace
     #  '{project-name}-{stream}-verify-java-checkstyle'
-    # The purpose of this job template is to run "maven clean install" for
-    # projects using this template.
+    #
+    # The purpose of this job template is to run:
+    # 1. maven clean install
+    #
+    # This job publishes checkstyle results.
     #
     # Required Variables:
     #     branch:    git branch (eg. stable/lithium or master)
+
     name: '{project-name}-{stream}-verify-java-checkstyle'
     project-type: freestyle
     concurrent: true
 - job-template:
     # Job template for Java verify jobs that takes a maven template
     #
-    # The purpose of this job template is to run "maven clean install -P {x}"
-    # for projects using this template.
+    # The purpose of this job template is to run:
+    # 1. maven clean install -P {mvn-profile}
     #
     # Required Variables:
     #     branch:    git branch (eg. stable/lithium or master)
 - job-template:
     # Job template for Java verify jobs with POM not at the root
     #
-    # The purpose of this job template is to run "maven clean install" for
-    # projects using this template.
+    # The purpose of this job template is to run:
+    # 1. maven clean install
+    #
+    # This job supports subprojects.
     #
     # Required Variables:
     #     branch:    git branch (eg. stable/lithium or master)
 - job-template:
     # Job template for Java daily release jobs
     #
-    # The purpose of this job template is to run "maven version && maven clean
-    # deploy" for projects using this template.
+    # The purpose of this job template is to run:
+    # 1. maven clean deploy with Sonar scans
     #
     # Required Variables:
     #     branch:    git branch (eg. stable/lithium or master)
+
     name: '{project-name}-{stream}-release-java-daily'
 
     project-type: freestyle
 - job-template:
     # Job template for Java daily release jobs
     #
-    # The purpose of this job template is to run "maven version && maven clean
-    # deploy" for projects using this template.
+    # The purpose of this job template is to run:
+    # 1. maven clean deploy skipping Sonar scans
+    #
+    # This template skips Sonar scans.
     #
     # Required Variables:
     #     branch:    git branch (eg. stable/lithium or master)
+
     name: '{project-name}-{stream}-release-java-daily-no-sonar'
 
     project-type: freestyle
     # Job template for Java daily release jobs running checkstyle at the end
     # When checkstyle will be fully incorporated, it is meant to replace
     #  '{project-name}-{stream}-release-java-daily'
-    # The purpose of this job template is to run "maven version && maven clean
-    # deploy" for projects using this template.
+    #
+    # The purpose of this job template is to run:
+    # 1. maven clean deploy with Sonar scans
+    #
+    # This job publishes checkstyle results.
+    # This job uses a conditional regex match step to set versions.
     #
     # Required Variables:
     #     branch:    git branch (eg. stable/lithium or master)
+
     name: '{project-name}-{stream}-release-java-daily-checkstyle'
     project-type: freestyle
     node: '{build-node}'
 - job-template:
     # Job template for Java daily release jobs
     #
-    # The purpose of this job template is to run "maven version && maven clean
-    # deploy" for projects using this template.
+    # The purpose of this job template is to run:
+    # 1. maven set versions
+    # 2. maven clean deploy
+    #
+    # This template skips Sonar scans.
     #
     # Required Variables:
     #     branch:    git branch (eg. stable/lithium or master)
+
     name: '{project-name}-{stream}-release-version-java-daily-no-sonar'
 
     project-type: freestyle
           maven-version: '{maven-version}'
 
 - job-template:
-    # Job template for Java daily release jobs
+    # Job template for Java daily release jobs for subprojects
     #
-    # The purpose of this job template is to run "maven version && maven clean
-    # deploy" for projects using this template.
-    # This template supports subprojects.
+    # The purpose of this job template is to run:
+    # 1. maven set versions
+    # 2. maven clean deploy
+    #
+    # This template skips Sonar scans.
+    # This job supports subprojects.
     #
     # Required Variables:
     #     branch:    git branch (eg. stable/lithium or master)
+
     name: '{project-name}-{stream}-{subproject}-release-version-java-daily-no-sonar'
 
     project-type: freestyle
 - job-template:
     # Job template for Java daily release jobs
     #
-    # The purpose of this job template is to run "maven version && maven clean
-    # deploy" for projects using this template.
+    # The purpose of this job template is to run:
+    # 1. maven set versions
+    # 2. maven clean deploy with Sonar scans
     #
     # Required Variables:
     #     branch:    git branch (eg. stable/lithium or master)
+
     name: '{project-name}-{stream}-release-version-java-daily'
 
     project-type: freestyle
 - job-template:
     # Job template for Java daily release jobs
     #
-    # The purpose of this job template is to run "maven version && maven clean
-    # deploy" for projects using this template.
+    # The purpose of this job template is to run:
+    # 1. maven set versions
+    # 2. maven clean deploy -P {mvn-profile} with Sonar scans
     #
     # Required Variables:
     #     branch:    git branch (eg. stable/lithium or master)
+
     name: '{project-name}-{stream}-release-version-profile-java-daily'
 
     project-type: freestyle
 - job-template:
     # Job template for Java daily release jobs with POM not at the root
     #
-    # The purpose of this job template is to run "maven version && maven clean
-    # deploy" for projects using this template.
+    # The purpose of this job template is to run:
+    # 1. maven clean deploy with Sonar scans
+    #
+    # This job supports subprojects.
     #
     # Required Variables:
     #     branch:    git branch (eg. stable/lithium or master)
     #     pom:       name/location of the pom.xml file relative to the workspace
 
-
     name: '{project-name}-{stream}-{subproject}-release-java-daily'
 
     project-type: freestyle
 - job-template:
     # Job template for Java daily release jobs with POM not at the root
     #
-    # The purpose of this job template is to run "maven version && maven clean
-    # deploy" for projects using this template.
+    # The purpose of this job template is to run:
+    # 1. maven set versions
+    # 2. maven clean deploy with Sonar scans
+    #
+    # This job supports subprojects.
     #
     # Required Variables:
     #     branch:    git branch (eg. stable/lithium or master)
     #     pom:       name/location of the pom.xml file relative to the workspace
 
-
     name: '{project-name}-{stream}-{subproject}-release-version-java-daily'
 
     project-type: freestyle
 - job-template:
     # Job template for Java daily release jobs with POM not at the root
     #
-    # The purpose of this job template is to run "maven version && maven clean
-    # deploy" for projects using this template.
+    # The purpose of this job template is to run:
+    # 1. maven clean deploy
+    #
+    # This job supports subprojects and skips Sonar scans.
     #
     # Required Variables:
     #     branch:    git branch (eg. stable/lithium or master)
     #     pom:       name/location of the pom.xml file relative to the workspace
 
-
     name: '{project-name}-{stream}-{subproject}-release-java-daily-no-sonar'
 
     project-type: freestyle
 - job-template:
     # Job template for Java merge jobs
     #
-    # The purpose of this job template is to run "maven clean deploy" for
-    # projects using this template.
+    # The purpose of this job template is to run:
+    # 1. maven clean deploy
     #
     # Required Variables:
     #     branch:    git branch (eg. stable/lithium or master)
+
     name: '{project-name}-{stream}-merge-java'
 
     project-type: freestyle
 - job-template:
     # Job template for Java merge jobs based on
     #   '{project-name}-{stream}-merge-java'
-    # The purpose of this job template is to run "maven clean deploy" for
-    # projects using this template.
+    # The purpose of this job template is to run:
+    # 1. maven clean deploy
+    #
+    # This project supports maven properties.
     #
     # Required Variables:
     #     branch:    git branch (eg. stable/lithium or master)
     #     maven-properties: properties passed to maven
+
     name: '{project-name}-{stream}-merge-properties-java'
 
     project-type: freestyle
 - job-template:
     # Job template for Java merge jobs that takes a maven template
     #
-    # The purpose of this job template is to run "maven clean deploy -P {x}"
-    # for projects using this template.
+    # The purpose of this job template is to run:
+    # 1. maven clean deploy -P {mvn-profile}
     #
     # Required Variables:
     #     branch:    git branch (eg. stable/lithium or master)
+
     name: '{project-name}-{stream}-merge-profile-java'
 
     project-type: freestyle
     #   branch:         git branch
     #   dependencies:   fully qualified upstream job name to trigger on
     #                   this may be ''
+
     name: '{project-name}-{stream}-downstream-merge-java'
 
     project-type: freestyle
 - job-template:
     # Job template for Java merge jobs with POM not at the root
     #
-    # The purpose of this job template is to run "maven clean deploy" for
-    # projects using this template.
+    # The purpose of this job template is to run:
+    # 1. maven clean deploy
+    #
+    # This job supports subprojects.
     #
     # Required Variables:
     #     branch:    git branch (eg. stable/lithium or master)
           maven-version: '{maven-version}'
 
 - job-template:
+    # Job template for Docker daily jobs
+    #
+    # The purpose of this job template is to run:
+    # 1. login to the docker registry
+    # 2. docker push
+    #
+    # Required Variables:
+    #     branch:    git branch (eg. stable/lithium or master)
+
     name: '{project-name}-{stream}-docker-java-daily'
     project-type: freestyle
     node: 'ubuntu1604-docker-8c-8g'
 - job-template:
     # Job template for building & pushing docker images
     #
-    # The purpose of this job template is to run :
+    # The purpose of this job template is to run:
     #  1. login to the docker registry
-    #  2. do a clean deploy on the specified profile
+    #  2. maven clean deploy on the specified profile
+    #
+    # This job uses a conditional regex match step to set versions.
+    # This template supports maven properties.
     #
     # Required Variables:
     #     pom:       name/location of the pom.xml file relative to the workspace
     #     profile:   the docker profile defined in the pom
     #     maven-properties: properties passed to maven
+
     name: '{project-name}-{stream}-docker-java-properties-daily'
     project-type: freestyle
     node: 'ubuntu1604-docker-8c-8g'
           maven-version: '{maven-version}'
 
 - job-template:
+    # Job template for building & pushing docker images
+    #
+    # The purpose of this job template is to run:
+    #  1. login to the docker registry
+    #  2. run a specified shell builder
+    #
+    # Required Variables:
+    #     pom:       name/location of the pom.xml file relative to the workspace
+    #     maven-properties: properties passed to maven
+
     name: '{project-name}-{stream}-docker-java-shell-daily'
     project-type: freestyle
     node: 'ubuntu1604-docker-8c-8g'
           maven-version: '{maven-version}'
 
 - job-template:
+    # Job template for building & pushing docker images
+    #
+    # The purpose of this job template is to run:
+    #  1. login to the docker registry
+    #  2. inject a version.properties file and set versions
+    #  3. run a specified shell builder
+    #
+    # Required Variables:
+    #     pom:       name/location of the pom.xml file relative to the workspace
+    #     maven-properties: properties passed to maven
+
     name: '{project-name}-{stream}-docker-java-version-shell-daily'
     project-type: freestyle
     node: 'ubuntu1604-docker-8c-8g'
           maven-version: '{maven-version}'
 
 - job-template:
+    # Job template for building & pushing docker images
+    #
+    # The purpose of this job template is to run:
+    #  1. login to the docker registry
+    #  2. inject a version.properties file and set versions
+    #  3. run a specified shell builder
+    #
+    # This template supports subprojects.
+    #
+    # Required Variables:
+    #     pom:       name/location of the pom.xml file relative to the workspace
+    #     maven-properties: properties passed to maven
+
     name: '{project-name}-{stream}-{subproject}-docker-java-version-shell-daily'
     project-type: freestyle
     node: 'ubuntu1604-docker-8c-8g'
           maven-version: '{maven-version}'
 
 - job-template:
+    # Job template for building & pushing docker images
+    #
+    # The purpose of this job template is to run:
+    #  1. login to the docker registry
+    #  2. inject a version.properties file and set versions
+    #  3. run a docker push
+    #
+    # Required Variables:
+    #     pom:       name/location of the pom.xml file relative to the workspace
+    #     profile:   the docker profile defined in the pom
+    #     maven-properties: properties passed to maven
+
     name: '{project-name}-{stream}-docker-version-java-daily'
     project-type: freestyle
     node: 'ubuntu1604-docker-8c-8g'
           maven-version: '{maven-version}'
 
 - job-template:
+    # Job template for building & pushing docker images
+    #
+    # The purpose of this job template is to run:
+    #  1. inject a version.properties file and set versions
+    #  2. login to the docker registry
+    #  3. run a docker push
+    #
+    # This job supports subprojects.
+    #
+    # Required Variables:
+    #     pom:       name/location of the pom.xml file relative to the workspace
+    #     maven-properties: properties passed to maven
+
     name: '{project-name}-{stream}-{subproject}-docker-version-java-daily'
     project-type: freestyle
     node: 'ubuntu1604-docker-8c-8g'
           maven-version: '{maven-version}'
 
 - job-template:
+    # Job template for building & pushing docker images for AAI specific repos
+    #
+    # The purpose of this job template is to run:
+    #  1. login to the docker registry
+    #  2. run maven goals
+    #  3. run include-docker-push.sh
+    #
+    # Required Variables:
+    #     pom:       name/location of the pom.xml file relative to the workspace
+    #     maven-properties: properties passed to maven
+
     name: '{project-name}-{stream}-aai-docker-java-daily'
     project-type: freestyle
     node: 'ubuntu1604-docker-8c-8g'
           maven-version: '{maven-version}'
 
 - job-template:
+    # Job template for building & pushing docker images for AAI specific repos
+    #
+    # The purpose of this job template is to run:
+    #  1. login to the docker registry
+    #  2. run maven goals
+    #  3. run include-docker-push.sh
+    #
+    # This job supports subprojects
+    #
+    # Required Variables:
+    #     pom:       name/location of the pom.xml file relative to the workspace
+    #     maven-properties: properties passed to maven
+
     name: '{project-name}-{stream}-{subproject}-aai-docker-java-daily'
     project-type: freestyle
     node: 'ubuntu1604-docker-8c-8g'
 - job-template:
     # Job template for Java daily release jobs
     #
-    # The purpose of this job template is to run
-    #   - change version in all POM files to the release version specified
-    #     in version.properties. This is done using a script instread of
-    #     the mvn version plugin that assumes some specific parent structure.
-    #   - runs maven clean deploy sonar
+    # The purpose of this job template is to run:
+    # 1. inject a version.properties file and set versions
+    # 2. change version in all POM files to the release version specified
+    #    in version.properties. This is done using a script instread of
+    #    the mvn version plugin that assumes some specific parent structure
+    # 3. runs maven clean deploy sonar
     #
     # The POM files are required to use the Maven staging plugin so the deploy
     # does not deploy directly to the release repo.
     #
     # Required Variables:
     #     branch:    git branch (eg. stable/lithium or master)
+
     name: '{project-name}-{stream}-release-version2-java-daily'
 
     project-type: freestyle
 - job-template:
     # Job template for Java daily release jobs
     #
-    # The purpose of this job template is to run
-    #   - change version in all POM files to the release version specified
+    # The purpose of this job template is to run:
+    # 1. inject a version.properties file and set versions
+    # 2. change version in all POM files to the release version specified
     #     in version.properties. This is done using a script instread of
-    #     the mvn version plugin that assumes some specific parent structure.
-    #   - runs maven clean deploy sonar
+    #     the mvn version plugin that assumes some specific parent structure
+    # 3. runs maven clean deploy sonar
     #
     # The POM files are required to use the Maven staging plugin so the deploy
     # does not deploy directly to the release repo.
 - job-template:
     # Job template for Java daily release jobs
     #
-    # The purpose of this job template is to run
-    #   - change version in all POM files to the release version specified
+    # The purpose of this job template is to run:
+    #  1. inject a version.properties file and set versions
+    #  2. change version in all POM files to the release version specified
     #     in version.properties. This is done using a script instread of
     #     the mvn version plugin that assumes some specific parent structure
-    #     This version does NOT change the version within the <parent> tag.
-    #   - runs maven clean deploy sonar
+    #     This version does NOT change the version within the <parent> tag
+    #  3. runs maven clean deploy sonar
     #
     # The POM files are required to use the Maven staging plugin so the deploy
     # does not deploy directly to the release repo.
     # succeeds as there's no need for new documentaiton
     # if the build job fails.
     #
+    # The purpose of this job template is to run:
+    # 1. maven set versions
+    # 2. maven clean site
+    #
     # Those parameters should be set :
     # - site-pom : the pom file that contains the site confiration
     # - trigger-job : the name of the project that triggers this job
     #                     upon success. The job name can be
     #                     parameterized.
+
     name: '{project-name}-{stream}-stage-site-java'
     project-type: freestyle
     node: '{build-node}'
           maven-version: '{maven-version}'
 
 - job-template:
-    # Job template for Java merge jobs
+    # Job template for Java merge jobs for SDC specific repos
     #
-    # The purpose of this job template is to run "maven clean deploy" for
-    # projects using this template.
+    # The purpose of this job template is to run:
+    # 1. maven clean deploy
     #
     # Required Variables:
     #     branch:    git branch (eg. stable/lithium or master)
+
     name: '{project-name}-{stream}-sdc-merge-java'
 
     project-type: freestyle
           maven-version: '{maven-version}'
 
 - job-template:
+    # Job template for building & pushing docker images for AAI specific repos
+    #
+    # The purpose of this job template is to run:
+    #  1. login to the docker registry
+    #  2. run maven clean install goals skipping tests
+    #  3. run maven goals
+    #
+    # Required Variables:
+    #     pom:       name/location of the pom.xml file relative to the workspace
+    #     maven-properties: properties passed to maven
+
     name: '{project-name}-{stream}-aai-docker-java-version-daily'
     project-type: freestyle
     node: 'ubuntu1604-docker-8c-8g'
index ec9002e..acd5e17 100644 (file)
@@ -2,8 +2,10 @@
 - job-template:
     # Job template for python verify jobs
     #
-    # The purpose of this job template is to run tox for projects using this
-    # template.
+    # The purpose of this job template is to run:
+    # 1. tox
+    #
+    # This job supports subprojects.
     #
     # Required Variables:
     #     branch:    git branch (eg. stable/lithium or master)
           maven-version: '{maven-version}'
 
 - job-template:
+    # Job template for docker daily jobs
+    #
+    # The purpose of this job template is to run:
+    # 1. login into the docker registry
+    # 2. docker build
+    # 3. docker tag
+    # 4. docker push
+    #
+    # Required Variables:
+    #     branch:    git branch (eg. stable/lithium or master)
+
     name: '{project-name}-{stream}-docker-shell-daily'
     project-type: freestyle
     node: 'ubuntu1604-docker-8c-8g'
           branch: '{branch}'
 
     builders:
-
       - provide-maven-settings:
           global-settings-file: 'global-settings'
           settings-file: '{mvn-settings}'
           maven-version: '{maven-version}'
 
 - job-template:
+    # Job template for docker daily jobs for 2 SCMs
+    #
+    # The purpose of this job template is to run:
+    # 1. inject a version properties file
+    # 2. login into the docker registry
+    # 4. run a specified shell script
+    #
+    # Required Variables:
+    #     branch:    git branch (eg. stable/lithium or master)
+
     name: '{project-name}-{stream}-2scm-docker-shell-daily'
     project-type: freestyle
     node: 'ubuntu1604-docker-8c-8g'
           branch: '{branch}'
 
     builders:
-
       - provide-maven-settings:
           global-settings-file: 'global-settings'
           settings-file: '{mvn-settings}'
-
       - inject:
           properties-file: version.properties
-
       - docker-login
-
       - shell: '{script}'
-
     publishers:
       - infra-shiplogs:
           maven-version: '{maven-version}'
 
 - job-template:
+    # Job template for docker daily jobs for 3 SCMs
+    #
+    # The purpose of this job template is to run:
+    # 1. inject a version properties file
+    # 2. login into the docker registry
+    # 4. run a specified shell script
+    #
+    # Required Variables:
+    #     branch:    git branch (eg. stable/lithium or master)
+
     name: '{project-name}-{stream}-3scm-docker-shell-daily'
     project-type: freestyle
     node: 'ubuntu1604-docker-8c-8g'
           branch: '{branch}'
 
     builders:
-
       - provide-maven-settings:
           global-settings-file: 'global-settings'
           settings-file: '{mvn-settings}'
-
       - inject:
           properties-file: version.properties
-
       - docker-login
-
       - shell: '{script}'
-
     publishers:
       - infra-shiplogs:
           maven-version: '{maven-version}'
-