X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=jjb%2Freleng-templates-java.yaml;h=dfeb7cd3942acf93126dddcc68aa68e87f14eec5;hb=c5d6891f1a9587a4bbeae8f0b34c02f2a9b64757;hp=f8cd06995485f1857699563fd4616df681842bb5;hpb=8523f6727b311bbff471179e86dbc242562e4d09;p=releng%2Fbuilder.git diff --git a/jjb/releng-templates-java.yaml b/jjb/releng-templates-java.yaml index f8cd06995..dfeb7cd39 100644 --- a/jjb/releng-templates-java.yaml +++ b/jjb/releng-templates-java.yaml @@ -17,8 +17,11 @@ numToKeep: '{build-num-to-keep}' parameters: - - project-parameter: + - opendaylight-infra-parameters: project: '{project}' + branch: '{branch}' + refspec: 'refs/heads/{branch}' + artifacts: '{archive-artifacts}' scm: - git-scm: @@ -57,3 +60,657 @@ email-prefix: '[{name}]' - archive-build: maven-version: '{mvn33}' + +- job-template: + name: '{name}-distribution-{stream}' + + # Required variables: + # stream: release stream (eg. stable-lithium or beryllium) + # branch: git branch (eg. stable/lithium or master) + + project-type: maven + node: dynamic_merge + jdk: '{jdk}' + + logrotate: + daysToKeep: '{build-days-to-keep}' + numToKeep: '{build-num-to-keep}' + artifactDaysToKeep: '{build-artifact-days-to-keep}' + artifactNumToKeep: '{build-artifact-num-to-keep}' + + parameters: + - opendaylight-infra-parameters: + project: '{project}' + branch: '{branch}' + refspec: 'refs/heads/{branch}' + artifacts: '{archive-artifacts}' + + scm: + - git-scm: + refspec: '' + branch: '{branch}' + + wrappers: + - opendaylight-infra-wrappers: + build-timeout: '{build-timeout}' + + triggers: + - reverse: + jobs: '{project}-merge-{stream}' + result: 'success' + + prebuilders: + - provide-maven-settings: + global-settings-file: 'odl-global-settings' + settings-file: '{mvn-settings}' + + maven: + maven-name: '{mvn33}' + root-pom: 'pom.xml' + goals: 'clean install -V -B -Djenkins -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r' + maven-opts: '-Xmx1024m -XX:MaxPermSize=256m -Dmaven.compile.fork=true' + settings: 'integration-distribution-settings' + settings-type: cfp + global-settings: 'odl-global-settings' + global-settings-type: cfp + + publishers: + - email-notification: + email-prefix: '[{project}]' + - maven-deploy: + id: '' + unique-version: true + deploy-unstable: false + - archive-build: + maven-version: '{mvn33}' + +- job-template: + # Template: integration-patch-distribution-{stream} + # Goal: Build a patch and make sure the distribution can deploy with this change + # Operation: This job template builds a patch, creates a distribution containing + # the patch, and triggers the distribution deploy test + + name: '{name}-distribution-check-{stream}' + disabled: '{obj:disable_distribution_check}' + + project-type: maven + node: dynamic_verify + concurrent: true + jdk: '{jdk}' + + logrotate: + daysToKeep: '{build-days-to-keep}' + numToKeep: '{build-num-to-keep}' + artifactDaysToKeep: '{build-artifact-days-to-keep}' + artifactNumToKeep: '{build-artifact-num-to-keep}' + + parameters: + - opendaylight-infra-parameters: + project: '{project}' + branch: '{branch}' + refspec: 'refs/heads/{branch}' + artifacts: '{archive-artifacts}' + - integration-distribution-git-url + + scm: + - integration-gerrit-scm: + basedir: '$GERRIT_PROJECT' + refspec: '$GERRIT_REFSPEC' + branch: '{branch}' + - integration-distribution-scm: + branch: '{branch}' + + wrappers: + - opendaylight-infra-wrappers: + build-timeout: '{build-timeout}' + + triggers: + - gerrit: + server-name: 'OpenDaylight' + trigger-on: + - patchset-created-event: + exclude-drafts: 'true' + exclude-trivial-rebase: 'false' + exclude-no-code-change: 'true' + - draft-published-event + - comment-added-contains-event: + comment-contains-value: 'test-distribution' + - comment-added-contains-event: + comment-contains-value: 'reverify' + - comment-added-contains-event: + comment-contains-value: 'recheck' + projects: + - project-compare-type: 'ANT' + project-pattern: '{name}' + branches: + - branch-compare-type: 'ANT' + branch-pattern: '**/{branch}' + skip-vote: + successful: false + failed: false + unstable: false + notbuilt: false + + prebuilders: + - maven-target: + maven-version: '{mvn33}' + pom: '$GERRIT_PROJECT/pom.xml' + goals: 'clean install -V -B -Djenkins -DskipTests -Dcheckstyle.skip=true -Dmaven.javadoc.skip=true -Dmaven.site.skip=true -DgenerateReports=false -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r -Dstream={stream}' + java-opts: + - '-Xmx4096m -XX:MaxPermSize=1024m -Dmaven.compile.fork=true' + settings: '{mvn-settings}' + settings-type: cfp + global-settings: 'odl-global-settings' + global-settings-type: cfp + + maven: + maven-name: '{mvn33}' + root-pom: 'distribution/pom.xml' + goals: 'clean install -V -B -Djenkins -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r' + maven-opts: '-Xmx1024m -XX:MaxPermSize=256m -Dmaven.compile.fork=true' + settings: '{mvn-settings}' + settings-type: cfp + global-settings: 'odl-global-settings' + global-settings-type: cfp + ignore-upstream-changes: true + post-step-run-condition: 'SUCCESS' + + postbuilders: + - integration-distribution-check + + publishers: + - email-notification: + email-prefix: '[{name}]' + - postbuildscript: + builders: + - shell: | + #!/bin/bash + mkdir -p $WORKSPACE/archives + cp karaf*.log $WORKSPACE/archives + script-only-if-succeeded: False + script-only-if-failed: False + mark-unstable-if-failed: True + - archive-build: + maven-version: '{mvn33}' + +- job-template: + name: '{name}-integration-{stream}' + + # Job template for ODL integration verify jobs + # + # This is similar to a normal verify job, but it runs + # when a project that's a dependency of your project + # is successfully built. + # + # Required Variables: + # stream: release stream (eg. stable-lithium or beryllium) + # branch: git branch (eg. stable/lithium or master) + + project-type: maven + node: dynamic_merge + jdk: '{jdk}' + + logrotate: + daysToKeep: '{build-days-to-keep}' + numToKeep: '{build-num-to-keep}' + artifactDaysToKeep: '{build-artifact-days-to-keep}' + artifactNumToKeep: '{build-artifact-num-to-keep}' + + parameters: + - opendaylight-infra-parameters: + project: '{project}' + branch: '{branch}' + refspec: 'refs/heads/{branch}' + artifacts: '{archive-artifacts}' + + scm: + - git-scm: + refspec: '' + branch: '{branch}' + + wrappers: + - opendaylight-infra-wrappers: + build-timeout: '{build-timeout}' + + triggers: + - reverse: + jobs: '{dependencies}' + result: 'success' + + prebuilders: + - jacoco-nojava-workaround + - provide-maven-settings: + global-settings-file: 'odl-global-settings' + settings-file: '{mvn-settings}' + + maven: + maven-name: '{mvn33}' + goals: '{mvn-goals} -V -B -Djenkins' + maven-opts: '{mvn-opts}' + settings: '{mvn-settings}' + settings-type: cfp + global-settings: 'odl-global-settings' + global-settings-type: cfp + + reporters: + - findbugs + + publishers: + - email-notification: + email-prefix: '{email-upstream}' + - jacoco-report + - archive-build: + maven-version: '{mvn33}' + +- job-template: + name: '{name}-merge-{stream}' + + # Job template for ODL merge jobs + # + # The purpose of this job template is to setup a ODL merge job + # and deploy artifacts to Nexus. + # + # Required Variables: + # stream: release stream (eg. stable-lithium or beryllium) + # branch: git branch (eg. stable/lithium or master) + + project-type: maven + node: dynamic_merge + jdk: '{jdk}' + + logrotate: + daysToKeep: '14' + numToKeep: '10' + artifactDaysToKeep: '{build-artifact-days-to-keep}' + artifactNumToKeep: '{build-artifact-num-to-keep}' + + parameters: + - opendaylight-infra-parameters: + 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: + - timed: 'H H * * 0' + - gerrit-trigger-patch-merged: + name: '{project}' + branch: '{branch}' + + prebuilders: + - jacoco-nojava-workaround + - provide-maven-settings: + global-settings-file: 'odl-global-settings' + settings-file: '{mvn-settings}' + + maven: + maven-name: '{mvn33}' + goals: '{mvn-goals} -V -B -Djenkins -Dmerge -Dstream={stream}' + maven-opts: '{mvn-opts}' + settings: '{mvn-settings}' + settings-type: cfp + global-settings: 'odl-global-settings' + global-settings-type: cfp + post-step-run-condition: UNSTABLE + + 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: '{mvn-settings}' + settings-type: cfp + global-settings: 'odl-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: '{mvn-settings}' + settings-type: cfp + global-settings: 'odl-global-settings' + global-settings-type: cfp + + reporters: + - findbugs + + publishers: + - email-notification: + email-prefix: '[{name}]' + - maven-deploy: + id: '' + unique-version: true + deploy-unstable: false + - jacoco-report + - archive-build: + maven-version: '{mvn33}' + +- job-template: + name: '{name}-periodic-{stream}' + + # Job template for periodic builders + # + # The purpose of this job template is to setup a periodic + # builder. + # + # Required Variables: + # stream: release stream (eg. stable-lithium or beryllium) + # branch: git branch (eg. stable/lithium or master) + + project-type: maven + node: dynamic_verify + jdk: '{jdk}' + + logrotate: + daysToKeep: '14' + + parameters: + - opendaylight-infra-parameters: + project: '{project}' + branch: '{branch}' + refspec: 'refs/heads/{branch}' + artifacts: '{archive-artifacts}' + + scm: + - git-scm: + refspec: '' + branch: '{branch}' + + wrappers: + - opendaylight-infra-wrappers: + build-timeout: '{build-timeout}' + + triggers: + - timed: '@daily' + + prebuilders: + - jacoco-nojava-workaround + - provide-maven-settings: + global-settings-file: 'odl-global-settings' + settings-file: '{mvn-settings}' + + maven: + maven-name: '{mvn33}' + goals: '{mvn-goals} -V -B -Djenkins' + maven-opts: '{mvn-opts}' + settings: '{mvn-settings}' + settings-type: cfp + global-settings: 'odl-global-settings' + global-settings-type: cfp + + reporters: + - findbugs + + publishers: + - email-notification: + email-prefix: '[{name}]' + - jacoco-report + - archive-build: + maven-version: '{mvn33}' + +- job-template: + name: '{name}-sonar' + disabled: false + + project-type: maven + node: dynamic_verify + jdk: 'openjdk8' + + logrotate: + daysToKeep: '7' + numToKeep: '10' + artifactDaysToKeep: '1' + artifactNumToKeep: '1' + + parameters: + - opendaylight-infra-parameters: + project: '{project}' + branch: '{branch}' + refspec: 'refs/heads/{branch}' + artifacts: '{archive-artifacts}' + + scm: + - git-scm: + refspec: '' + branch: 'master' + + wrappers: + - opendaylight-infra-wrappers: + build-timeout: '{build-timeout}' + + triggers: + - timed: 'H H * * 6' + - gerrit-trigger-patch-sonar: + name: '{project}' + + prebuilders: + - jacoco-nojava-workaround + - provide-maven-settings: + global-settings-file: 'odl-global-settings' + settings-file: '{mvn-settings}' + + maven: + maven-name: '{mvn33}' + goals: '{mvn-goals} -V -B -Djenkins -Dsonar' + maven-opts: '{mvn-opts}' + settings: '{mvn-settings}' + settings-type: cfp + global-settings: 'odl-global-settings' + global-settings-type: cfp + + reporters: + - findbugs + + publishers: + - sonar: + language: 'java' + maven-opts: '-Xmx6144m -XX:MaxPermSize=1024m' + - email-notification: + email-prefix: '[{name}]' + - jacoco-report + - archive-build: + maven-version: '{mvn33}' + +- job-template: + name: '{name}-validate-autorelease-{stream}' + disabled: '{obj:disable_autorelease}' + + project-type: maven + node: dynamic_verify + concurrent: true + jdk: '{jdk}' + + logrotate: + daysToKeep: '{build-days-to-keep}' + numToKeep: '{build-num-to-keep}' + artifactDaysToKeep: '{build-artifact-days-to-keep}' + artifactNumToKeep: '{build-artifact-num-to-keep}' + + parameters: + - opendaylight-infra-parameters: + project: '{project}' + branch: '{branch}' + refspec: 'refs/heads/{branch}' + artifacts: '{archive-artifacts}' + - autorelease-release-tag: + release-tag: 'validate' + - autorelease-release-branch: + release-branch: '{branch}' + - string: + name: CLONE_URL + default: 'ssh://jenkins-$SILO@git.opendaylight.org:29418/releng/autorelease' + description: "Autorelease clone URL" + + scm: + - git: + url: '$CLONE_URL' + credentials-id: 'opendaylight-jenkins-ssh' + refspec: '' + branches: + - 'origin/{branch}' + skip-tag: true + submodule: + recursive: true + timeout: 60 + + wrappers: + - opendaylight-infra-wrappers: + build-timeout: '{build-timeout}' + + triggers: + - gerrit: + server-name: 'OpenDaylight' + trigger-on: + - patchset-created-event: + exclude-drafts: 'true' + exclude-trivial-rebase: 'false' + exclude-no-code-change: 'true' + - draft-published-event + - comment-added-contains-event: + comment-contains-value: 'recheck' + - comment-added-contains-event: + comment-contains-value: 'reverify' + - comment-added-contains-event: + comment-contains-value: 'revalidate' + projects: + - project-compare-type: 'ANT' + project-pattern: '{project}' + branches: + - branch-compare-type: 'ANT' + branch-pattern: '**/{branch}' + file-paths: + - compare-type: ANT + pattern: '**/*.xml' + + prebuilders: + - jacoco-nojava-workaround + - autorelease-checkout-gerrit-patch + - autorelease-generate-release-patches + - maven-target: + maven-version: '{mvn33}' + pom: validate-pom.xml + goals: 'clean install -V -B -T1.5C -Djenkins -DskipTests -Dcheckstyle.skip=true -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r' + java-opts: + - '-Xmx8g' + settings: 'autorelease-settings' + settings-type: cfp + global-settings: 'odl-global-settings' + global-settings-type: cfp + + maven: + maven-name: '{mvn33}' + root-pom: 'pom.xml' + goals: 'clean validate -V -B -Djenkins -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r' + maven-opts: '-Xmx8g -XX:MaxPermSize=1024m -Dmaven.compile.fork=true' + settings: 'autorelease-settings' + settings-type: cfp + global-settings: 'odl-global-settings' + global-settings-type: cfp + automatic-archiving: false + post-step-run-condition: UNSTABLE + + postbuilders: + - autorelease-sys-stats + + publishers: + - email-notification: + email-prefix: '[autorelease] [{name}]' + - archive-build: + maven-version: '{mvn33}' + +- job-template: + name: '{name}-verify-{stream}' + + # Job template for ODL verify jobs + # + # The purpose of this job template is to setup a ODL verify job + # + # Required Variables: + # stream: release stream (eg. stable-lithium or beryllium) + # branch: git branch (eg. stable/lithium or master) + + project-type: matrix + node: matrix_master + concurrent: true + + axes: + - axis: + type: slave + name: nodes + values: + - dynamic_verify + - axis: + type: jdk + values: '{obj:jdks}' + + logrotate: + daysToKeep: '14' + + parameters: + - opendaylight-infra-parameters: + 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: + name: '{project}' + branch: '{branch}' + + builders: + - jacoco-nojava-workaround + - provide-maven-settings: + global-settings-file: 'odl-global-settings' + settings-file: '{mvn-settings}' + - maven-target: + maven-version: '{mvn33}' + goals: '{mvn-goals} -V -B -Djenkins -Dstream={stream}' + java-opts: + - '{mvn-opts}' + settings: '{mvn-settings}' + settings-type: cfp + global-settings: 'odl-global-settings' + global-settings-type: cfp + + publishers: + - findbugs + - email-notification: + email-prefix: '[{name}]' + - jacoco-report + - archive-build: + maven-version: '{mvn33}'