X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=jjb%2Fl2switch%2Fl2switch.yaml;h=387a263daf43ac36ab8f4db3389aa060a79a1658;hb=970debd523b28420ba0a7d9b396cf2489fc079ce;hp=b9cd16e80698123a22f84c7c5c26d7dbc99eedc8;hpb=5fbbf0751cb7bbe3387f8131fe0e249e5ae2184c;p=releng%2Fbuilder.git diff --git a/jjb/l2switch/l2switch.yaml b/jjb/l2switch/l2switch.yaml index b9cd16e80..30b8ec56e 100644 --- a/jjb/l2switch/l2switch.yaml +++ b/jjb/l2switch/l2switch.yaml @@ -8,24 +8,53 @@ jobs: - 'l2switch-verify-{stream}' - 'l2switch-merge-{stream}' - - 'l2switch-daily-{stream}' + - 'l2switch-periodic-{stream}' + - 'l2switch-distribution-{stream}' + - 'l2switch-distribution-check-{stream}' - 'l2switch-integration-{stream}' - 'l2switch-sonar' + - 'l2switch-clm-{stream}' + - 'l2switch-validate-autorelease-{stream}' - # stream: branch with - in place of / (eg. stable-helium) - # branch: branch (eg. stable/helium) + # stream: release stream (eg. stable-lithium or beryllium) + # branch: git branch (eg. stable/lithium or master) stream: - - master: + - boron: branch: 'master' + jdk: openjdk8 + jdks: + - openjdk8 + disable_autorelease: False + disable_distribution_check: False + - beryllium: + branch: 'stable/beryllium' + jdk: openjdk7 + jdks: + - openjdk7 + - openjdk8 + disable_autorelease: False + disable_distribution_check: False + - stable-lithium: + branch: 'stable/lithium' + jdk: openjdk7 + jdks: + - openjdk7 + disable_autorelease: True + disable_distribution_check: True - stable-helium: branch: 'stable/helium' + jdk: openjdk7 + jdks: + - openjdk7 + disable_autorelease: True + disable_distribution_check: True project: 'l2switch' - jdk: 'openjdk7' # For the Job templates below replace instances of: -# PROJECT with your project name (eg. controller) +# PROJECT_SHORTNAME with your project name (eg. circuitsw) +# PROJECT_PATH with your project name (eg. ofextensions/circuitsw) # MAVEN_GOALS with your maven goals to build # MAVEN_OPTS with your maven options to build @@ -37,8 +66,8 @@ # The purpose of this job template is to setup a ODL verify job # # Required Variables: - # stream: branch with - in place of / (eg. stable-helium) - # branch: branch (eg. stable/helium) + # stream: release stream (eg. stable-lithium or beryllium) + # branch: git branch (eg. stable/lithium or master) project-type: matrix node: matrix_master @@ -52,9 +81,7 @@ - dynamic_verify - axis: type: jdk - values: - - openjdk7 - + values: '{obj:jdks}' logrotate: daysToKeep: '{build-days-to-keep}' @@ -67,6 +94,8 @@ project: '{project}' - gerrit-parameter: branch: '{branch}' + - gerrit-refspec-parameter: + refspec: 'refs/heads/{branch}' scm: - gerrit-trigger-scm: @@ -77,7 +106,8 @@ wrappers: - build-timeout - ssh-agent-credentials: - user: '{ssh-credentials}' + users: + - '{ssh-credentials}' triggers: - gerrit-trigger-patch-submitted: @@ -86,15 +116,18 @@ builders: - wipe-org-opendaylight-repo + - jacoco-nojava-workaround + - provide-maven-settings: + global-settings-file: '{odl-global-settings}' + settings-file: '{l2switch-settings}' - maven-target: - maven-version: '{mvn32}' + maven-version: '{mvn33}' pom: 'pom.xml' - goals: '-Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r clean install' + goals: '-Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r clean install -Djenkins -Dstream={stream}' java-opts: - '-Xmx1024m -XX:MaxPermSize=256m -Dmaven.compile.fork=true' settings: '{l2switch-settings}' global-settings: '{odl-global-settings}' - - jacoco-nojava-workaround publishers: - findbugs @@ -111,22 +144,26 @@ # and deploy artifacts to Nexus. # # Required Variables: - # stream: branch with - in place of / (eg. stable-helium) - # branch: branch (eg. stable/helium) + # 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}' + daysToKeep: '14' + numToKeep: '10' artifactDaysToKeep: '{build-artifact-days-to-keep}' artifactNumToKeep: '{build-artifact-num-to-keep}' parameters: - project-parameter: project: '{project}' + - gerrit-parameter: + branch: '{branch}' + - gerrit-refspec-parameter: + refspec: 'refs/heads/{branch}' scm: - gerrit-trigger-scm: @@ -137,32 +174,67 @@ wrappers: - build-timeout - ssh-agent-credentials: - user: '{ssh-credentials}' + users: + - '{ssh-credentials}' triggers: + - timed: 'H H * * 0' - gerrit-trigger-patch-merged: name: 'l2switch' branch: '{branch}' prebuilders: - wipe-org-opendaylight-repo + - jacoco-nojava-workaround + - provide-maven-settings: + global-settings-file: '{odl-global-settings}' + settings-file: '{l2switch-settings}' maven: - maven-name: '{mvn32}' + maven-name: '{mvn33}' root-pom: 'pom.xml' - goals: '-Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r clean install source:jar javadoc:jar' + goals: '-Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r clean install -Djenkins -Dmerge -Dstream={stream}' maven-opts: '-Xmx1024m -XX:MaxPermSize=256m -Dmaven.compile.fork=true' settings: '{l2switch-settings}' global-settings: '{odl-global-settings}' + post-step-run-condition: UNSTABLE postbuilders: - - jacoco-nojava-workaround + - 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 -Dstream={stream}' + java-opts: + - '-Xmx2g' + settings: '{l2switch-settings}' + global-settings: '{odl-global-settings}' + - maven-target: + maven-version: '{mvn33}' + pom: deploy-site.xml + goals: 'site:deploy -Dstream={stream}' + java-opts: + - '-Xmx2g' + settings: '{l2switch-settings}' + global-settings: '{odl-global-settings}' reporters: - findbugs publishers: - + - archive-artifacts: + artifacts: '**/target/surefire-reports/*-output.txt, ' - email-notification: email-prefix: '[l2switch]' - maven-deploy: @@ -172,24 +244,25 @@ - jacoco-report - job-template: - name: 'l2switch-daily-{stream}' + name: 'l2switch-periodic-{stream}' + disabled: false - # Job template for daily builders + # Job template for periodic builders # - # The purpose of this job template is to setup a daily/nightly - # builder and pushes to Sonar analysis. + # The purpose of this job template is to setup a periodic + # builder. # # Required Variables: - # stream: branch with - in place of / (eg. stable-helium) - # branch: branch (eg. stable/helium) + # 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: '{build-days-to-keep}' - numToKeep: '{build-num-to-keep}' + daysToKeep: '14' + numToKeep: '10' artifactDaysToKeep: '{build-artifact-days-to-keep}' artifactNumToKeep: '{build-artifact-num-to-keep}' @@ -206,25 +279,27 @@ wrappers: - build-timeout - ssh-agent-credentials: - user: '{ssh-credentials}' + users: + - '{ssh-credentials}' triggers: - - timed: 'H H * * *' + - timed: '@daily' prebuilders: - wipe-org-opendaylight-repo + - jacoco-nojava-workaround + - provide-maven-settings: + global-settings-file: '{odl-global-settings}' + settings-file: '{l2switch-settings}' maven: - maven-name: '{mvn32}' + maven-name: '{mvn33}' root-pom: 'pom.xml' - goals: '-Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r clean install source:jar javadoc:jar' + goals: '-Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r clean install -Djenkins' maven-opts: '-Xmx1024m -XX:MaxPermSize=256m -Dmaven.compile.fork=true' settings: '{l2switch-settings}' global-settings: '{odl-global-settings}' - postbuilders: - - jacoco-nojava-workaround - reporters: - findbugs @@ -233,18 +308,181 @@ email-prefix: '[l2switch]' - jacoco-report +- job-template: + name: 'l2switch-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: + - project-parameter: + project: 'integration/distribution' + + scm: + - git-scm: + credentials-id: '{ssh-credentials}' + refspec: '' + branch: '{branch}' + + wrappers: + - build-timeout + - ssh-agent-credentials: + users: + - '{ssh-credentials}' + + triggers: + - reverse: + jobs: '{project}-merge-{stream}' + result: 'success' + + prebuilders: + - wipe-org-opendaylight-repo + - provide-maven-settings: + global-settings-file: '{odl-global-settings}' + settings-file: '{l2switch-settings}' + + maven: + maven-name: '{mvn33}' + root-pom: 'pom.xml' + goals: 'clean install -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-settings}' + global-settings: '{odl-global-settings}' + + publishers: + - email-notification: + email-prefix: '[{project}]' + - maven-deploy: + id: '' + unique-version: true + deploy-unstable: false + +# 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 + +- job-template: + name: 'l2switch-distribution-check-{stream}' + disabled: '{obj:disable_distribution_check}' + + project-type: maven + node: dynamic_verify + jdk: '{jdk}' + + logrotate: + daysToKeep: '14' + numToKeep: '10' + artifactDaysToKeep: '{build-artifact-days-to-keep}' + artifactNumToKeep: '{build-artifact-num-to-keep}' + + parameters: + - gerrit-project-parameter: + project: '{project}' + - gerrit-refspec-parameter: + refspec: '{branch}' + - project-parameter: + project: '{project}' + - integration-distribution-git-url + + scm: + - integration-gerrit-scm: + credentials-id: '{ssh-credentials}' + basedir: '$GERRIT_PROJECT' + refspec: '$GERRIT_REFSPEC' + branch: '{branch}' + - integration-distribution-scm: + credentials-id: '{ssh-credentials}' + branch: '{branch}' + + wrappers: + - build-timeout + - ssh-agent-credentials: + users: + - '{ssh-credentials}' + + 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' + projects: + - project-compare-type: 'ANT' + project-pattern: '{name}' + branches: + - branch-compare-type: 'ANT' + branch-pattern: '**/{branch}' + skip-vote: + successful: true + failed: true + unstable: true + notbuilt: true + + prebuilders: + - integration-get-bundle-url + - inject: + properties-file: 'bundle.txt' + - wipe-org-opendaylight-repo + - maven-target: + maven-version: '{mvn33}' + pom: '$GERRIT_PROJECT/pom.xml' + goals: 'clean install -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: '{l2switch-settings}' + global-settings: '{odl-global-settings}' + + maven: + maven-name: '{mvn33}' + root-pom: 'distribution/pom.xml' + goals: 'clean install -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: '{l2switch-settings}' + global-settings: '{odl-global-settings}' + ignore-upstream-changes: true + post-step-run-condition: 'SUCCESS' + + postbuilders: + - trigger-builds: + - project: 'integration-distribution-deploy-{stream}' + block: true + predefined-parameters: + BUNDLEURL=$BUNDLEURL + + publishers: + - email-notification: + email-prefix: '[l2switch]' + - job-template: name: 'l2switch-integration-{stream}' disabled: false - # Job template for ODL merge jobs + # Job template for ODL integration verify jobs # - # The purpose of this job template is to setup a ODL merge job - # and deploy artifacts to Nexus. + # 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: branch with - in place of / (eg. stable-helium) - # branch: branch (eg. stable/helium) + # stream: release stream (eg. stable-lithium or beryllium) + # branch: git branch (eg. stable/lithium or master) project-type: maven node: dynamic_merge @@ -269,7 +507,8 @@ wrappers: - build-timeout - ssh-agent-credentials: - user: '{ssh-credentials}' + users: + - '{ssh-credentials}' triggers: - reverse: @@ -278,18 +517,19 @@ prebuilders: - wipe-org-opendaylight-repo + - jacoco-nojava-workaround + - provide-maven-settings: + global-settings-file: '{odl-global-settings}' + settings-file: '{l2switch-settings}' maven: - maven-name: '{mvn32}' + maven-name: '{mvn33}' root-pom: 'pom.xml' - goals: '-Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r clean install source:jar javadoc:jar' + goals: '-Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r clean install -Djenkins' maven-opts: '-Xmx1024m -XX:MaxPermSize=256m -Dmaven.compile.fork=true' settings: '{l2switch-settings}' global-settings: '{odl-global-settings}' - postbuilders: - - jacoco-nojava-workaround - reporters: - findbugs @@ -300,10 +540,11 @@ - job-template: name: 'l2switch-sonar' + disabled: false project-type: maven node: dynamic_verify - jdk: '{jdk}' + jdk: 'openjdk8' logrotate: daysToKeep: '7' @@ -324,22 +565,29 @@ wrappers: - build-timeout - ssh-agent-credentials: - user: '{ssh-credentials}' + users: + - '{ssh-credentials}' triggers: - - timed: 'H H * * *' + - timed: '@weekly' + - gerrit-trigger-patch-sonar: + name: 'l2switch' + + prebuilders: + - wipe-org-opendaylight-repo + - jacoco-nojava-workaround + - provide-maven-settings: + global-settings-file: '{odl-global-settings}' + settings-file: '{l2switch-settings}' maven: - maven-name: '{mvn32}' + maven-name: '{mvn33}' root-pom: 'pom.xml' - goals: '-Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r clean install -Dsonar' + goals: '-Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r clean install -Djenkins -Dsonar' maven-opts: '-Xmx1024m -XX:MaxPermSize=256m -Dmaven.compile.fork=true' settings: '{l2switch-settings}' global-settings: '{odl-global-settings}' - postbuilders: - - jacoco-nojava-workaround - reporters: - findbugs @@ -351,3 +599,159 @@ email-prefix: '[l2switch]' - jacoco-report +- job-template: + name: 'l2switch-clm-{stream}' + disabled: false + + project-type: maven + node: dynamic_verify + 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: + - project-parameter: + project: '{project}' + + scm: + - git-scm: + credentials-id: '{ssh-credentials}' + refspec: '' + branch: '{branch}' + + wrappers: + - build-timeout + - ssh-agent-credentials: + users: + - '{ssh-credentials}' + + triggers: + - timed: '@weekly' + + prebuilders: + - wipe-org-opendaylight-repo + - provide-maven-settings: + global-settings-file: '{odl-global-settings}' + settings-file: '{l2switch-settings}' + + maven: + maven-name: '{mvn33}' + root-pom: 'pom.xml' + goals: 'clean install com.sonatype.clm:clm-maven-plugin:index -Djenkins -DskipTests=true -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r' + maven-opts: '-Xmx4096m -XX:MaxPermSize=512m' + settings: '{l2switch-settings}' + global-settings: '{odl-global-settings}' + + postbuilders: + - shell: 'find . -regex ".*karaf/target" | xargs rm -rf' + - check-clm: + application-name: l2switch + + publishers: + - email-notification: + email-prefix: '[l2switch]' + +- job-template: + name: 'l2switch-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: + - project-parameter: + project: '{project}' + - gerrit-parameter: + branch: '{branch}' + - autorelease-release-tag: + release-tag: 'validate' + - autorelease-release-branch: + release-branch: '{branch}' + - autorelease-release-datestamp: + datestamp: true + + scm: + - git: + url: 'https://git.opendaylight.org/gerrit/releng/autorelease' + refspec: '' + branches: + - 'origin/{branch}' + skip-tag: true + submodule: + recursive: true + + wrappers: + - autorelease-build-timeout + - ssh-agent-credentials: + users: + - '{ssh-credentials}' + + triggers: + - gerrit: + server-name: 'OpenDaylight' + trigger-on: + - patchset-created-event: + exclude-drafts: 'false' + exclude-trivial-rebase: 'false' + exclude-no-code-change: 'false' + - 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: 'l2switch' + branches: + - branch-compare-type: 'ANT' + branch-pattern: '**/{branch}' + + prebuilders: + - wipe-org-opendaylight-repo + - jacoco-nojava-workaround + - autorelease-checkout-gerrit-patch + - autorelease-generate-taglist + - autorelease-generate-release-patches + - maven-target: + maven-version: '{mvn33}' + pom: validate-pom.xml + goals: 'clean install -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}' + global-settings: '{odl-global-settings}' + + maven: + maven-name: '{mvn33}' + root-pom: 'pom.xml' + goals: 'clean validate -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}' + global-settings: '{odl-global-settings}' + automatic-archiving: false + post-step-run-condition: UNSTABLE + + postbuilders: + - shell: "./scripts/list-project-dependencies.sh" + - autorelease-sys-stats + + publishers: + - archive-artifacts: + artifacts: '*.log' + - email-notification: + email-prefix: '[autorelease] [l2switch]' +