Merge "Revert "Add a swap file to build machines""
[releng/builder.git] / jjb / releng-jobs.yaml
index 1de2a6e000cbf193201f3a07aa7f794973934756..c1f41b551893eb4f417825a15077a9884d40de90 100644 (file)
@@ -2,20 +2,42 @@
 - project:
     name: builder-jobs
     jobs:
-      - '{project-name}-ci-jobs'
-      - '{project-name}-verify-tox-{stream}'
-      - 'builder-check-poms'
-      # Packer jobs
-      - 'builder-verify-packer'
-      - 'builder-merge-packer-{platforms}-{templates}'
-      # OpenStack Related
-      - 'builder-cleanup-old-images'
-      - 'builder-delete-stale-nodes'
-      - 'builder-delete-stale-stacks'
+      - '{project-name}-ci-jobs':
+          build-node: centos7-builder-2c-2g
+          build-timeout: 60
+          jenkins-silos: releng sandbox
+      - builder-check-poms
+      - builder-copy-sandbox-logs
+      - builder-openstack-cron
+      - gerrit-tox-verify
       # Automation for docs and jobs
-      - 'builder-update-csit-tests'
       - 'builder-update-image-list'
 
+    # The following values are only specified here
+    # so that code blocks look similar to other projects.
+    project: 'releng/builder'
+    project-name: builder
+    stream: master
+    branch: master
+    build-node: centos7-builder-2c-1g
+    archive-artifacts: '**/*.log'
+    build-timeout: 30
+    jjb-version: 2.0.0
+    jenkins-urls: >
+      https://jenkins.opendaylight.org/releng
+      https://jenkins.opendaylight.org/sandbox
+
+- project:
+    name: packer-jobs
+    # packer jobs templates are defined in global-jjb
+    jobs:
+      - '{project-name}-packer-jobs'
+    project: 'releng/builder'
+    project-name: builder
+    branch: master
+    archive-artifacts: '**/*.log'
+    build-node: centos7-builder-2c-1g
+
     platforms:
       - centos
       - ubuntu-14.04
 
     templates:
       - devstack
-      - devstack-pre-pip-newton
-      - docker
+      - devstack-pre-pip-newton:
+          build-timeout: 75
+      - devstack-pre-pip-ocata:
+          build-timeout: 75
+      - devstack-pre-pip-pike:
+          build-timeout: 75
       - gbp
-      - java-builder
-      - mininet
-      - mininet-ovs-2.5
-      - robot
+      - mininet-ovs-2.5:
+          build-timeout: 60
+      - mininet-ovs-2.6:
+          build-timeout: 75
 
     exclude:
       - platforms: centos
         templates: gbp
-      - platforms: centos
-        templates: mininet
       - platforms: centos
         templates: mininet-ovs-2.5
+      - platforms: centos
+        templates: mininet-ovs-2.6
       - platforms: ubuntu-14.04
-        templates: java-builder
+        templates: devstack-pre-pip-newton
       - platforms: ubuntu-14.04
-        templates: robot
+        templates: devstack-pre-pip-ocata
       - platforms: ubuntu-14.04
-        templates: devstack-pre-pip-newton
+        templates: devstack-pre-pip-pike
       - platforms: ubuntu-14.04
         templates: devstack
-      - platforms: ubuntu-14.04
-        templates: docker
       - platforms: ubuntu-14.04
         templates: mininet-ovs-2.5
-      - platforms: ubuntu-16.04
-        templates: java-builder
-      - platforms: ubuntu-16.04
-        templates: robot
+      - platforms: ubuntu-14.04
+        templates: mininet-ovs-2.6
       - platforms: ubuntu-16.04
         templates: devstack-pre-pip-newton
       - platforms: ubuntu-16.04
-        templates: devstack
-      - platforms: ubuntu-16.04
-        templates: docker
+        templates: devstack-pre-pip-ocata
       - platforms: ubuntu-16.04
-        templates: mininet
+        templates: devstack-pre-pip-pike
       - platforms: ubuntu-16.04
-        templates: gbp
-
-
-    project-type: freestyle
-    archive-artifacts: '**/*.log'
-    build-timeout: '60'
-
-    # The following values are only specified here
-    # so that code blocks look similar to other projects.
-    project: 'releng/builder'
-    project-name: builder
-    stream: master
-    branch: master
-    build-node: centos7-java-builder-2c-4g
+        templates: devstack
 
 - job-template:
     name: builder-check-poms
-    node: centos7-java-builder-2c-4g
+    node: centos7-builder-2c-1g
 
     project-type: freestyle
 
       - timed: 'H H * * 1'
 
     builders:
-      - shell: !include-raw-escape: include-raw-check-poms.sh
+      - shell: !include-raw-escape: check-poms.sh
 
     publishers:
       - email-notification:
           email-prefix: '[releng]'
       - lf-infra-publish
 
-
 - job-template:
-    name: 'builder-cleanup-old-images'
+    name: builder-copy-sandbox-logs
+    node: centos7-builder-2c-1g
+
     project-type: freestyle
-    node: centos7-java-builder-2c-4g
 
     properties:
       - opendaylight-infra-properties:
-          build-days-to-keep: 7
+          build-days-to-keep: 1
 
     parameters:
       - opendaylight-infra-parameters:
-          os-cloud: '{os-cloud}'
-          project: '{project}'
-          branch: '{branch}'
-          refspec: 'refs/heads/{branch}'
-          artifacts: '{archive-artifacts}'
-
-    scm:
-      - git-scm:
-          branch: '{branch}'
+          os-cloud: ''
+          project: ''
+          branch: ''
+          refspec: ''
+          artifacts: ''
 
     wrappers:
       - opendaylight-infra-wrappers:
-          build-timeout: '{build-timeout}'
-      # Listed after to override openstack-infra-wrappers clouds.yaml definition
-      - config-file-provider:
-          files:
-            - file-id: opendaylight-private-clouds-yaml
-              target: '$HOME/.config/openstack/clouds.yaml'
+          build-timeout: 10
 
     triggers:
-      # Cleanup images on a weekly schedule
-      - timed: '@weekly'
+      - gerrit:
+          server-name: '{gerrit-server-name}'
+          trigger-on:
+            - comment-added-contains-event:
+                comment-contains-value: 'copy-logs:'
+          projects:
+            - project-compare-type: ANT
+              project-pattern: '**'
+              branches:
+                - branch-compare-type: ANT
+                  branch-pattern: '**'
 
     builders:
-      - shell: !include-raw-escape:
-          - global-jjb/shell/lftools-install.sh
-          - opendaylight-infra-cleanup-old-images.sh
+      - shell: !include-raw-escape: copy-sandbox-logs.sh
 
     publishers:
-      - email-notification:
-          email-recipients: '{email-recipients}'
-          email-prefix: '[releng]'
       - lf-infra-publish
 
 
 - job-template:
-    name: 'builder-delete-stale-nodes'
+    name: builder-openstack-cron
     project-type: freestyle
-    node: centos7-java-builder-2c-4g
+    node: '{build-node}'
 
     properties:
-      - opendaylight-infra-properties:
+      - lf-infra-properties:
           build-days-to-keep: 7
 
     parameters:
-      - opendaylight-infra-parameters:
-          os-cloud: '{os-cloud}'
+      - lf-infra-parameters:
           project: '{project}'
+          stream: '{stream}'
           branch: '{branch}'
-          refspec: 'refs/heads/{branch}'
-          artifacts: '{archive-artifacts}'
+          lftools-version: '{lftools-version}'
+      - string:
+          name: OS_CLOUD
+          default: '{os-cloud}'
+          description: Artifacts to archive to the logs server.
+      - string:
+          name: ARCHIVE_ARTIFACTS
+          default: '{archive-artifacts}'
+          description: Artifacts to archive to the logs server.
+      - string:
+          name: JENKINS_URLS
+          default: '{jenkins-urls}'
+          description: 'Space separated list of Jenkins URLs to check for active builds'
 
-    wrappers:
-      - opendaylight-infra-wrappers:
-          build-timeout: '{build-timeout}'
-
-    triggers:
-      # Attempt to clear up stacks every 30 mins in case we have orphaned stacks
-      - timed: '0,30 * * * *'
-
-    builders:
-      - shell: !include-raw-escape:
-          - global-jjb/shell/lftools-install.sh
-          - opendaylight-infra-cleanup-stale-nodes.sh
-
-    publishers:
-      - email-notification:
-          email-recipients: '{email-recipients}'
-          email-prefix: '[releng]'
-      - lf-infra-publish
-
-
-- job-template:
-    name: 'builder-delete-stale-stacks'
-    project-type: freestyle
-    node: centos7-java-builder-2c-4g
-
-    properties:
-      - opendaylight-infra-properties:
-          build-days-to-keep: 7
-
-    parameters:
-      - opendaylight-infra-parameters:
-          os-cloud: '{os-cloud}'
-          project: '{project}'
+    scm:
+      - git-scm:
           branch: '{branch}'
-          refspec: 'refs/heads/{branch}'
-          artifacts: '{archive-artifacts}'
 
     wrappers:
-      - opendaylight-infra-wrappers:
+      - lf-infra-wrappers:
           build-timeout: '{build-timeout}'
+          jenkins-ssh-credential: '{jenkins-ssh-credential}'
+      # Listed after to override openstack-infra-wrappers clouds.yaml definition
+      - config-file-provider:
+          files:
+            - file-id: clouds-yaml
+              target: '$HOME/.config/openstack/clouds.yaml'
 
     triggers:
-      # Attempt to clear up stacks every 30 mins in case we have orphaned stacks
       - timed: '0,30 * * * *'
 
     builders:
-      - shell: !include-raw-escape: opendaylight-infra-cleanup-stale-stacks.sh
+      - odl-openstack-install
+      - shell: !include-raw-escape: global-jjb/shell/lftools-install.sh
+      # Servers
+      - odl-openstack-cleanup-stale-stacks
+      - odl-openstack-cleanup-stale-nodes
+      - odl-openstack-cleanup-orphaned-nodes
+      # Images
+      - odl-openstack-check-image-protection
+      - odl-openstack-cleanup-old-images
 
     publishers:
-      - email-notification:
-          email-recipients: '{email-recipients}'
-          email-prefix: '[releng]'
       - lf-infra-publish
 
-
 - job-template:
     name: 'builder-update-image-list'
     project-type: freestyle
-    node: centos7-java-builder-2c-4g
+    node: centos7-builder-2c-1g
 
     properties:
       - opendaylight-infra-properties:
 
     parameters:
       - opendaylight-infra-parameters:
-          os-cloud: odlpriv
+          os-cloud: vex
           project: '{project}'
           branch: '{branch}'
           refspec: 'refs/heads/{branch}'
       # Listed after to override openstack-infra-wrappers clouds.yaml definition
       - config-file-provider:
           files:
-            - file-id: opendaylight-private-clouds-yaml
+            - file-id: clouds-yaml
               target: '$HOME/.config/openstack/clouds.yaml'
 
     triggers:
           email-recipients: '{email-recipients}'
           email-prefix: '[releng]'
       - lf-infra-publish
-
-- job-template:
-    name: 'builder-verify-packer'
-    project-type: freestyle
-    node: centos7-java-builder-2c-4g
-    concurrent: true
-
-    properties:
-      - opendaylight-infra-properties:
-          build-days-to-keep: 14
-
-    parameters:
-      - opendaylight-infra-parameters:
-          os-cloud: '{os-cloud}'
-          project: '{project}'
-          branch: '{branch}'
-          refspec: 'refs/heads/{branch}'
-          artifacts: '{archive-artifacts}'
-
-    scm:
-      - gerrit-trigger-scm:
-          refspec: '$GERRIT_REFSPEC'
-          choosing-strategy: 'gerrit'
-
-    wrappers:
-      - opendaylight-infra-wrappers:
-          build-timeout: '{build-timeout}'
-
-    triggers:
-      - gerrit-trigger-patch-submitted:
-          server: '{server-name}'
-          project: '{project}'
-          branch: '{branch}'
-          files: 'packer/**'
-
-    builders:
-      - packer-validate:
-
-    publishers:
-      - email-notification:
-          email-recipients: '{email-recipients}'
-          email-prefix: '[{project}]'
-      - lf-infra-publish
-
-- job-template:
-    name: 'builder-merge-packer-{platforms}-{templates}'
-    project-type: freestyle
-    node: centos7-java-builder-2c-4g
-
-    properties:
-      - opendaylight-infra-properties:
-          build-days-to-keep: 14
-
-    parameters:
-      - opendaylight-infra-parameters:
-          os-cloud: '{os-cloud}'
-          project: '{project}'
-          branch: '{branch}'
-          refspec: 'refs/heads/{branch}'
-          artifacts: '{archive-artifacts}'
-
-    scm:
-      - gerrit-trigger-scm:
-          refspec: '$GERRIT_REFSPEC'
-          branches:
-            - '$GERRIT_BRANCH'
-          choosing-strategy: 'default'
-
-    wrappers:
-      - opendaylight-infra-wrappers:
-          build-timeout: '{build-timeout}'
-
-    triggers:
-      - timed: '00 10 1 * *'
-      - gerrit:
-          server-name: '{server-name}'
-          trigger-on:
-            - change-merged-event
-            - comment-added-contains-event:
-                comment-contains-value: 'remerge'
-          projects:
-            - project-compare-type: 'ANT'
-              project-pattern: 'releng/builder'
-              branches:
-                - branch-compare-type: 'ANT'
-                  branch-pattern: '**/{branch}'
-              file-paths:
-                - compare-type: ANT
-                  pattern: 'packer/vars/{platforms}.json'
-                - compare-type: ANT
-                  pattern: 'packer/templates/{templates}.json'
-                - compare-type: ANT
-                  pattern: 'packer/provision/{templates}.sh'
-                - compare-type: ANT
-                  pattern: 'packer/provision/system_reseal.sh'
-                - compare-type: ANT
-                  pattern: 'packer/provision/rh-user_data.sh'
-                - compare-type: ANT
-                  pattern: 'packer/provision/devstack-pre-pip.sh'
-                - compare-type: ANT
-                  pattern: 'packer/provision/baseline.sh'
-
-    builders:
-      - packer-validate:
-      - packer-build:
-          platform: '{platforms}'
-          template: '{templates}'
-
-    publishers:
-      - email-notification:
-          email-recipients: '{email-recipients}'
-          email-prefix: '[{project}]'
-      - lf-infra-publish
-
-- job-template:
-    name: 'builder-update-csit-tests'
-    node: centos7-java-builder-2c-8g
-
-    # builder-update-csit-tests job
-    #
-    # This job's purpose is to update csit
-    # tests to run in integration-distribution-test-{stream}
-    # by updating releng-defaults variables: csit-list-carbon,
-    # csit-list-boron, csit-list-beryllium
-
-    project-type: freestyle
-
-    properties:
-      - opendaylight-infra-properties:
-          build-days-to-keep: 14
-
-    parameters:
-      - opendaylight-infra-parameters:
-          os-cloud: '{os-cloud}'
-          project: '{project}'
-          branch: '{branch}'
-          refspec: 'refs/heads/{branch}'
-          artifacts: '{archive-artifacts}'
-
-    scm:
-      - gerrit-trigger-scm:
-          refspec: ''
-          choosing-strategy: 'default'
-
-    wrappers:
-      - opendaylight-infra-wrappers:
-          build-timeout: '{build-timeout}'
-
-    triggers:
-      - reverse:
-          jobs: 'builder-jjb-merge'
-
-    builders:
-      - shell: |
-          git checkout -b auto-update-csit-jobs
-      - integration-list-jobs:
-          blacklist: '{csit-list-blacklist}'
-          search_string: "csit"
-          stream: "nitrogen"
-          jobs-filename: "csit_jobs_nitrogen.lst"
-      - integration-list-jobs:
-          blacklist: '{csit-list-blacklist}'
-          search_string: "csit"
-          stream: "carbon"
-          jobs-filename: "csit_jobs_carbon.lst"
-      - integration-list-jobs:
-          blacklist: '{csit-list-blacklist}'
-          search_string: "csit"
-          stream: "boron"
-          jobs-filename: "csit_jobs_boron.lst"
-      - integration-replace-block-text:
-          starting-regex: "'csit-list-nitrogen: >'"
-          ending-regex: "'csit-list-carbon: >'"
-          file-with-changes-to-insert: "'csit_jobs_nitrogen.lst'"
-          file-to-change: "'jjb/releng-defaults.yaml'"
-      - integration-replace-block-text:
-          starting-regex: "'csit-list-carbon: >'"
-          ending-regex: "'csit-list-boron: >'"
-          file-with-changes-to-insert: "'csit_jobs_carbon.lst'"
-          file-to-change: "'jjb/releng-defaults.yaml'"
-      - integration-replace-block-text:
-          starting-regex: "'csit-list-boron: >'"
-          ending-regex: "'# CSIT TESTS END SED MARKER'"
-          file-with-changes-to-insert: "'csit_jobs_boron.lst'"
-          file-to-change: "'jjb/releng-defaults.yaml'"
-      - shell: |
-          git status
-          git add jjb/releng-defaults.yaml
-      - opendaylight-infra-push-gerrit-patch:
-          project: "releng/builder"
-          gerrit-topic: "auto-update-csit-jobs"
-          gerrit-commit-message: "Auto Update CSIT Jobs to run"
-
-    publishers:
-      - email-notification:
-          email-recipients: '{email-recipients}'
-          email-prefix: '[releng]'
-      - lf-infra-publish