Allow JJB Cache directory to be configured
[releng/global-jjb.git] / jjb / lf-ci-jobs.yaml
index f9aff90..0319e11 100644 (file)
@@ -1,49 +1,4 @@
 ---
-- job-group:
-    name: '{project-name}-ci-jobs'
-
-    jobs:
-      - gerrit-jenkins-cfg-merge
-      - gerrit-jenkins-sandbox-cleanup
-      - gerrit-jjb-deploy-job
-      - gerrit-jjb-merge
-      - gerrit-jjb-verify
-
-- job-group:
-    name: '{project-name}-github-ci-jobs'
-
-    jobs:
-      - github-jenkins-cfg-merge
-      - github-jenkins-sandbox-cleanup
-      - github-jjb-deploy-job
-      - github-jjb-merge
-      - github-jjb-verify
-
-- job-group:
-    name: '{project-name}-info-yaml-jobs'
-
-    jobs:
-      - gerrit-info-yaml-verify
-
-- job-group:
-    name: '{project-name}-github-info-yaml-jobs'
-
-    jobs:
-      - github-info-yaml-verify
-
-- job-group:
-    name: '{project-name}-packer-jobs'
-
-    jobs:
-      - gerrit-packer-merge
-      - gerrit-packer-verify
-
-- job-group:
-    name: '{project-name}-github-packer-jobs'
-
-    jobs:
-      - github-packer-merge
-      - github-packer-verify
 
 ####################
 # COMMON FUNCTIONS #
@@ -81,8 +36,9 @@
     github-url: 'https://github.com'
     stream: master
     submodule-recursive: true
+    submodule-timeout: 10
     packer-cloud-settings: packer-cloud-env
-    packer-version: 1.2.3
+    packer-version: 1.2.5
 
     #####################
     # Job Configuration #
           name: JJB_VERSION
           default: '{jjb-version}'
           description: Jenkins Job Builder version to download and install.
+      - string:
+          name: XDG_CACHE_HOME
+          default: '{jjb-cache}'
+          description: Jenkins Job Builder cache location.
 
 - parameter:
     name: lf-packer-parameters
     build-timeout: 10
     disable-job: false
     github-url: 'https://github.com'
+    jjb-cache: '$HOME/.cache/jenkins_jobs'
     jjb-version: 2.2.1
     stream: master
     submodule-recursive: true
+    submodule-timeout: 10
 
     gerrit_trigger_file_paths:
       - compare-type: REG_EXP
-        pattern: '.*\.groovy'
+        pattern: 'jjb/.*'
       - compare-type: REG_EXP
-        pattern: '.*\.sh'
+        pattern: 'global-jjb'
       - compare-type: REG_EXP
-        pattern: '.*\.bat'
-      - compare-type: REG_EXP
-        pattern: '.*\.ps1'
-      - compare-type: REG_EXP
-        pattern: '.*\.(yaml|yml)'
-      - compare-type: REG_EXP
-        pattern: '.*\/global-jjb'
+        pattern: 'shell/.*'
 
     # github_included_regions MUST match gerrit_trigger_file_paths
     github_included_regions:
-      - '.*\.groovy'
-      - '.*\.sh'
-      - '.*\.bat'
-      - '.*\.ps1'
-      - '.*\.(yaml|yml)'
-      - '.*\/global-jjb'
+      - 'jjb/.*'
+      - 'global-jjb'
+      - 'shell/.*'
 
     #####################
     # Job Configuration #
           branch: '{branch}'
           lftools-version: '{lftools-version}'
       - lf-infra-jjb-parameters:
+          jjb-cache: '{jjb-cache}'
           jjb-version: '{jjb-version}'
 
     wrappers:
     disable-job: false
     git-url: '$GIT_URL/$GERRIT_PROJECT'
     stream: master
+    submodule-timeout: 10
     gerrit_merge_triggers:
       - comment-added-contains-event:
           comment-contains-value: (un)?lock branch$
           refspec: ''
           branch: '{branch}'
           submodule-recursive: false
+          submodule-timeout: '{submodule-timeout}'
           choosing-strategy: default
           jenkins-ssh-credential: '{jenkins-ssh-credential}'
 
       - inject:
           properties-content: 'jenkins_silos={jenkins-silos}'
       - shell: !include-raw-escape: ../shell/jenkins-configure-clouds.sh
-      - shell: rm "$HOME/.config/jenkins_jobs/jenkins_jobs.ini"
+      - shell: rm -f "$HOME/.config/jenkins_jobs/jenkins_jobs.ini"
 
 - builder:
     name: lf-jenkins-cfg-global-vars
       - inject:
           properties-content: 'jenkins_silos={jenkins-silos}'
       - shell: !include-raw-escape: ../shell/jenkins-configure-global-vars.sh
-      - shell: rm "$HOME/.config/jenkins_jobs/jenkins_jobs.ini"
+      - shell: rm -f "$HOME/.config/jenkins_jobs/jenkins_jobs.ini"
 
 - lf_jenkins_configuration: &lf_jenkins_cfg_merge
     name: lf-jenkins-cfg-merge
     git-url: '$GIT_URL/$GERRIT_PROJECT'
     github-url: 'https://github.com'
     jenkins-silos: production sandbox
+    submodule-timeout: 10
 
     gerrit_merge_triggers:
       - change-merged-event
           jenkins-ssh-credential: '{jenkins-ssh-credential}'
 
     builders:
-      - shell: !include-raw-escape:
-          - ../shell/lftools-install.sh
+      - lf-infra-pre-build
       - lf-jenkins-cfg-global-vars:
           jenkins-silos: '{jenkins-silos}'
       - lf-jenkins-cfg-clouds:
           refspec: 'refs/heads/{branch}'
           branch: '{branch}'
           submodule-recursive: true
+          submodule-timeout: '{submodule-timeout}'
           choosing-strategy: default
           jenkins-ssh-credential: '{jenkins-ssh-credential}'
 
           refspec: ''
           branch: 'refs/heads/{branch}'
           submodule-recursive: true
+          submodule-timeout: '{submodule-timeout}'
           choosing-strategy: default
           jenkins-ssh-credential: '{jenkins-ssh-credential}'
 
 
     parameters:
       - lf-infra-jjb-parameters:
+          jjb-cache: '{jjb-cache}'
           jjb-version: '{jjb-version}'
 
     triggers:
     git-url: '$GIT_URL/$PROJECT'
     github-url: 'https://github.com'
     stream: master
+    submodule-timeout: 10
     gerrit_jjb_deploy_job_triggers:
       - comment-added-contains-event:
           comment-contains-value: 'jjb-deploy[:]* (?!\*+$).+$'
           refspec: 'refs/heads/{branch}'
           branch: '{branch}'
           submodule-recursive: true
+          submodule-timeout: '{submodule-timeout}'
           choosing-strategy: default
           jenkins-ssh-credential: '{jenkins-ssh-credential}'
 
           refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
           branch: '$sha1'
           submodule-recursive: true
+          submodule-timeout: '{submodule-timeout}'
           choosing-strategy: default
           jenkins-ssh-credential: '{jenkins-ssh-credential}'
 
     #####################
 
     builders:
+      - lf-infra-pre-build
       - lf-infra-jjbini
       - shell: !include-raw-escape:
           - ../shell/jjb-install.sh
           refspec: ''
           branch: '{branch}'
           submodule-recursive: '{submodule-recursive}'
+          submodule-timeout: '{submodule-timeout}'
           choosing-strategy: default
           jenkins-ssh-credential: '{jenkins-ssh-credential}'
 
           refspec: ''
           branch: 'refs/heads/{branch}'
           submodule-recursive: '{submodule-recursive}'
+          submodule-timeout: '{submodule-timeout}'
           choosing-strategy: default
           jenkins-ssh-credential: '{jenkins-ssh-credential}'
 
     concurrent: true
 
     builders:
+      - lf-infra-pre-build
       - lf-infra-jjbini
       - shell: !include-raw-escape:
           - ../shell/git-validate-jira-urls.sh
           refspec: '$GERRIT_REFSPEC'
           branch: '$GERRIT_BRANCH'
           submodule-recursive: '{submodule-recursive}'
+          submodule-timeout: '{submodule-timeout}'
           choosing-strategy: gerrit
           jenkins-ssh-credential: '{jenkins-ssh-credential}'
 
           refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
           branch: '$sha1'
           submodule-recursive: '{submodule-recursive}'
+          submodule-timeout: '{submodule-timeout}'
           choosing-strategy: default
           jenkins-ssh-credential: '{jenkins-ssh-credential}'
 
 
     builders:
       - shell: |
-          cd jjb/global-jjb
+          cd global-jjb
           git fetch https://gerrit.linuxfoundation.org/infra/releng/global-jjb $GERRIT_REFSPEC
           git cherry-pick FETCH_HEAD
       - lf-infra-jjbini
     ######################
 
     git-url: '$GIT_URL/$PROJECT'
+    submodule-timeout: 10
 
     #####################
     # Job Configuration #
           refspec: ''
           branch: 'master'
           submodule-recursive: true
+          submodule-timeout: '{submodule-timeout}'
           choosing-strategy: default
           jenkins-ssh-credential: '{jenkins-ssh-credential}'
 
     project-pattern: '**'
     spdx-disable: false
     stream: master
+    submodule-timeout: 10
 
     #####################
     # Job Configuration #
           branch: '$GERRIT_BRANCH'
           # Submodules are out of the project's control
           submodule-recursive: false
+          submodule-timeout: '{submodule-timeout}'
           choosing-strategy: gerrit
           jenkins-ssh-credential: '{jenkins-ssh-credential}'
 
           branch: '$sha1'
           # Submodules are out of the project's control
           submodule-recursive: false
+          submodule-timeout: '{submodule-timeout}'
           choosing-strategy: default
           jenkins-ssh-credential: '{jenkins-ssh-credential}'
 
           refspec: '$GERRIT_REFSPEC'
           branch: '$GERRIT_BRANCH'
           submodule-recursive: '{submodule-recursive}'
+          submodule-timeout: '{submodule-timeout}'
           choosing-strategy: gerrit
           jenkins-ssh-credential: '{jenkins-ssh-credential}'
 
           refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
           branch: '$sha1'
           submodule-recursive: '{submodule-recursive}'
+          submodule-timeout: '{submodule-timeout}'
           choosing-strategy: default
           jenkins-ssh-credential: '{jenkins-ssh-credential}'
 
     github-url: 'https://github.com'
     openstack-cloud: vex
     stream: master
+    submodule-timeout: 10
 
     #####################
     # Job Configuration #
           refspec: 'refs/heads/{branch}'
           branch: '{branch}'
           submodule-recursive: true
+          submodule-timeout: '{submodule-timeout}'
           choosing-strategy: default
           jenkins-ssh-credential: '{jenkins-ssh-credential}'
 
           refspec: ''
           branch: 'refs/heads/{branch}'
           submodule-recursive: true
+          submodule-timeout: '{submodule-timeout}'
           choosing-strategy: default
           jenkins-ssh-credential: '{jenkins-ssh-credential}'
 
 - lf_packer_merge: &lf_packer_merge
     name: lf-packer-merge
 
+    ######################
+    # Default parameters #
+    ######################
+
+    openstack: true
+    openstack-cloud: vex
+
     #####################
     # Job Configuration #
     #####################
 
+    parameters:
+      - lf-infra-parameters:
+          project: '{project}'
+          stream: '{stream}'
+          branch: '{branch}'
+          lftools-version: '{lftools-version}'
+      - lf-packer-parameters:
+          packer-version: '{packer-version}'
+
     builders:
       - lf-infra-packer-build:
+          openstack: '{openstack}'
+          openstack-cloud: '{openstack-cloud}'
           packer-cloud-settings: '{packer-cloud-settings}'
           packer-version: '{packer-version}'
           platform: '{platforms}'
           refspec: '$GERRIT_REFSPEC'
           branch: '$GERRIT_BRANCH'
           submodule-recursive: '{submodule-recursive}'
+          submodule-timeout: '{submodule-timeout}'
           choosing-strategy: gerrit
           jenkins-ssh-credential: '{jenkins-ssh-credential}'
 
           refspec: ''
           branch: 'refs/heads/{branch}'
           submodule-recursive: '{submodule-recursive}'
+          submodule-timeout: '{submodule-timeout}'
           choosing-strategy: default
           jenkins-ssh-credential: '{jenkins-ssh-credential}'
 
     ######################
 
     build-timeout: 10
+    openstack: true
+    openstack-cloud: vex
 
     gerrit_verify_triggers:
       - patchset-created-event:
 
     builders:
       - lf-infra-packer-validate:
+          openstack: '{openstack}'
+          openstack-cloud: '{openstack-cloud}'
           packer-cloud-settings: '{packer-cloud-settings}'
           packer-version: '{packer-version}'
 
           refspec: '$GERRIT_REFSPEC'
           branch: '$GERRIT_BRANCH'
           submodule-recursive: '{submodule-recursive}'
+          submodule-timeout: '{submodule-timeout}'
           choosing-strategy: gerrit
           jenkins-ssh-credential: '{jenkins-ssh-credential}'
 
           refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
           branch: '$sha1'
           submodule-recursive: '{submodule-recursive}'
+          submodule-timeout: '{submodule-timeout}'
           choosing-strategy: default
           jenkins-ssh-credential: '{jenkins-ssh-credential}'