Add script verify and multi-scm script verify
authorAndrew Grimberg <agrimberg@linuxfoundation.org>
Wed, 8 Feb 2017 20:40:56 +0000 (12:40 -0800)
committerAndrew Grimberg <agrimberg@linuxfoundation.org>
Wed, 8 Feb 2017 20:40:56 +0000 (12:40 -0800)
* Add example templates for doing verify jobs that use a script instead of
  maven

* Add new 'git-extra-project' macro for doing git checkouts that are not
  the base project checkout. These _must_ be checked out to a specified
  subdirectory

* Add example template that does two git checkouts

Change-Id: I522da87d591ee819a8fd67c22e25906b851a581e
Signed-off-by: Andrew Grimberg <agrimberg@linuxfoundation.org>
jjb/global-macros.yaml
jjb/global-templates-script.yaml [new file with mode: 0644]

index d2068a8..a968103 100644 (file)
@@ -1,6 +1,8 @@
 ---
 # Global macros
 
+# vim: sw=2 ts=2 sts=2 et :
+
 # BUILDERS
 - builder:
     name: ci-management-check-unicode
           url: '$GIT_BASE'
           refspec: ''
           branches:
-            - 'origin/${branch}'
+            - 'origin/{branch}'
           skip-tag: true
           wipe-workspace: true
           timeout: 30
           timeout: 30
           wipe-workspace: true
 
+- scm:
+    name: git-extra-project
+    scm:
+      - git:
+          credentials-id: 'ecomp-jenkins-ssh'
+          url: '$GIT_NO_PROJECT/{project}'
+          refspec: '{refspec}'
+          branches:
+            - 'origin/{branch}'
+          skip-tag: true
+          timeoute: 30
+          wipe-workspace: false
+          basedir: '{checkout-dir}'
+
+
 # TRIGGERS
 
 # This is a single macro to use for all jobs who vote on every (relevant) patch
diff --git a/jjb/global-templates-script.yaml b/jjb/global-templates-script.yaml
new file mode 100644 (file)
index 0000000..9dd5dce
--- /dev/null
@@ -0,0 +1,132 @@
+---
+# vim: sw=2 ts=2 sts=2 et :
+
+- job-template:
+    # Job template for basic scm and script trigger
+    #
+    # Required Variables:
+    #   branch:         git branch
+    #   build-node:     what build node to run on
+    #   script:         build script to execute
+
+    name: '{project-name}-{stream}-verify-script'
+
+    project-type: freestyle
+    concurrent: true
+    node: '{build-node}'
+
+    properties:
+      - ecomp-infra-properties:
+          build-days-to-keep: '{build-days-to-keep}'
+
+    parameters:
+      - ecomp-infra-parameters:
+          project: '{project}'
+          branch: '{branch}'
+          refspec: 'refs/heads/{branch}'
+          artifacts: '{archive-artifacts}'
+
+    scm:
+      - gerrit-trigger-scm:
+          refspec: '$GERRIT_REFSPEC'
+          choosing-strategy: 'gerrit'
+
+    wrappers:
+      - ecomp-infra-wrappers:
+          build-timeout: '{build-timeout}'
+
+    triggers:
+      - gerrit-trigger-patch-submitted:
+          server: '{server-name}'
+          project: '{project}'
+          branch: '{branch}'
+          files: '**'
+
+    builders:
+      - provide-maven-settings:
+          global-settings-file: 'global-settings'
+          settings-file: '{mvn-settings}'
+      # make sure maven gets installed / setup
+      - maven-target:
+          maven-version: 'mvn33'
+          goals: '--version'
+          settings: '{mvn-settings}'
+          settings-type: cfp
+          global-settings: 'global-settings'
+          global-settings-type: cfp
+      - shell: '{script}'
+
+#    publishers:
+#      - ecomp-infra-shiplogs:
+#          maven-version: 'mvn33'
+
+- job-template:
+    # Job template for 2 scm and script trigger
+    #
+    # Required Variables:
+    #   branch:         git branch
+    #   build-node:     what build node to run on
+    #   script:         build script to execute
+    #   extra-project:  extra gerrit project to checkout
+    #   extra-refspec:  refspec for the extra project
+    #   extra-branch:   branch to checkout for the extra project
+    #   checkout-dir:   directory to checkout the extra project to
+    #                     DO NOT SET THIS TO anything that translates to
+    #                     $WORKSPACE as it will destroy the initial
+    #                     project checkout
+
+    name: '{project-name}-{stream}-multi-scm-verify-script'
+
+    project-type: freestyle
+    concurrent: true
+    node: '{build-node}'
+
+    properties:
+      - ecomp-infra-properties:
+          build-days-to-keep: '{build-days-to-keep}'
+
+    parameters:
+      - ecomp-infra-parameters:
+          project: '{project}'
+          branch: '{branch}'
+          refspec: 'refs/heads/{branch}'
+          artifacts: '{archive-artifacts}'
+
+    scm:
+      - gerrit-trigger-scm:
+          refspec: '$GERRIT_REFSPEC'
+          choosing-strategy: 'gerrit'
+      - git-extra-project:
+          project: '{extra-project}'
+          refspec: '{extra-refspec}'
+          branch: '{extra-branch}'
+          checkout-dir: '{checkout-dir}'
+
+    wrappers:
+      - ecomp-infra-wrappers:
+          build-timeout: '{build-timeout}'
+
+    triggers:
+      - gerrit-trigger-patch-submitted:
+          server: '{server-name}'
+          project: '{project}'
+          branch: '{branch}'
+          files: '**'
+
+    builders:
+      - provide-maven-settings:
+          global-settings-file: 'global-settings'
+          settings-file: '{mvn-settings}'
+      # make sure maven gets installed / setup
+      - maven-target:
+          maven-version: 'mvn33'
+          goals: '--version'
+          settings: '{mvn-settings}'
+          settings-type: cfp
+          global-settings: 'global-settings'
+          global-settings-type: cfp
+      - shell: '{script}'
+
+#    publishers:
+#      - ecomp-infra-shiplogs:
+#          maven-version: 'mvn33'