Merge "Configurable Timed Trigger for Packer Merge Jobs"
authorThanh Ha <thanh.ha@linuxfoundation.org>
Thu, 14 Jun 2018 22:11:14 +0000 (22:11 +0000)
committerGerrit Code Review <gerrit@linuxfoundation.org>
Thu, 14 Jun 2018 22:11:14 +0000 (22:11 +0000)
1  2 
jjb/lf-ci-jobs.yaml

diff --combined jjb/lf-ci-jobs.yaml
              - file-id: jjbini-sandbox
                target: '$HOME/.config/jenkins_jobs/jenkins_jobs.ini'
  
 -- lf_packer_file_paths: &lf_packer_file_paths
 -    name: lf-packer-file-paths
 -    file-paths:
 -      - compare-type: ANT
 -        pattern: 'packer/vars/{platforms}.json'
 -      - compare-type: ANT
 -        pattern: 'packer/templates/{templates}.json'
 -      - compare-type: ANT
 -        pattern: 'packer/provision/*.sh'
 -      - compare-type: ANT
 -        pattern: 'packer/provision/{templates}.yaml'
 -      - compare-type: ANT
 -        pattern: 'packer/provision/local-{templates}.yaml'
 -      - compare-type: ANT
 -        pattern: 'packer/provision/lib/**'
 -
  - lf_packer: &lf_packer_common
      name: lf-packer-common
      # Provide configuration common in packer jobs.
@@@ -63,6 -79,7 +63,7 @@@
  
      branch: master
      build-timeout: 90
+     cron: '@monthly'
      stream: master
      submodule-recursive: true
      packer-cloud-settings: packer-cloud-env
      submodule-recursive: true
  
      gerrit_trigger_file_paths:
 -      - compare-type: ANT
 -        pattern: '**/*.groovy'
 -      - compare-type: ANT
 -        pattern: '**/*.sh'
 -      - compare-type: ANT
 -        pattern: '**/*.yml'
 -      - compare-type: ANT
 -        pattern: '**/*.yaml'
 -      - compare-type: ANT
 -        pattern: '**/global-jjb'
 +      - compare-type: REG_EXP
 +        pattern: '.*\.groovy'
 +      - compare-type: REG_EXP
 +        pattern: '.*\.sh'
 +      - compare-type: REG_EXP
 +        pattern: '.*\.(yaml|yml)'
 +      - compare-type: REG_EXP
 +        pattern: '.*\/global-jjb'
 +
 +    # github_included_regions MUST match gerrit_trigger_file_paths
 +    github_included_regions:
 +      - '.*\.groovy'
 +      - '.*\.sh'
 +      - '.*\.(yaml|yml)'
 +      - '.*\/global-jjb'
  
      #####################
      # Job Configuration #
            comment-contains-value: remerge$
  
      gerrit_trigger_file_paths:
 -      - compare-type: ANT
 -        pattern: 'jenkins-config/**'
 +      - compare-type: REG_EXP
 +        pattern: 'jenkins-config\/.*'
 +
 +    # github_included_regions MUST match gerrit_trigger_file_paths
 +    github_included_regions:
 +      - 'jenkins-config\/.*'
  
      #####################
      # Job Configuration #
        - github
        - pollscm:
            cron: ''
 -      - lf-infra-github-pr-trigger:
 +      - github-pull-request:
            trigger-phrase: '^remerge$'
            only-trigger-phrase: true
            status-context: 'Jenkins CFG Merge'
            permit-all: false
            github-hooks: true
 -          github-org: '{github-org}'
 -          github_pr_whitelist: '{obj:github_pr_whitelist}'
 -          github_pr_admin_list: '{obj:github_pr_admin_list}'
 -
 +          org-list:
 +            - '{github-org}'
 +          white-list: '{obj:github_pr_whitelist}'
 +          admin-list: '{obj:github_pr_admin_list}'
 +          included-regions: '{obj:github_included_regions}'
  
  ##################
  # JJB DEPLOY JOB #
            jenkins-ssh-credential: '{jenkins-ssh-credential}'
  
      triggers:
 -      - lf-infra-github-pr-trigger:
 +      - github-pull-request:
            trigger-phrase: '^jjb-deploy (?!\*+$).+$'
            only-trigger-phrase: true
            status-context: 'JJB Deploy Job'
            permit-all: true
            github-hooks: true
 -          github-org: ''
 -          github_pr_whitelist:
 -            - ''
 -          github_pr_admin_list:
 -            - ''
  
  #############
  # JJB Merge #
      # yamllint disable-line rule:key-duplicates
      <<: *lf_jjb_merge
  
 +    #####################
 +    # Job Configuration #
 +    #####################
 +
      properties:
        - github:
            url: '{git-url}/{github-org}/{project}'
        - github
        - pollscm:
            cron: ''
 -      - lf-infra-github-pr-trigger:
 +      - github-pull-request:
            trigger-phrase: '^remerge$'
            only-trigger-phrase: true
            status-context: 'JJB Merge'
            permit-all: false
            github-hooks: true
 -          github-org: '{github-org}'
 -          github_pr_whitelist: '{obj:github_pr_whitelist}'
 -          github_pr_admin_list: '{obj:github_pr_admin_list}'
 +          org-list:
 +            - '{github-org}'
 +          white-list: '{obj:github_pr_whitelist}'
 +          admin-list: '{obj:github_pr_admin_list}'
 +          included-regions: '{obj:github_included_regions}'
  
  ##############
  # JJB Verify #
      # yamllint disable-line rule:key-duplicates
      <<: *lf_jjb_verify
  
 +    ######################
 +    # Default parameters #
 +    ######################
 +
      git-url: '$GIT_URL/$GERRIT_PROJECT'
  
 +    #####################
 +    # Job Configuration #
 +    #####################
 +
      scm:
        - lf-infra-gerrit-scm:
            git-url: '{git-url}'
      # yamllint disable-line rule:key-duplicates
      <<: *lf_jjb_verify
  
 +    #####################
 +    # Job Configuration #
 +    #####################
 +
      properties:
        - github:
            url: '{git-url}/{github-org}/{project}'
            jenkins-ssh-credential: '{jenkins-ssh-credential}'
  
      triggers:
 -      - lf-infra-github-pr-trigger:
 +      - github-pull-request:
            trigger-phrase: '^recheck$'
            only-trigger-phrase: false
            status-context: 'JJB Verify'
            permit-all: true
            github-hooks: true
 -          github-org: ''
 -          github_pr_whitelist:
 -            - ''
 -          github_pr_admin_list:
 -            - ''
 +          included-regions: '{obj:github_included_regions}'
  
  ################
  # Packer Merge #
  - lf_packer_merge: &lf_packer_merge
      name: lf-packer-merge
  
 -    ######################
 -    # Default parameters #
 -    ######################
 -
 -    gerrit_merge_triggers:
 -      - change-merged-event
 -      - comment-added-contains-event:
 -          comment-contains-value: remerge$
 -
      #####################
      # Job Configuration #
      #####################
      # yamllint disable-line rule:key-duplicates
      <<: *lf_packer_merge
  
 +    ######################
 +    # Default parameters #
 +    ######################
 +
      git-url: '$GIT_URL/$GERRIT_PROJECT'
  
 +    gerrit_merge_triggers:
 +      - change-merged-event
 +      - comment-added-contains-event:
 +          comment-contains-value: remerge$
 +
 +    #####################
 +    # Job Configuration #
 +    #####################
 +
      scm:
        - lf-infra-gerrit-scm:
            git-url: '{git-url}'
            jenkins-ssh-credential: '{jenkins-ssh-credential}'
  
      triggers:
-       - timed: '00 10 1 * *'
+       - timed: '{cron}'
        - gerrit:
            server-name: '{gerrit-server-name}'
            trigger-on: '{obj:gerrit_merge_triggers}'
                branches:
                  - branch-compare-type: ANT
                    branch-pattern: '**/{branch}'
 -              <<: *lf_packer_file_paths
 +              file-paths:
 +                - compare-type: REG_EXP
 +                  pattern: 'packer\/provision\/.*\.sh'
 +                - compare-type: REG_EXP
 +                  pattern: 'packer\/provision\/{templates}\.yaml'
 +                - compare-type: REG_EXP
 +                  pattern: 'packer\/provision\/local-{templates}\.yaml'
 +                - compare-type: REG_EXP
 +                  pattern: 'packer\/templates\/{templates}\.json'
 +                - compare-type: REG_EXP
 +                  pattern: 'packer\/vars\/{platforms}\.json'
  
  - job-template:
      name: '{project-name}-packer-merge-{platforms}-{templates}'
      # yamllint disable-line rule:key-duplicates
      <<: *lf_packer_merge
  
 +    #####################
 +    # Job Configuration #
 +    #####################
 +
      properties:
        - github:
            url: '{git-url}/{github-org}/{project}'
            jenkins-ssh-credential: '{jenkins-ssh-credential}'
  
      triggers:
-       - timed: '00 10 1 * *'
+       - timed: '{cron}'
        - github
        - pollscm:
            cron: ''
 -      - lf-infra-github-pr-trigger:
 +
 +      - github-pull-request:
            trigger-phrase: '^remerge$'
            only-trigger-phrase: true
 -          status-context: 'Packer {platforms}-${templates} Merge'
 +          status-context: 'Packer {platforms}-{templates} Merge'
            permit-all: false
            github-hooks: true
 -          github-org: '{github-org}'
 -          github_pr_whitelist: '{obj:github_pr_whitelist}'
 -          github_pr_admin_list: '{obj:github_pr_admin_list}'
 +          org-list:
 +            - '{github-org}'
 +          white-list: '{obj:github_pr_whitelist}'
 +          admin-list: '{obj:github_pr_admin_list}'
 +          # included-regions MUST match Gerrit Trigger file-paths
 +          included-regions:
 +            - 'packer\/provision\/.*\.sh'
 +            - 'packer\/provision\/{templates}\.yaml'
 +            - 'packer\/provision\/local-{templates}\.yaml'
 +            - 'packer\/templates\/{templates}\.json'
 +            - 'packer\/vars\/{platforms}\.json'
  
  #################
  # Packer Verify #
            comment-contains-value: recheck$
  
      gerrit_trigger_file_paths:
 -      - compare-type: ANT
 -        pattern: 'packer/vars/**.json'
 -      - compare-type: ANT
 -        pattern: 'packer/templates/**.json'
 -      - compare-type: ANT
 -        pattern: 'packer/provision/**.sh'
 -      - compare-type: ANT
 -        pattern: 'packer/provision/lib/**'
 +      - compare-type: REG_EXP
 +        pattern: 'packer\/.*'
 +
 +    # github_included_regions MUST match gerrit_trigger_file_paths
 +    github_included_regions:
 +      - 'packer\/.*'
  
      #####################
      # Job Configuration #
      # yamllint disable-line rule:key-duplicates
      <<: *lf_packer_verify
  
 +    ######################
 +    # Default parameters #
 +    ######################
 +
      git-url: '$GIT_URL/$GERRIT_PROJECT'
  
 +    #####################
 +    # Job Configuration #
 +    #####################
 +
      scm:
        - lf-infra-gerrit-scm:
            git-url: '{git-url}'
      # yamllint disable-line rule:key-duplicates
      <<: *lf_packer_verify
  
 +    #####################
 +    # Job Configuration #
 +    #####################
 +
      properties:
        - github:
            url: '{git-url}/{github-org}/{project}'
            jenkins-ssh-credential: '{jenkins-ssh-credential}'
  
      triggers:
 -      - lf-infra-github-pr-trigger:
 +      - github-pull-request:
            trigger-phrase: '^recheck$'
            only-trigger-phrase: false
            status-context: 'Packer Verify'
            permit-all: true
            github-hooks: true
 -          github-org: ''
 -          github_pr_whitelist:
 -            - ''
 -          github_pr_admin_list:
 -            - ''
 +          included-regions: '{obj:github_included_regions}'