--- - project: name: integration-test project: integration/test project-name: integration-test test-branch: master jobs: - '{project-name}-verify-tox-master' - 'integration-csit-verify-1node-library' - 'integration-distribution-test-{stream}' - 'integration-sanity-test-{stream}' - 'integration-patch-test-{stream}' - 'integration-multipatch-test-{stream}' - 'integration-distribution-weekly-test-trigger-{stream}' # CSIT Lists in releng-defaults.yaml stream: - nitrogen: branch: 'master' jre: 'openjdk8' csit-list: '{csit-list-nitrogen}' csit-sanity-list: '{csit-sanity-list-nitrogen}' csit-weekly-list: '{csit-weekly-list-nitrogen}' schedule-weekly: 'H 12 * * 0' - carbon: branch: 'stable/carbon' jdk: 'openjdk8' jre: 'openjdk8' csit-list: '{csit-list-carbon}' csit-sanity-list: '{csit-sanity-list-carbon}' csit-weekly-list: '{csit-weekly-list-carbon}' schedule-weekly: 'H 12 * * 0' - boron: branch: 'stable/boron' jdk: 'openjdk8' jre: 'openjdk8' csit-list: '{csit-list-boron}' csit-sanity-list: '{csit-sanity-list-boron}' csit-weekly-list: '{csit-weekly-list-boron}' schedule-weekly: 'H 12 * * 0' - beryllium: branch: 'stable/beryllium' jdk: 'openjdk7' jre: 'openjdk7' csit-list: '{csit-list-beryllium}' csit-sanity-list: '' csit-weekly-list: '' schedule-weekly: 'H 12 * * 0' # tools system image tools_system_image: Ubuntu 14.04 - mininet-ovs-25 - 20170210-0300 # Template: integration-csit-verify-1node-library # Goal: Verify changes in csit folder not covered by projects suite verify jobs (e.g. libraries or variables) # Operation: This job template performs a base openflow test when there is a change in the libraries folder - job-template: name: 'integration-csit-verify-1node-library' project-type: freestyle node: centos7-robot-2c-2g # {stream} is already defined as a composite object, it cannot be overriden. dist-stream: boron # This is not a template, so define branch, scope and jre for distribution to test with. branch: stable/boron scope: only jre: openjdk8 properties: - opendaylight-infra-properties: build-days-to-keep: '{build-days-to-keep}' parameters: - opendaylight-infra-parameters: os-cloud: '{os-cloud}' project: '{project}' branch: '{test-branch}' refspec: 'refs/heads/{test-branch}' artifacts: '{archive-artifacts}' - integration-distribution-branch: branch: '{branch}' - integration-distribution-stream: stream: '{dist-stream}' - integration-bundleurl: bundleurl: '{bundleurl}' - integration-controller-scope: controller-scope: '{scope}' - integration-controller-features: controller-features: > odl-clustering-test-app, odl-openflowplugin-flow-services-ui, odl-openflowplugin-app-table-miss-enforcer, odl-bgpcep-pcep, odl-bgpcep-bgp, odl-netconf-connector-all # when upgrading to carbon you should replace odl-netconf-connector-all with odl-netconf-topology # and change USE_NETCONF_CONNECTOR to False in test-options - integration-test-options: test-options: '-v TIMEOUT_BUG_4220:10s -v USE_NETCONF_CONNECTOR:True' - integration-stream-test-plan: stream-test-plan: 'test-libraries-{dist-stream}.txt' - integration-test-plan: test-plan: 'test-libraries.txt' - integration-patch-refspec: branch: '$GERRIT_REFSPEC' - integration-jdk-version: jdkversion: '{jre}' scm: - integration-gerrit-scm: basedir: 'test' refspec: '$PATCHREFSPEC' branch: '{test-branch}' wrappers: - opendaylight-infra-wrappers: build-timeout: '{build-timeout}' triggers: - integration-trigger-patch-submitted: server: '{server-name}' project: '{project}' branch: '{test-branch}' files: 'csit/libraries/*' builders: - integration-infra-stack: stack-template: '{stack-template}' vm_0_count: '1' vm_0_flavor: '{odl_system_flavor}' vm_0_image: '{odl_system_image}' vm_1_count: '{tools_system_count}' vm_1_flavor: '{tools_system_flavor}' vm_1_image: '{tools_system_image}' - integration-install-robotframework - inject: properties-file: 'env.properties' - integration-get-slave-addresses - inject: properties-file: 'slave_addresses.txt' - integration-get-bundle-vars - inject: properties-file: 'bundle_vars.txt' - integration-deploy-controller-run-test - integration-cleanup-tmp publishers: - integration-robot: unstable-if: 0.0 pass-if: 100.0 - email-notification: email-recipients: '{email-recipients}' email-prefix: '[integration]' - integration-csit-archive-build - opendaylight-infra-shiplogs: maven-version: 'mvn33' # Template: integration-distribution-test-{stream} # Goal: Verify a distribution through all system test available # Operation: This template takes a distribution and passes all available system test - job-template: name: 'integration-distribution-test-{stream}' project-type: freestyle node: centos7-robot-2c-2g properties: - opendaylight-infra-properties: build-days-to-keep: '{build-days-to-keep}' parameters: - integration-bundleurl: bundleurl: '{bundleurl}' - integration-jdk-version: jdkversion: '{jre}' builders: - trigger-builds: - project: '{csit-list}' block: true predefined-parameters: BUNDLEURL=$BUNDLEURL publishers: - email-notification: email-recipients: '{email-recipients}' email-prefix: '[integration]' # Template: integration-sanity-test-{stream} # Goal: Verify a distribution through sanity test # Operation: This template takes a distribution and passes sanity test - job-template: name: 'integration-sanity-test-{stream}' project-type: freestyle node: centos7-robot-2c-2g properties: - opendaylight-infra-properties: build-days-to-keep: '{build-days-to-keep}' parameters: - integration-bundleurl: bundleurl: '{bundleurl}' - integration-jdk-version: jdkversion: '{jre}' builders: - trigger-builds: - project: '{csit-sanity-list}' block: true predefined-parameters: BUNDLEURL=$BUNDLEURL publishers: - email-notification: email-recipients: '{email-recipients}' email-prefix: '[integration]' # Template: integration-patch-test-{stream} # Goal: Build a patch and run all available system test on a distribution containing the change # Operation: This job template builds a patch, creates a distribution containing the patch, and # triggers the distribution test when test-integration is used in gerrit comments - job-template: name: 'integration-patch-test-{stream}' project-type: maven node: centos7-java-builder-2c-8g jdk: '{jdk}' properties: - opendaylight-infra-properties: build-days-to-keep: '{build-days-to-keep}' parameters: - opendaylight-infra-parameters: os-cloud: '{os-cloud}' project: '$GERRIT_PROJECT' branch: '{branch}' refspec: '$GERRIT_REFSPEC' artifacts: '{archive-artifacts} **/dependency_tree.txt' - integration-distribution-branch: branch: '{branch}' - integration-distribution-git-url: git-url: '{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: '720' triggers: - gerrit: server-name: '{server-name}' trigger-on: - comment-added-contains-event: comment-contains-value: 'test-integration' projects: - project-compare-type: 'ANT' project-pattern: '**' branches: - branch-compare-type: 'ANT' branch-pattern: '**/{branch}' skip-vote: successful: true failed: true unstable: true notbuilt: true prebuilders: - integration-rebase-gerrit-patch - integration-get-bundle-url - inject: properties-file: 'bundle.txt' - wipe-org-opendaylight-repo - provide-maven-settings: global-settings-file: 'odl-global-settings' settings-file: 'integration-settings' - maven-target: maven-version: 'mvn33' pom: '$GERRIT_PROJECT/pom.xml' goals: > clean install dependency:tree -DoutputFile=dependency_tree.txt -V -B -Pq -Djenkins -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: 'integration-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 dependency:tree -DoutputFile=dependency_tree.txt -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-settings' settings-type: cfp global-settings: 'odl-global-settings' global-settings-type: cfp ignore-upstream-changes: true post-step-run-condition: 'SUCCESS' postbuilders: - trigger-builds: - project: '{csit-list}' block: true predefined-parameters: BUNDLEURL=$BUNDLEURL publishers: - opendaylight-infra-shiplogs: maven-version: 'mvn33' - email-notification: email-recipients: '{email-recipients}' email-prefix: '[$GERRIT_PROJECT]' - job-template: name: 'integration-multipatch-test-{stream}' # Goal: Build one or more patches and run all available system test on a distribution containing the change. # Operation: This job template checks out and builds each patch provided in job parameters, creates a distribution # containing these patches, and triggers the distribution test job which includes most (if not all) available # CSIT jobs # TODO: Move the following to appropriate readthedocs document. # Recommended Sandbox usage: # 0. Create this job and a CSIT job you want to run on the new .zip in Sandbox (disable timed triggers). # 1. Copy the csit job name to clipboard. # 2. Navigate to Sandbox page of this job. # 3. Click "Configure". # 4. Locate "Trigger/call builds on other projects" (under "Post Steps" tab). # 5. Delete the long value of "Projects to build" field and paste the job name from clipboard (ctrl+a, ctrl+v). # 6. Click "Save" button. # 7. Click "Build with Parameters". # yamllint disable-line rule:line-length # 8. Start the job with your parameters, see https://wiki.opendaylight.org/view/Integration/Test/Running_System_Tests#Running_System_Tests_Using_Custom_Distribution_Built_From_Multiple_Patches # 9. The multipatch job waits for the csit job to finish, so abort csit if you see something went wrong. # 10. Navigate to Sandbox page of the csit job, click the run triggered from multipatch. # 11. Click Parameters and copy the long value of BUNDLEURL field to clipboard. # 12. Run the same csit job woth different patchset or test options, or other csit jobs, with this BUNDLEURL value # so you do not have to wait for multipatch build. Repeat step 12. # 13. Currently, the .zip lasts 24 hours (?) so you may need to jump to step 2 (or 0) after some time. project-type: maven node: centos7-java-builder-8c-8g jdk: '{jdk}' properties: - opendaylight-infra-properties: build-days-to-keep: '{build-days-to-keep}' parameters: - patches-to-build-parameter: patches_to_build: '$PATCHES_TO_BUILD' - run-test-parameter: run-test: 'false' - integration-distribution-branch: branch: '{branch}' - opendaylight-infra-parameters: os-cloud: '{os-cloud}' project: 'integration/distribution' branch: '{branch}' refspec: 'refs/heads/{branch}' artifacts: '{archive-artifacts} **/dependency_tree.txt' prebuilders: - wipe-org-opendaylight-repo - integration-multipatch-builder - inject: properties-file: 'bundle.txt' - provide-maven-settings: global-settings-file: 'odl-global-settings' settings-file: 'yangtools-settings' wrappers: - opendaylight-infra-wrappers: build-timeout: '1200' maven: maven-name: 'mvn33' root-pom: 'patch_tester/pom.xml' # TODO: Make Maven options configurable. Currently tests are not skipped, everything else is. goals: > clean install dependency:tree -DoutputFile=dependency_tree.txt -f patch_tester/pom.xml -V -B -Pq -Djenkins -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r -Dstream={stream} maven-opts: '-Xmx7168m -XX:MaxPermSize=1024m -Dmaven.compile.fork=true' settings: 'yangtools-settings' settings-type: cfp global-settings: 'odl-global-settings' global-settings-type: cfp post-step-run-condition: 'SUCCESS' postbuilders: - conditional-step: condition-kind: boolean-expression condition-expression: $RUNTEST steps: - trigger-builds: - project: '{csit-list}' block: true predefined-parameters: BUNDLEURL=$BUNDLEURL publishers: - opendaylight-infra-shiplogs: maven-version: 'mvn33' - email-notification: email-recipients: '{email-recipients}' email-prefix: '[int/dist]' - job-template: name: 'integration-distribution-weekly-test-trigger-{stream}' project-type: freestyle node: centos7-robot-2c-2g properties: - opendaylight-infra-properties: build-days-to-keep: '{build-days-to-keep}' parameters: - integration-bundleurl: bundleurl: '{bundleurl}' - integration-jdk-version: jdkversion: '{jre}' triggers: - timed: '{schedule-weekly}' builders: - trigger-builds: - project: '{csit-weekly-list}' block: true predefined-parameters: BUNDLEURL=$BUNDLEURL publishers: - email-notification: email-recipients: '{email-recipients}' email-prefix: '[integration]'