Manage ODL Jenkins views with view-templates
[releng/builder.git] / jjb / integration / distribution / distribution-jobs.yaml
index 94e9f13ccda0d93b95ecd7dd0a9eb4ae6fced6c1..451d61f1fc605391cb237e1588b06a62799b3fbd 100644 (file)
 ---
 - project:
-    name: distribution-jobs
+    name: distribution
+    jobs:
+      # gerrit- is generic template, distribution- is project specific.
+      - 'distribution-sanity-{stream}'
+      - gerrit-maven-clm
+      - gerrit-maven-verify-dependencies
+      - gerrit-tox-verify
+      - '{project-name}-rtd-jobs':
+          project-pattern: integration/distribution
+          rtd-build-url: https://readthedocs.org/api/v2/webhook/opendaylight-distribution/34591/
+          rtd-token: 6247e7a21158a20b207470b8bf7719c676ff8944
+
+    project: integration/distribution
+    project-name: distribution
+    mvn-settings: integration-distribution-settings
+    mvn-goals: 'clean install dependency:tree -DoutputFile=dependency_tree.txt'
+    mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
+    email-upstream: '[int/dist]'
+    stream:
+      - neon:
+          branch: 'master'
+          karaf-version: odl
+          # Self-Managed projects repos and features:
+          sm-repos: >
+              mvn:org.opendaylight.sxp/features-sxp//xml/features,
+              mvn:org.opendaylight.tsdr/features-tsdr//xml/features,
+              mvn:org.opendaylight.unimgr/features4-unimgr//xml/features,
+          sm-features: >
+              odl-sxp-routing,
+              odl-tsdr-core,
+              odl-tsdr-openflow-statistics-collector,
+              odl-tsdr-netflow-statistics-collector,
+              odl-tsdr-restconf-collector,
+              odl-tsdr-syslog-collector,
+              odl-tsdr-controller-metrics-collector,
+              odl-tsdr-cassandra,
+              odl-tsdr-hbase,
+              odl-tsdr-hsqldb,
+              odl-tsdr-elasticsearch,
+              odl-unimgr,
+              odl-unimgr-template-driver,
+              odl-unimgr-cisco-xr-driver,
+              odl-unimgr-ovs-driver,
+      - fluorine:
+          branch: 'stable/fluorine'
+          karaf-version: odl
+          # Self-Managed projects repos and features:
+          sm-repos: >
+              mvn:org.opendaylight.snmp4sdn/features-snmp4sdn//xml/features,
+              mvn:org.opendaylight.sxp/features-sxp//xml/features,
+              mvn:org.opendaylight.transportpce/features-transportpce//xml/features,
+              mvn:org.opendaylight.tsdr/features-tsdr//xml/features,
+              mvn:org.opendaylight.unimgr/features4-unimgr//xml/features,
+          sm-features: >
+              odl-snmp4sdn-snmp4sdn
+              odl-sxp-routing,
+              odl-transportpce,
+              odl-transportpce-api,
+              odl-transportpce-ordmodels,
+              odl-transportpce-stubmodels,
+              odl-tsdr-core,
+              odl-tsdr-openflow-statistics-collector,
+              odl-tsdr-netflow-statistics-collector,
+              odl-tsdr-restconf-collector,
+              odl-tsdr-syslog-collector,
+              odl-tsdr-controller-metrics-collector,
+              odl-tsdr-cassandra,
+              odl-tsdr-hbase,
+              odl-tsdr-hsqldb,
+              odl-tsdr-elasticsearch,
+              odl-unimgr,
+              odl-unimgr-template-driver,
+              odl-unimgr-cisco-xr-driver,
+              odl-unimgr-ovs-driver,
+      - oxygen:
+          branch: 'stable/oxygen'
+          karaf-version: karaf4
 
-- job-template:
-    name: 'distribution-verify-{stream}'
-
-    project-type: freestyle
-    node: centos7-builder-8c-8g
-    concurrent: true
-    jdk: '{jre}'
-
-    properties:
-      - opendaylight-infra-properties:
-          build-days-to-keep: '{build-days-to-keep}'
-
-    parameters:
-      - opendaylight-infra-parameters:
-          os-cloud: '{os-cloud}'
-          project: '{project}'
-          branch: '{branch}'
-          refspec: 'refs/heads/{branch}'
-          artifacts: '{archive-artifacts}'
-      - integration-patch-refspec:
-          branch: '$GERRIT_REFSPEC'
-
-    scm:
-      - gerrit-trigger-scm:
-          refspec: '$PATCHREFSPEC'
-          choosing-strategy: 'gerrit'
-
-    wrappers:
-      - opendaylight-infra-wrappers:
-          build-timeout: '{build-timeout}'
-
-    triggers:
-      - gerrit-trigger-patch-submitted:
-          gerrit-server-name: '{gerrit-server-name}'
-          project: '{project}'
-          branch: '{branch}'
-          files: '**'
-
-    builders:
-      - wipe-org-opendaylight-repo
-      - provide-maven-settings:
-          global-settings-file: 'global-settings'
-          settings-file: 'integration-settings'
-      - maven-target:
-          maven-version: mvn33
-          pom: pom.xml
-          goals: |
-              clean install dependency:tree -DoutputFile=dependency_tree.txt
-              -Dstream={stream}
-              -Dsft.heap.max=4g
-              {opendaylight-infra-mvn-opts}
-          # {opendaylight-infra-parallel-mvn-opts} is bad when there are multiple big features in SFT.
-          java-opts:
-            - '-Xmx1024m -XX:MaxPermSize=256m'
-          settings: integration-settings
-          settings-type: cfp
-          global-settings: global-settings
-          global-settings-type: cfp
-
-    publishers:
-      - findbugs
-      - lf-jacoco-report
-      - lf-infra-publish
-      - email-notification:
-          email-recipients: '{email-recipients}'
-          email-prefix: '[int/dist]'
-
-- job-template:
-    name: 'distribution-merge-{stream}'
-
-    # Need to keep jobs that deploy to Nexus at end of build as Maven
-    # projects. Maybe reconsider this once upstream moves deploy to a
-    # separate lifecycle:
-    #     https://issues.apache.org/jira/browse/MNG-5666
-
-    project-type: maven
-    node: 'centos7-builder-8c-8g'
-    jdk: '{jre}'
-
-    properties:
-      - opendaylight-infra-properties:
-          build-days-to-keep: '{build-days-to-keep}'
-
-    parameters:
-      - opendaylight-infra-parameters:
-          os-cloud: '{os-cloud}'
-          project: '{project}'
-          branch: '{branch}'
-          refspec: 'refs/heads/{branch}'
-          artifacts: '{archive-artifacts}'
-      - distribution-karaf-version:
-          karaf-version: '{karaf-version}'
-
-    scm:
-      - gerrit-trigger-scm:
-          refspec: ''
-          choosing-strategy: 'default'
-
-    wrappers:
-      - opendaylight-infra-wrappers:
-          build-timeout: '{build-timeout}'
-
-    triggers:
-      - gerrit-trigger-patch-merged:
-          gerrit-server-name: '{gerrit-server-name}'
-          name: 'integration/distribution'
-          branch: '{branch}'
-
-    prebuilders:
-      - wipe-org-opendaylight-repo
-      - jacoco-nojava-workaround
-      - provide-maven-settings:
-          global-settings-file: 'global-settings'
-          settings-file: 'integration-settings'
-      - integration-set-variables
-      - distribute-build-url:
-          path: '$KARAF_ARTIFACT/src/main/assembly'
-
-    maven:
-      maven-name: 'mvn33'
-      root-pom: 'pom.xml'
-      goals: >
-          clean install dependency:tree -DoutputFile=dependency_tree.txt -V -B
-          -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r
-          -Dsft.heap.max=4g
-          -Djenkins -Dmerge -Dstream={stream}
-      maven-opts: '-Xmx1024m -XX:MaxPermSize=256m'
-      settings: 'integration-settings'
-      settings-type: cfp
-      global-settings: 'global-settings'
-      global-settings-type: cfp
-
-    postbuilders:
-      - conditional-step:
-          condition-kind: file-exists
-          condition-filename: deploy-site.xml
-          condition-basedir: workspace
-
-          # The strategy here is intentional to run Maven site:deploy twice
-          # once using regular pom.xml to produce a staged-site which is
-          # then used by deploy-site.xml to push to Nexus. This is a
-          # workaround to Maven Site's default linking code which creates
-          # incorrect URLs for sites due to auto-detection assuming your
-          # project is configured in a certain way which ODL is not.
-          steps:
-            - maven-target:
-                maven-version: 'mvn33'
-                pom: pom.xml
-                goals: 'site:deploy -V -B -Dstream={stream}'
-                java-opts:
-                  - '-Xmx2g'
-                settings: 'integration-settings'
-                settings-type: cfp
-                global-settings: 'global-settings'
-                global-settings-type: cfp
-            - maven-target:
-                maven-version: 'mvn33'
-                pom: deploy-site.xml
-                goals: 'site:deploy -V -B -Dstream={stream}'
-                java-opts:
-                  - '-Xmx2g'
-                settings: 'integration-settings'
-                settings-type: cfp
-                global-settings: 'global-settings'
-                global-settings-type: cfp
-      - integration-compare-distributions
-    # TODO: the output of the above command is not *friendly* for the reader because the most important info
-    # is listed last. This is fine/best for command line output, but for keeping in a file it would be better
-    # to put the summary at the beginning of the file. Some bash magic can be done here to make that happen.
-
-    reporters:
-      - findbugs
-
-    publishers:
-      - maven-deploy:
-          id: ''
-          unique-version: true
-          deploy-unstable: false
-      - lf-jacoco-report
-      - lf-infra-publish
-      - email-notification:
-          email-recipients: '{email-recipients}'
-          email-prefix: '[int/dist]'
-
-- job-template:
-    name: 'distribution-check-{stream}'
-
-    ######################
-    # Default parameters #
-    ######################
-
-    mvn-version: mvn33
-
-    #####################
-    # Job Configuration #
-    #####################
-
-    # Like a {project}-distribution-check, but few steps less as there is no upstream project involved.
-    disabled: false
-
-    project-type: freestyle
-    node: 'centos7-builder-8c-8g'
-    concurrent: true
-    jdk: '{java-version}'
-
-    properties:
-      - opendaylight-infra-properties:
-          build-days-to-keep: '{build-days-to-keep}'
-
-    parameters:
-      - opendaylight-infra-parameters:
-          os-cloud: '{os-cloud}'
-          project: '{project}'
-          branch: '{branch}'
-          refspec: 'refs/heads/{branch}'
-          artifacts: '{archive-artifacts}'
-      - integration-distribution-stream:
-          stream: '{stream}'
-      - distribution-karaf-version:
-          karaf-version: '{karaf-version}'
-      - maven-exec:
-          maven-version: mvn33
-
-    scm:
-      - integration-gerrit-scm:
-          basedir: 'distribution'
-          refspec: '$GERRIT_REFSPEC'
-          branch: '{branch}'
-
-    wrappers:
-      - opendaylight-infra-wrappers:
-          # Distro-check jobs typically run within 10 - 30 minutes
-          # with 45 minutes being the occassional edge case.
-          # enforce a 60 minute limit to ensure stuck jobs get
-          # cleared up sooner.
-          # Double that as Karaf 3+4 may take longer.
-          build-timeout: '120'
-
-    triggers:
-      - gerrit-trigger-patch-submitted:
-          gerrit-server-name: '{gerrit-server-name}'
-          project: '{project}'
-          branch: '{branch}'
-          files: '**'
-
-    builders:
-      - distribution-check-wipe
-      - distribution-check-build-project:
-          pom: 'distribution/pom.xml'
-          mvn-opts: '{opendaylight-infra-mvn-opts}'
-          mvn-version: '{mvn-version}'
-          # '{opendaylight-infra-parallel-mvn-opts}' is bad when there are multiple big features in SFT.
-      - distribution-check-verify-groupid:
-          gerrit-project: 'integration'
-      - distribution-check-delete-snapshots
-      - distribution-check-configure-remotes
-      - distribution-check-repeat-project-build:
-          pom: 'distribution/pom.xml'
-          mvn-opts: '{opendaylight-infra-mvn-opts}'
-          mvn-version: '{mvn-version}'
-          # '{opendaylight-infra-parallel-mvn-opts}' is bad when there are multiple big features in SFT.
-      - integration-set-variables
-      - distribution-check-warn-9191
-      - distribution-check-warn-9192
-      - integration-upload-distribution:
-          dist-pom: distribution/pom.xml
-      - distribution-check-bootup
-
-    publishers:
-      - email-notification:
-          email-recipients: '{email-recipients}'
-          email-prefix: '[{project-name}]'
-      - integration-csit-archive-build
-      - lf-infra-publish
-
-- job-template:
-    name: 'distribution-deploy-{stream}'
-    # Goal: Verify distribution starts with no issues when all features are loaded.
-    # Operation: This job deploys the controller installing odl-integration-all.
-    # FIXME: List required variables.
-
-    project-type: freestyle
-    node: centos7-builder-4c-4g
-    concurrent: false
-
-    properties:
-      - opendaylight-infra-properties:
-          build-days-to-keep: '{build-days-to-keep}'
-
-    parameters:
-      - opendaylight-infra-parameters:
-          os-cloud: '{os-cloud}'
-          project: '{project}'
-          branch: '{branch}'
-          refspec: 'refs/heads/{branch}'
-          artifacts: '{archive-artifacts}'
-      - integration-distribution-stream:
-          stream: '{stream}'
-      - integration-distribution-branch:
-          branch: '{branch}'
-      - integration-bundle-url:
-          bundle-url: '{bundle-url}'
-      - integration-jdk-version:
-          jdkversion: '{jre}'
-      - distribution-karaf-version:
-          karaf-version: '{karaf-version}'
-
-    wrappers:
-      - opendaylight-infra-wrappers:
-          build-timeout: '{build-timeout}'
-
-    # TODO: Trigger from sanity (instead of weekly) when this job is stable for {stream}.
-
-    builders:
-      - distribution-deploy-verify
+- project:
+    name: distribution-managed
+    jobs:
+      # gerrit- is generic template, distribution- is project specific.
+      - 'distribution-merge-{type}-{stream}'
+      - 'distribution-verify-{type}-{stream}'
+      - 'distribution-check-{type}-{stream}'
+      - 'distribution-csit-managed-{stream}'
+
+    project: integration/distribution
+    project-name: distribution
+    mvn-settings: integration-distribution-settings
+    mvn-goals: 'clean install dependency:tree -DoutputFile=dependency_tree.txt'
+    mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
+    email-upstream: '[int/dist]'
+    type: managed
+    profile: '-Pmanaged'
+    forbidden-files: 'opendaylight/**'
+    karaf-version: karaf4
+    dist-pom: 'distribution/pom.xml'
+
+    stream:
+      - neon:
+          branch: 'master'
+          dependencies: >
+              aaa-merge-{stream},
+              bgpcep-merge-{stream},
+              coe-merge-{stream},
+              controller-merge-{stream},
+              daexim-merge-{stream},
+              genius-merge-{stream},
+              infrautils-merge-{stream},
+              lispflowmapping-merge-{stream},
+              mdsal-merge-{stream},
+              netconf-merge-{stream},
+              netvirt-merge-{stream}
+              neutron-merge-{stream},
+              openflowplugin-merge-{stream},
+              ovsdb-merge-{stream},
+              serviceutils-merge-{stream},
+              sfc-merge-{stream}
+      - fluorine:
+          branch: 'stable/fluorine'
+          dependencies: >
+              aaa-merge-{stream},
+              bgpcep-merge-{stream},
+              coe-merge-{stream},
+              controller-merge-{stream},
+              daexim-merge-{stream},
+              genius-merge-{stream},
+              infrautils-merge-{stream},
+              lispflowmapping-merge-{stream},
+              mdsal-merge-{stream},
+              netconf-merge-{stream},
+              netvirt-merge-{stream}
+              neutron-merge-{stream},
+              openflowplugin-merge-{stream},
+              ovsdb-merge-{stream},
+              serviceutils-merge-{stream},
+              sfc-merge-{stream}
+
+      - oxygen:
+          branch: 'stable/oxygen'
+          dependencies: >
+              aaa-merge-{stream},
+              alto-merge-{stream},
+              bgpcep-merge-{stream},
+              bier-merge-{stream},
+              coe-merge-{stream},
+              controller-merge-{stream},
+              daexim-merge-{stream},
+              dluxapps-merge-{stream},
+              dlux-merge-{stream},
+              faas-merge-{stream},
+              genius-merge-{stream},
+              groupbasedpolicy-merge-{stream},
+              infrautils-merge-{stream},
+              jsonrpc-merge-{stream},
+              l2switch-merge-{stream},
+              lispflowmapping-merge-{stream},
+              mdsal-merge-{stream},
+              nemo-merge-{stream},
+              netconf-merge-{stream},
+              netvirt-merge-{stream},
+              neutron-merge-{stream},
+              of-config-merge-{stream},
+              openflowplugin-merge-{stream},
+              ovsdb-merge-{stream},
+              p4plugin-merge-{stream},
+              packetcable-merge-{stream},
+              serviceutils-merge-{stream},
+              sfc-merge-{stream},
+              snmp4sdn-merge-{stream},
+              snmp-merge-{stream},
+              sxp-merge-{stream},
+              tsdr-merge-{stream},
+              usc-merge-{stream},
+              vbd-merge-{stream}
 
-    publishers:
-      - email-notification:
-          email-recipients: '{email-recipients}'
-          email-prefix: '[int/dist]'
-      - integration-csit-archive-build
-      - lf-infra-publish
+- project:
+    name: distribution-full
+    jobs:
+      # gerrit- is generic template, distribution- is project specific.
+      - 'distribution-merge-{type}-{stream}'
+      - 'distribution-verify-{type}-{stream}'
+      - 'distribution-check-{type}-{stream}'
+
+    project: integration/distribution
+    project-name: distribution
+    mvn-settings: integration-distribution-settings
+    mvn-goals: 'clean install dependency:tree -DoutputFile=dependency_tree.txt'
+    mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
+    email-upstream: '[int/dist]'
+    type: full
+    profile: '-Punmanaged'
+    files: 'opendaylight/**'
+    karaf-version: odl
+    dist-pom: 'distribution/opendaylight/pom.xml'
+
+    stream:
+      - neon:
+          branch: 'master'
+          karaf-version: odl
+          dependencies: >
+              distribution-merge-managed-{stream},
+              sxp-merge-{stream},
+              tsdr-merge-{stream},
+              unimgr-merge-{stream},
+      - fluorine:
+          branch: 'stable/fluorine'
+          karaf-version: odl
+          dependencies: >
+              distribution-merge-managed-{stream},
+              snmp4sdn-merge-{stream},
+              sxp-merge-{stream},
+              transportpce-merge-{stream},
+              tsdr-merge-{stream},
+              unimgr-merge-{stream},
 
-- job-template:
-    name: 'distribution-offline-{stream}'
-    # Goal: Verify distribution can start with no internet connection.
-    # Operation: This job deploys the controller removing any external repository definition.
-    # FIXME: List required variables.
+- project:
+    name: distribution-release
+    jobs:
+      - gerrit-maven-stage
 
-    project-type: freestyle
-    node: centos7-builder-4c-4g
-    concurrent: false
+    project: 'integration/distribution'
+    project-name: 'distribution'
+    mvn-goals: 'clean deploy -f opendaylight/pom.xml'
+    mvn-settings: 'integration-distribution-settings'
+    mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
+    email-upstream: '[int/dist]'
 
-    properties:
-      - opendaylight-infra-properties:
-          build-days-to-keep: '{build-days-to-keep}'
+    # Used by the release job
+    staging-profile-id: 2af042ed81d5e2
 
-    parameters:
-      - opendaylight-infra-parameters:
-          os-cloud: '{os-cloud}'
-          project: '{project}'
-          branch: '{branch}'
-          refspec: 'refs/heads/{branch}'
-          artifacts: '{archive-artifacts}'
-      - integration-distribution-branch:
-          branch: '{branch}'
-      - integration-bundle-url:
-          bundle-url: '{bundle-url}'
-      - integration-jdk-version:
-          jdkversion: '{jre}'
-      - distribution-karaf-version:
-          karaf-version: '{karaf-version}'
+    stream:
+      - neon:
+          branch: 'master'
 
-    wrappers:
-      - opendaylight-infra-wrappers:
-          build-timeout: '{build-timeout}'
+      - fluorine:
+          branch: 'stable/fluorine'
 
-    # TODO: Trigger from sanity (instead of weekly) when this job is stable for {stream}.
+- project:
+    name: distribution-sonar
+    jobs:
+      - gerrit-maven-sonar
 
-    builders:
-      - distribution-deploy-offline
+    project: integration/distribution
+    project-name: distribution
+    branch: master
+    mvn-settings: integration-distribution-settings
+    mvn-goals: clean install dependency:tree -DoutputFile=dependency_tree.txt
+    mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
 
-    publishers:
-      - email-notification:
-          email-recipients: '{email-recipients}'
-          email-prefix: '[int/dist]'
-      - integration-csit-archive-build
-      - lf-infra-publish
+- project:
+    name: distribution-view
+    views:
+      - common-view
+    view-name: distribution
+    view-regex: '^(integration-)?distribution-.*'