X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=jjb%2Fintegration%2Fdistribution%2Fdistribution-templates.yaml;h=e2a1db37e99ffe3a37d09b4ba4297b74edf9e2a8;hb=2f92417dd159879ae1f9c52ee70054f4d2e38bc2;hp=45fda0b3218e3e9445a5490e8cea136b51214b83;hpb=dfae8c60b900c4b518bbf6de43cd8e5274715195;p=releng%2Fbuilder.git diff --git a/jjb/integration/distribution/distribution-templates.yaml b/jjb/integration/distribution/distribution-templates.yaml index 45fda0b32..e2a1db37e 100644 --- a/jjb/integration/distribution/distribution-templates.yaml +++ b/jjb/integration/distribution/distribution-templates.yaml @@ -1,16 +1,20 @@ --- -- project: - name: distribution-templates - - job-template: - name: '{project-name}-distribution-check-{stream}' + name: "{project-name}-distribution-check-{stream}" ###################### # Default parameters # ###################### - java-version: openjdk8 - mvn-version: mvn35 + mvn-version: mvn38 + csit-gate-list: "" + block_on_csit: false + # Unless block_on_csit is true, the failure-threshold will be ignored. For project jobs that + # want to fail distribution check on csit jobs, they will only need a list of jobs to run + # plus the change of block_on_csit to true, and this failure-threshold: 'UNSTABLE' will take + # effect + failure-threshold: "UNSTABLE" + disable-job: false ##################### # Job Configuration # @@ -19,40 +23,39 @@ # Operation: This job template builds a patch, creates a distribution containing # the patch (making sure dependencies are specified), # and performs the distribution deploy test. - disabled: false + disabled: "{disable-job}" project-type: freestyle - node: 'centos7-builder-8c-8g' + node: "centos7-builder-8c-8g" concurrent: true - jdk: '{java-version}' properties: - opendaylight-infra-properties: - build-days-to-keep: '{build-days-to-keep}' + 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}' + os-cloud: "{os-cloud}" + project: "{project}" + branch: "{branch}" + refspec: "refs/heads/{branch}" + artifacts: "{archive-artifacts}" - integration-distribution-stream: - stream: '{stream}' + stream: "{stream}" - integration-distribution-git-url: - git-url: '{git-url}' + git-url: "{git-url}" - distribution-karaf-version: - karaf-version: '{karaf-version}' + karaf-version: "{karaf-version}" - maven-exec: - maven-version: '{mvn-version}' + maven-version: "{mvn-version}" scm: - integration-gerrit-scm: - basedir: '$GERRIT_PROJECT' - refspec: '$GERRIT_REFSPEC' - branch: '{branch}' + basedir: "$GERRIT_PROJECT" + refspec: "$GERRIT_REFSPEC" + branch: "{branch}" - integration-distribution-scm: - branch: '{distribution_branch}' + branch: "{distribution_branch}" wrappers: - opendaylight-infra-wrappers: @@ -61,53 +64,438 @@ # 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' + build-timeout: "120" triggers: - gerrit-trigger-patch-submitted: - gerrit-server-name: '{gerrit-server-name}' - project: '{project}' - branch: '{branch}' - files: '**' + gerrit-server-name: "{gerrit-server-name}" + project: "{project}" + branch: "{branch}" + files: "**" + forbidden-files: "" builders: - distribution-check-wipe + - lf-update-java-alternatives: + java-version: "{java-version}" - inject: - properties-file: 'allowed_projects.txt' + properties-file: "allowed_projects.txt" - distribution-check-build-project: - pom: '$GERRIT_PROJECT/pom.xml' - mvn-opts: '{opendaylight-infra-mvn-opts}' - mvn-version: '{mvn-version}' + pom: "$GERRIT_PROJECT/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: '$GERRIT_PROJECT' + gerrit-project: "$GERRIT_PROJECT" - distribution-check-download-deps: - dist-pom: 'distribution/pom.xml' - mvn-opts: '{opendaylight-infra-mvn-opts}' - mvn-version: '{mvn-version}' + dist-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-delete-snapshots - distribution-check-configure-remotes - distribution-check-repeat-project-build: - pom: '$GERRIT_PROJECT/pom.xml' - mvn-opts: '{opendaylight-infra-mvn-opts}' - mvn-version: '{mvn-version}' + pom: "$GERRIT_PROJECT/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-repeat-distro-build: - dist-pom: 'distribution/pom.xml' - mvn-opts: '{opendaylight-infra-mvn-opts}' - mvn-version: '{mvn-version}' + dist-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 + settings-project: integration + - distribution-check-bootup + + - trigger-builds: + - project: "{csit-gate-list}" + block: "{obj:block_on_csit}" + block-thresholds: + failure-threshold: "{failure-threshold}" + predefined-parameters: | + BUNDLE_URL=$BUNDLE_URL + KARAF_VERSION=$KARAF_VERSION + + publishers: + - email-notification: + email-recipients: "{email-recipients}" + email-prefix: "[{project-name}]" + - integration-csit-archive-build + - lf-infra-publish + +- job-template: + name: "distribution-verify-{type}-{stream}" + + disable-job: "false" + + project-type: freestyle + node: centos7-builder-8c-8g + concurrent: true + disabled: "{disable-job}" + + 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}" + + scm: + - gerrit-trigger-scm: + refspec: "$GERRIT_REFSPEC" + 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: "{files}" + forbidden-files: "{forbidden-files}" + + builders: + - wipe-org-opendaylight-repo + - lf-provide-maven-settings: + global-settings-file: "global-settings" + settings-file: "integration-settings" + - lf-update-java-alternatives: + java-version: "{java-version}" + - maven-target: + maven-version: "{mvn-version}" + pom: pom.xml + goals: | + clean install dependency:tree -DoutputFile=dependency_tree.txt + -Dstream={stream} + -Dsft.heap.max=4g + {opendaylight-infra-mvn-opts} + {profile} + # {opendaylight-infra-parallel-mvn-opts} is bad when there are multiple big features in SFT. + java-opts: + - "-Xmx1024m" + 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: "[{project-name}]" + +- job-template: + name: "distribution-merge-{type}-{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 + + disable-job: false + + project-type: maven + node: "centos7-builder-8c-8g" + disabled: "{disable-job}" + + 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: "{project}" + branch: "{branch}" + files: "{files}" + forbidden-files: "{forbidden-files}" + - reverse: + jobs: "{dependencies}" + + prebuilders: + - wipe-org-opendaylight-repo + - lf-jacoco-nojava-workaround + - lf-provide-maven-settings: + global-settings-file: "global-settings" + settings-file: "integration-settings" + - lf-update-java-alternatives: + java-version: "{java-version}" + - integration-set-variables + - distribute-build-url: + path: "$KARAF_ARTIFACT/src/main/assembly" + + maven: + maven-name: "mvn38" + 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} + {profile} + maven-opts: "-Xmx1024m" + settings: integration-settings + settings-type: cfp + global-settings: global-settings + global-settings-type: cfp + + postbuilders: + - 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: "[{project-name}]" + +- job-template: + name: "distribution-check-{type}-{stream}" + + ###################### + # Default parameters # + ###################### + disable-job: false + mvn-version: mvn38 + + ##################### + # Job Configuration # + ##################### + + # Like a {project}-distribution-check, but few steps less as there is no upstream project involved. + disabled: "{disable-job}" + + project-type: freestyle + node: "centos7-builder-8c-8g" + concurrent: true + + 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: "{mvn-version}" + + 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: "{files}" + forbidden-files: "{forbidden-files}" + + builders: + - distribution-check-wipe + - lf-update-java-alternatives: + java-version: "{java-version}" + - inject: + properties-file: "allowed_projects.txt" + - distribution-check-build-project: + pom: "distribution/pom.xml" + mvn-opts: | + {opendaylight-infra-mvn-opts} + {profile} + 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} + {profile} + 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: "{dist-pom}" + settings-project: integration + - 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-sanity-{stream}" + # Goal: Verify distribution starts with no issues when all features are loaded. + # Operation: This job deploys odl-integration-all + list of UM features. + # This job works for both managed & self-managed distro. + + project-type: freestyle + node: centos7-builder-2c-8g + 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-repo-url: + repo-url: "{sm-repos}" + - integration-controller-parameters: + controller-features: "{sm-features}" + # Parameters below are unused in this job so set them all to blank + controller-max-mem: "" + controller-debug-map: "" + controller-scope: "" + controller-use-features-boot: "" + feature-elasticsearch-attribute: "{elasticsearch-attribute}" + - integration-jdk-version: + jdkversion: "{jre}" + - distribution-karaf-version: + karaf-version: "{karaf-version}" + + wrappers: + - opendaylight-infra-wrappers: + build-timeout: "{build-timeout}" + + builders: + - integration-detect-variables + - 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-csit-managed-{stream}" + # Goal: Verify distribution starts with no issues when all features are loaded. + # Operation: This job deploys odl-integration-all. + # This job works for just managed distro. + + disable-job: false + + project-type: freestyle + node: centos8-builder-4c-4g + concurrent: false + disabled: "{disable-job}" + + 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: "karaf4" + + wrappers: + - opendaylight-infra-wrappers: + build-timeout: "{build-timeout}" + + builders: + - integration-detect-variables - distribution-check-bootup publishers: - email-notification: - email-recipients: '{email-recipients}' - email-prefix: '[{project-name}]' + email-recipients: "{email-recipients}" + email-prefix: "[{project-name}]" - integration-csit-archive-build - lf-infra-publish