Merge "Migrate node-verify job to global-jjb"
authorThanh Ha <thanh.ha@linuxfoundation.org>
Mon, 16 Oct 2017 02:05:02 +0000 (02:05 +0000)
committerGerrit Code Review <gerrit@linuxfoundation.org>
Mon, 16 Oct 2017 02:05:02 +0000 (02:05 +0000)
.jjb-test/expected-xml/gerrit-python-tox-verify-master
.jjb-test/expected-xml/github-python-tox-verify-master
jjb/lf-maven-jobs.yaml
jjb/lf-python-jobs.yaml
jjb/lf-rtd-jobs.yaml
shell/tox-run.sh

index eaaf190..aecf9b7 100644 (file)
@@ -330,6 +330,10 @@ run_tox() {
     local log_dir=&quot;$1&quot;
     local env=&quot;$2&quot;
 
+    # Sleep a random 10 second interval to workaround tox sdist
+    # conflicts due to building in the same dist directory.
+    sleep $[ ( $RANDOM % 10 )  + 1 ]s
+
     echo &quot;-----&gt; Running tox $env&quot;
     if ! tox -e $env &gt; &quot;$log_dir/tox-$env.log&quot;; then
         echo &quot;$env&quot; &gt;&gt; &quot;$log_dir/failed-envs.log&quot;
index c266342..34e8959 100644 (file)
@@ -292,6 +292,10 @@ run_tox() {
     local log_dir=&quot;$1&quot;
     local env=&quot;$2&quot;
 
+    # Sleep a random 10 second interval to workaround tox sdist
+    # conflicts due to building in the same dist directory.
+    sleep $[ ( $RANDOM % 10 )  + 1 ]s
+
     echo &quot;-----&gt; Running tox $env&quot;
     if ! tox -e $env &gt; &quot;$log_dir/tox-$env.log&quot;; then
         echo &quot;$env&quot; &gt;&gt; &quot;$log_dir/failed-envs.log&quot;
index eaa4ef8..93749cd 100644 (file)
     #                   the project.
     #
     # Optional parameters:
-    #     mvn-global-settings: The name of the Maven global settings to use for
-    #                          Maven configuration. (default: global-settings)
+    #
+    #     :branch: The branch to build against. (default: master)
+    #     :build-days-to-keep: Days to keep build logs in Jenkins. (default: 7)
+    #     :build-timeout: Timeout in seconds before aborting build. (default: 60)
+    #     :git-url: URL clone project from. (default: $GIT_URL/$PROJECT)
+    #     :java-version: Version of Java to use for the build. (default: openjdk8)
+    #     :mvn-global-settings: The name of the Maven global settings to use for
+    #         Maven configuration. (default: global-settings)
+    #     :mvn-opts: Sets MAVEN_OPTS. (default: '')
+    #     :mvn-params: Additional mvn parameters to pass to the cli. (default: '')
+    #     :mvn-version: Version of maven to use. (default: mvn33)
+    #     :stream: Keyword that can be used to represent a release code-name.
+    #         Often the same as the branch. (default: master)
+    #     :submodule-recursive: Whether to checkout submodules recursively.
+    #         (default: true)
+    #
+    #     :gerrit_merge_triggers: Override Gerrit Triggers.
 
     ######################
     # Default parameters #
     mvn-opts: ''
     mvn-params: ''
     mvn-version: mvn33
+    staging-profile-id: ''  # Unused in this job
     stream: master
     submodule-recursive: true
 
-    # Staging repos do not make sense for CLM jobs so set it blank.
-    staging-profile-id: ''
-
     #####################
     # Job Configuration #
     #####################
     #     :mvn-opts: Sets MAVEN_OPTS. (default: '')
     #     :mvn-params: Additional mvn parameters to pass to the cli. (default: '')
     #     :mvn-version: Version of maven to use. (default: mvn33)
+    #     :stream: Keyword that can be used to represent a release code-name.
+    #         Often the same as the branch. (default: master)
     #     :submodule-recursive: Whether to checkout submodules recursively.
     #         (default: true)
     #
-    #     :gerrit_javadoc_merge_triggers: Override Gerrit Triggers.
+    #     :gerrit_merge_triggers: Override Gerrit Triggers.
 
     ######################
     # Default parameters #
     stream: master
     submodule-recursive: true
 
-    gerrit_javadoc_merge_triggers:
+    gerrit_merge_triggers:
       - change-merged-event
       - comment-added-contains-event:
           comment-contains-value: remerge$
     triggers:
       - gerrit:
           server-name: '{gerrit-server-name}'
-          trigger-on: '{obj:gerrit_javadoc_merge_triggers}'
+          trigger-on: '{obj:gerrit_merge_triggers}'
           projects:
             - project-compare-type: ANT
               project-pattern: '{project}'
     #     :mvn-opts: Sets MAVEN_OPTS. (default: '')
     #     :mvn-params: Additional mvn parameters to pass to the cli. (default: '')
     #     :mvn-version: Version of maven to use. (default: mvn33)
+    #     :stream: Keyword that can be used to represent a release code-name.
+    #         Often the same as the branch. (default: master)
     #     :submodule-recursive: Whether to checkout submodules recursively.
     #         (default: true)
     #
-    #     :gerrit_javadoc_verify_triggers: Override Gerrit Triggers.
+    #     :gerrit_verify_triggers: Override Gerrit Triggers.
 
     ######################
     # Default parameters #
     stream: master
     submodule-recursive: true
 
-    gerrit_javadoc_verify_triggers:
+    gerrit_verify_triggers:
       - patchset-created-event:
           exclude-drafts: true
           exclude-trivial-rebase: false
     triggers:
       - gerrit:
           server-name: '{gerrit-server-name}'
-          trigger-on: '{obj:gerrit_javadoc_verify_triggers}'
+          trigger-on: '{obj:gerrit_verify_triggers}'
           projects:
             - project-compare-type: ANT
               project-pattern: '{project}'
     # directory can then be reused later to deploy to Nexus.
     #
     # Required parameters:
+    #
     #     :build-node: The node to run build on.
     #     :jenkins-ssh-credential: Credential to use for SSH. (Generally should
     #                              be configured in defaults.yaml)
     #     :staging-profile-id: Profile ID of the project's Nexus staging profile.
     #
     # Optional parameters:
-    #     :gerrit_verify_triggers: Override Gerrit Triggers.
-    #     :mvn-global-settings: The name of the Maven global settings to use for
-    #                           Maven configuration. (default: global-settings)
+    #
+    #     :branch: The branch to build against. (default: master)
+    #     :build-days-to-keep: Days to keep build logs in Jenkins. (default: 7)
+    #     :build-timeout: Timeout in seconds before aborting build. (default: 60)
     #     :cron: Cron schedule when to trigger the job. This parameter also
     #         supports multiline input via YAML pipe | character in cases where
     #         one may want to provide more than 1 cron timer. (default: '')
+    #     :deploy-path:    The path in Nexus to deploy javadoc to. (default: $PROJECT/$STREAM)
+    #     :git-url: URL clone project from. (default: $GIT_URL/$PROJECT)
+    #     :java-version: Version of Java to use for the build. (default: openjdk8)
+    #     :mvn-global-settings: The name of the Maven global settings to use for
+    #         Maven configuration. (default: global-settings)
+    #     :mvn-opts: Sets MAVEN_OPTS. (default: '')
+    #     :mvn-params: Additional mvn parameters to pass to the cli. (default: '')
+    #     :mvn-version: Version of maven to use. (default: mvn33)
+    #     :stream: Keyword that can be used to represent a release code-name.
+    #         Often the same as the branch. (default: master)
+    #     :submodule-recursive: Whether to checkout submodules recursively.
+    #         (default: true)
+    #
+    #     :gerrit_release_triggers: Override Gerrit Triggers.
 
     ######################
     # Default parameters #
     branch: master
     build-days-to-keep: 30  # 30 days in case a release takes long to get approved.
     build-timeout: 30
+    cron: ''
     git-url: '$GIT_URL/$PROJECT'
     java-version: openjdk8
     mvn-global-settings: global-settings
     mvn-version: mvn33
     stream: master
     submodule-recursive: true
-    cron: ''
 
     gerrit_release_triggers:
       - comment-added-contains-event:
     #     :mvn-opts: Sets MAVEN_OPTS. (default: '')
     #     :mvn-params: Additional mvn parameters to pass to the cli. (default: '')
     #     :mvn-version: Version of maven to use. (default: mvn33)
+    #     :stream: Keyword that can be used to represent a release code-name.
+    #         Often the same as the branch. (default: master)
     #     :submodule-recursive: Whether to checkout submodules recursively.
     #         (default: true)
     #
     mvn-opts: ''
     mvn-params: ''
     mvn-version: mvn33
+    staging-profile-id: ''  # Unused in this job
     stream: master
     submodule-recursive: true
 
       - comment-added-contains-event:
           comment-contains-value: run-sonar$
 
-    # Staging repos do not make sense for CLM jobs so set it blank.
-    staging-profile-id: ''
-
     #####################
     # Job Configuration #
     #####################
     mvn-opts: ''
     mvn-params: '-Dstream=$STREAM'
     mvn-version: mvn33
+    staging-profile-id: ''  # Unused in this job
     stream: master
     submodule-recursive: true
 
index 5a58d2d..904a3f1 100644 (file)
 - lf_tox_verify: &lf_tox_verify
     name: lf-tox-verify
 
-    # Required Variables:
-    #     branch:    git branch (default: master)
-    #     tox-dir:   directory containing the project's tox.ini relative to
-    #                the workspace. Empty works if tox.ini is at project root.
-
-    project-type: freestyle
-    node: '{build-node}'
-    concurrent: true
+    # Tox runner to verify a project
+    #
+    # Runs tox to verify a project.
+    #
+    # Required Parameters:
+    #
+    #     :build-node: The node to run build on.
+    #     :jenkins-ssh-credential: Credential to use for SSH. (Generally should
+    #         be configured in defaults.yaml)
+    #
+    # Optional Parameters:
+    #
+    #     :branch: The branch to build against. (default: master)
+    #     :build-days-to-keep: Days to keep build logs in Jenkins. (default: 7)
+    #     :build-timeout: Timeout in seconds before aborting build. (default: 10)
+    #     :git-url: URL clone project from. (default: $GIT_URL/$PROJECT)
+    #     :stream: Keyword that can be used to represent a release code-name.
+    #         Often the same as the branch. (default: master)
+    #     :submodule-recursive: Whether to checkout submodules recursively.
+    #         (default: true)
+    #     :tox-dir: Directory containing the project's tox.ini relative to
+    #         the workspace. Empty works if tox.ini is at project root.
+    #         (default: '')
+    #     :tox-envs: Tox environments to run. If blank run everything described
+    #         in tox.ini. (default: '')
 
     ######################
     # Default parameters #
     ######################
 
     branch: master
+    build-days-to-keep: 7
     build-timeout: 10
     git-url: '$GIT_URL/$GERRIT_PROJECT'
     stream: master
     # Job Configuration #
     #####################
 
+    project-type: freestyle
+    node: '{build-node}'
+    concurrent: true
+
     properties:
       - lf-infra-properties:
-          build-days-to-keep: 7
+          build-days-to-keep: '{build-days-to-keep}'
 
     parameters:
       - lf-infra-parameters:
index 64c6dac..9feaec1 100644 (file)
     #
     # Required parameters:
     #
+    #     :build-node: The node to run build on.
+    #     :jenkins-ssh-credential: Credential to use for SSH. (Generally should
+    #         be configured in defaults.yaml)
     #     :rtd-project: This is the name of the project on ReadTheDocs.org.
     #
     # Optional parameters:
     #
     #     :branch: Git branch to fetch for the build. (default: master)
     #     :build-days-to-keep: Days to keep build logs in Jenkins. (default: 7)
-    #     :build-node: The node to run build on.
     #     :build-timeout: Timeout in seconds before aborting build. (default: 15)
     #     :git-url: base URL of git project. (default: https://github.com)
     #     :project-pattern: Project to trigger build against. (default: **)
     #     :stream: Keyword that can be used to represent a release code-name.
     #         Often the same as the branch. (default: master)
+    #     :submodule-recursive: Whether to checkout submodules recursively.
+    #         (default: true)
     #
     #     :gerrit_merge_triggers: Override Gerrit Triggers.
     #     :gerrit_trigger_file_paths: Override file paths which can be used to
     name: lf-rtd-verify
     # Verify job which runs a tox build of the docs project
     #
-    # Optional parameters:
+    # Required Parameters:
+    #
+    #     :build-node: The node to run build on.
+    #     :jenkins-ssh-credential: Credential to use for SSH. (Generally should
+    #         be configured in defaults.yaml)
+    #
+    # Optional Parameters:
     #
     #     :branch: Git branch to fetch for the build. (default: master)
     #     :build-days-to-keep: Days to keep build logs in Jenkins. (default: 7)
index e24e974..3bf1576 100644 (file)
@@ -27,6 +27,10 @@ run_tox() {
     local log_dir="$1"
     local env="$2"
 
+    # Sleep a random 10 second interval to workaround tox sdist
+    # conflicts due to building in the same dist directory.
+    sleep $[ ( $RANDOM % 10 )  + 1 ]s
+
     echo "-----> Running tox $env"
     if ! tox -e $env > "$log_dir/tox-$env.log"; then
         echo "$env" >> "$log_dir/failed-envs.log"