Add macro for github SCM and bits for ghrpb 33/4533/81 v0.2.0
authorJeremy Phelps <jphelps@linuxfoundation.org>
Thu, 11 May 2017 17:23:20 +0000 (12:23 -0500)
committerThanh Ha <thanh.ha@linuxfoundation.org>
Tue, 23 May 2017 23:02:29 +0000 (19:02 -0400)
RELENG-127
Change-Id: I2affd71b4c4332522104b7eff11af284b9bab895
Signed-off-by: Jeremy Phelps <jphelps@linuxfoundation.org>
README.md
jjb/lf-ci-jobs.yaml
jjb/lf-macros.yaml

index edba0d9..3bad6b0 100644 (file)
--- a/README.md
+++ b/README.md
@@ -74,6 +74,13 @@ Trigger global configuration.
 **jenkins-ssh-credential**: The name of the Jenkins Credential to use for ssh
 connections.
 
+If you are using GitHub then there are two more parameters which
+will need to be placed in the defaults.yaml
+
+**github-url**: The URL of GitHub. (Default: https://github.com)
+
+**github-org**: The name of the GitHub organization.
+
 defaults.yaml:
 
 ```
@@ -83,6 +90,7 @@ defaults.yaml:
     # lf-infra defaults
     jenkins-ssh-credential: opendaylight-jenkins-ssh
     gerrit-server-name: OpenDaylight
+    github-org: lfit
 ```
 
 ## Config File Management
index 8005bdc..b1d3646 100644 (file)
       - gerrit-jjb-merge
       - gerrit-jjb-verify
 
+- job-group:
+    name: '{project-name}-github-ci-jobs'
+
+    # This job group contains all the recommended jobs that should be deployed
+    # for any project ci that is using github.
+
+    jjb-version: 1.6.2
+
+    jobs:
+      - 'github-jjb-merge'
+      - 'github-jjb-verify'
+
+
 ####################
 # Anchors & Macros #
 ####################
                 - branch-compare-type: ANT
                   branch-pattern: '**/{branch}'
               <<: *lf_jjb_file_paths
+
+- job-template:
+    name: '{project-name}-jjb-merge'
+    id: github-jjb-merge
+    <<: *lf_jjb_verify_merge
+    # yamllint disable-line rule:key-duplicates
+    <<: *lf_jjb_merge_builders
+
+    ######################
+    # Default parameters #
+    ######################
+
+    github-url: https://github.com
+
+    #####################
+    # Job Configuration #
+    #####################
+
+    properties:
+      - github:
+          url: '{github-url}/{github-org}/{project}'
+
+    scm:
+      - lf-infra-github-scm:
+          url: '$GIT_URL/$PROJECT'
+          refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
+          branch: '{branch}'
+          submodule-recursive: '{submodule-recursive}'
+          choosing-strategy: default
+          jenkins-ssh-credential: '{jenkins-ssh-credential}'
+
+    triggers:
+      - github-pull-request:
+          trigger-phrase: '^remerge$'
+          only-trigger-phrase: true
+          status-context: 'JJB Merge'
+          permit-all: false
+          github-hooks: true
+          auto-close-on-fail: false
+          org-list:
+            - '{github-org}'
+
+- job-template:
+    name: '{project-name}-jjb-verify'
+    id: github-jjb-verify
+    <<: *lf_jjb_verify_merge
+    # yamllint disable-line rule:key-duplicates
+    <<: *lf_jjb_merge_builders
+
+    ######################
+    # Default parameters #
+    ######################
+
+    github-url: https://github.com
+
+    #####################
+    # Job Configuration #
+    #####################
+
+    properties:
+      - github:
+          url: '{github-url}/{github-org}/{project}'
+
+    scm:
+      - lf-infra-github-scm:
+          url: '$GIT_URL/$PROJECT'
+          refspec: '+refs/pull/*:refs/remotes/origin/pr/*'
+          branch: '{branch}'
+          submodule-recursive: '{submodule-recursive}'
+          choosing-strategy: default
+          jenkins-ssh-credential: '{jenkins-ssh-credential}'
+
+    triggers:
+      - github-pull-request:
+          trigger-phrase: '^recheck$'
+          only-trigger-phrase: false
+          status-context: 'JJB Verify'
+          permit-all: true
+          github-hooks: true
+          auto-close-on-fail: false
index 0c0e69b..175af86 100644 (file)
             recursive: '{submodule-recursive}'
           choosing-strategy: '{choosing-strategy}'
 
+- scm:
+    name: lf-infra-github-scm
+    scm:
+      - git:
+          credentials-id: '{jenkins-ssh-credential}'
+          url: '$GIT_URL/$PROJECT'
+          refspec: '{refspec}'
+          skip-tag: true
+          wipe-workspace: true
+          submodule:
+            recursive: '{submodule-recursive}'
+          choosing-strategy: '{choosing-strategy}'
+
 - wrapper:
     name: lf-infra-wrappers
     wrappers: