* CentOS 7 - java-builder - 20170120-1817
* Ubuntu 14.04 - gbp - 20170117-0042
-* Ubuntu 14.04 - mininet - 20170117-0003
+* Ubuntu 14.04 - mininet - 20170130-0425
* Ubuntu 14.04 - mininet-ovs-23 - 20170130-0415
* Ubuntu 14.04 - mininet-ovs-25 - 20170130-0414
* CentOS 7 - devstack - 20170120-1710
recursive=True
[jenkins]
-#user=jenkins
-#password=1234567890abcdef1234567890abcdef
-url=http://localhost:8080
+user=#odl_username#
+password=#api_token#
+url=https://jenkins.opendaylight.org/sandbox
query_plugins_info=False
-
project: 'releng/autorelease'
archive-artifacts: '**/*.prop **/*.log **/patches/*.bundle **/patches/*.patch all-bundles.tar.gz'
- publishers:
- - archive:
- artifacts: 'dependecies.log'
-
###
# TODO: Remove this job once guava21 testing is complete
###
cp *.log *.prop $_
publishers:
+ - archive:
+ artifacts: 'dependencies.log'
- email-notification:
email-recipients: '{email-recipients}'
email-prefix: '[autorelease]'
- '{project-name}-verify-python-{stream}'
stream:
- - carbon:
- branch: 'master'
+ # Pcepy was removed in Carbon.
- boron:
branch: 'stable/boron'
- beryllium:
--- /dev/null
+- project:
+ name: coe-carbon
+ jobs:
+ - '{project-name}-clm-{stream}'
+ - '{project-name}-integration-{stream}'
+ - '{project-name}-merge-{stream}'
+ - '{project-name}-verify-{stream}-{maven}-{jdks}'
+
+ project: 'coe'
+ project-name: 'coe'
+ stream: carbon
+ branch: 'master'
+ jdk: openjdk8
+ jdks:
+ - openjdk8
+ maven:
+ - mvn33:
+ mvn-version: 'mvn33'
+ mvn-settings: 'coe-settings'
+ mvn-goals: 'clean install -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r'
+ mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
+ dependencies: 'odlparent-merge-{stream},yangtools-merge-{stream},controller-merge-{stream}'
+ email-upstream: '[coe] [odlparent] [yangtools] [controller]'
+ archive-artifacts: ''
+
+- project:
+ name: coe-sonar
+ jobs:
+ - '{project-name}-sonar'
+
+ project: 'coe'
+ project-name: 'coe'
+ branch: 'master'
+ mvn-settings: 'coe-settings'
+ mvn-goals: 'clean install -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r'
+ mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
\ No newline at end of file
dependencies: 'odlparent-merge-{stream},yangtools-merge-{stream},aaa-merge-{stream}'
email-upstream: '[controller] [odlparent] [yangtools] [aaa]'
archive-artifacts: ''
+ # Temporary workaround for SFT failure with karaf4-features
+ build-node: centos7-java-builder-4c-16g
- project:
name: controller-boron
--- /dev/null
+- project:
+ name: federation-carbon
+ jobs:
+ - '{project-name}-clm-{stream}'
+ - '{project-name}-integration-{stream}'
+ - '{project-name}-merge-{stream}'
+ - '{project-name}-verify-{stream}-{maven}-{jdks}'
+
+ project: 'federation'
+ project-name: 'federation'
+ stream: carbon
+ branch: 'master'
+ jdk: openjdk8
+ jdks:
+ - openjdk8
+ maven:
+ - mvn33:
+ mvn-version: 'mvn33'
+ mvn-settings: 'federation-settings'
+ mvn-goals: 'clean install -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r'
+ mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
+ dependencies: 'odlparent-merge-{stream},yangtools-merge-{stream},controller-merge-{stream}'
+ email-upstream: '[federation] [odlparent] [yangtools] [controller]'
+ archive-artifacts: ''
+
+- project:
+ name: federation-sonar
+ jobs:
+ - '{project-name}-sonar'
+
+ project: 'federation'
+ project-name: 'federation'
+ branch: 'master'
+ mvn-settings: 'federation-settings'
+ mvn-goals: 'clean install -Dmaven.repo.local=/tmp/r -Dorg.ops4j.pax.url.mvn.localRepository=/tmp/r'
+ mvn-opts: '-Xmx1024m -XX:MaxPermSize=256m'
- project:
- name: integration-distribution
+ name: distribution-jobs
jobs:
- '{project-name}-verify-python-{stream}'
- 'distribution-verify-{stream}'
- 'distribution-offline-{stream}'
project: integration/distribution
- project-name: integration-distribution
+ project-name: distribution
stream:
- carbon:
postbuilders:
- trigger-builds:
- - project: 'integration-distribution-deploy-{stream}'
+ - project: 'distribution-deploy-{stream}'
block: true
predefined-parameters:
BUNDLEURL=$BUNDLEURL
email-recipients: '{email-recipients}'
email-prefix: '[int/dist]'
-# Template: integration-distribution-deploy-{stream}
+# Template: 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
- opendaylight-infra-shiplogs:
maven-version: 'mvn33'
-# Template: integration-distribution-offline-{stream}
+# Template: distribution-offline-{stream}
# Goal: Verify distribution can start with no internet connection
# Operation: This job deploys the controller removing any external repository definition
-v BUNDLE_URL:${ACTUALBUNDLEURL} -v NEXUSURL_PREFIX:${NEXUSURL_PREFIX} -v JDKVERSION:${JDKVERSION} -v ODL_STREAM:${DISTROSTREAM} \
-v ODL_SYSTEM_IP:${ODL_SYSTEM_IP} -v ODL_SYSTEM_1_IP:${ODL_SYSTEM_1_IP} -v ODL_SYSTEM_2_IP:${ODL_SYSTEM_2_IP} \
-v ODL_SYSTEM_3_IP:${ODL_SYSTEM_3_IP} -v NUM_ODL_SYSTEM:${NUM_ODL_SYSTEM} -v CONTROLLER_USER:${USER} -v OS_USER:${USER} \
+-v TOOLS_SYSTEM_IP:${TOOLS_SYSTEM_1_IP} -v TOOLS_SYSTEM_1_IP:${TOOLS_SYSTEM_1_IP} \
+-v TOOLS_SYSTEM_2_IP:${TOOLS_SYSTEM_2_IP} -v NUM_TOOLS_SYSTEM:${NUM_TOOLS_SYSTEM} \
-v NUM_OS_SYSTEM:${NUM_OPENSTACK_SYSTEM} -v OS_CONTROL_NODE_IP:${OPENSTACK_CONTROL_NODE_IP} \
-v OS_COMPUTE_1_IP:${OPENSTACK_COMPUTE_NODE_1_IP} -v OS_COMPUTE_2_IP:${OPENSTACK_COMPUTE_NODE_2_IP} \
-v HA_PROXY_IP:${HA_PROXY_IP} \
- opendaylight-infra-stack:
stack-template: '{stack-template}'
+# Macro: integration-infra-stack-3-type
+# Operation: Sets environment and then calls opendaylight-infra-stack to spin
+# up csit lab using openstack-heat.
+# Used by: {project}-csit-* job templates
+
+- builder:
+ name: integration-infra-stack-3-type
+ builders:
+ - integration-cleanup-workspace
+ - shell: |
+ #!/bin/bash
+ # Setup openstack envirnoment file for use by
+ # the opendaylight-infra-stack macro
+ cat > $WORKSPACE/opendaylight-infra-environment.yaml << EOF
+ parameters:
+ vm_0_count: {vm_0_count}
+ vm_0_flavor: {vm_0_flavor}
+ vm_0_image: {vm_0_image}
+ vm_1_count: {vm_1_count}
+ vm_1_flavor: {vm_1_flavor}
+ vm_1_image: {vm_1_image}
+ vm_2_count: {vm_2_count}
+ vm_2_flavor: {vm_2_flavor}
+ vm_2_image: {vm_2_image}
+ EOF
+ echo "Contents of opendaylight-infra-environment.yaml ..."
+ cat $WORKSPACE/opendaylight-infra-environment.yaml
+ - opendaylight-infra-stack:
+ stack-template: 'csit-3-instance-type.yaml'
+
# Macro: integration-get-slave-addresses
# Operation: this macro gets the IP addresses of the dynamic vms
# Used by: {project}-csit-* job templates
# Macro: integration-deploy-controller-verify
# Operation: this macro deploys the controller with all fetures
-# Used by: integration-distribution-deploy-{stream} job template
+# Used by: distribution-deploy-{stream} job template
- builder:
name: integration-deploy-controller-verify
# Macro: integration-get-bundle-url-root
# Operation: this macro gets the job generated distribution URL from root pom.xml
-# Used by: integration-distribution-verify-{stream} job template
+# Used by: distribution-verify-{stream} job template
- builder:
name: integration-get-bundle-url-root
- opendaylight-infra-shiplogs:
maven-version: 'mvn33'
+- job-template:
+ name: '{project}-csit-hwvtep-{topology}-openstack-{openstack}-{functionality}-{stream}'
+ disabled: false
+
+ project-type: freestyle
+ node: centos7-robot-2c-2g
+ concurrent: true
+
+ properties:
+ - opendaylight-infra-properties:
+ build-days-to-keep: '{build-days-to-keep}'
+
+ parameters:
+ - opendaylight-infra-parameters:
+ project: 'integration/test'
+ branch: '{branch}'
+ refspec: 'refs/heads/{branch}'
+ artifacts: '{archive-artifacts}'
+ - integration-branch:
+ branch: '{branch}'
+ - integration-distribution-stream:
+ stream: '{stream}'
+ - integration-bundleurl:
+ bundleurl: '{bundleurl}'
+ - integration-controller-features:
+ controller-features: '{install-features}'
+ - integration-test-options:
+ test-options: '{robot-options}'
+ - integration-test-plan:
+ test-plan: '{testplan}'
+ - integration-patch-refspec:
+ branch: 'master'
+ - integration-jdk-version:
+ jdkversion: '{jre}'
+ - string:
+ name: OPENSTACK_BRANCH
+ default: '{openstack-branch}'
+ description: 'Openstack version to use with devstack'
+ - string:
+ name: ODL_ML2_DRIVER_REPO
+ default: '{odl-ml2-driver-repo}'
+ description: 'URL to fetch networking-odl driver'
+ - string:
+ name: ODL_ML2_BRANCH
+ default: '{odl-ml2-branch}'
+ description: 'Version of networking-odl to checkout from the repo'
+ - string:
+ name: ODL_ML2_DRIVER_VERSION
+ default: '{odl-ml2-driver-version}'
+ description: 'Mode of networking-odl (v1 or v2)'
+ - string:
+ name: ODL_ENABLE_L3_FWD
+ default: '{odl-enable-l3}'
+ description: 'Enable L3 FWD in ODL for createing br-ex'
+ - string:
+ name: PUBLIC_BRIDGE
+ default: '{public-bridge}'
+ description: 'Specifies public bridge for provider and external networking'
+ - string:
+ name: ENABLE_HAPROXY_FOR_NEUTRON
+ default: '{enable-haproxy}'
+ description: 'Enable HAProxy for using neutron interface as HA'
+ - string:
+ name: ENABLE_OS_SERVICES
+ default: '{enable-openstack-services}'
+ description: 'comma seperated list of services to enable'
+ - string:
+ name: DISABLE_OS_SERVICES
+ default: '{disable-openstack-services}'
+ description: 'comma seperated list of services to enable'
+ - string:
+ name: TENANT_NETWORK_TYPE
+ default: '{tenant-network-type}'
+ description: 'Tenant Network Type supported by the implementation'
+ - string:
+ name: SECURITY_GROUP_MODE
+ default: '{security-group-mode}'
+ description: 'Security Group Mode to be used in netvirt aclservice config'
+ scm:
+ - integration-gerrit-scm:
+ basedir: 'test'
+ refspec: '$PATCHREFSPEC'
+ branch: 'master'
+
+ wrappers:
+ - opendaylight-infra-wrappers:
+ build-timeout: '{build-timeout}'
+
+ triggers:
+ - timed: '{schedule}'
+
+ builders:
+ - integration-infra-stack-3-type:
+ vm_0_count: '{odl_system_count}'
+ vm_0_flavor: '{odl_system_flavor}'
+ vm_0_image: '{odl_system_image}'
+ vm_1_count: '{openstack_system_count}'
+ vm_1_flavor: '{openstack_system_flavor}'
+ vm_1_image: '{openstack_system_image}'
+ vm_2_count: '{tools_system_count}'
+ vm_2_flavor: '{tools_system_flavor}'
+ vm_2_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-deploy-openstack-run-test
+ - integration-cleanup-tmp
+
+ publishers:
+ - integration-robot-tempest:
+ unstable-if: 0.0
+ pass-if: 100.0
+ - email-notification:
+ email-recipients: '{email-recipients}'
+ email-prefix: '[{project}]'
+ - integration-csit-archive-build
+ - opendaylight-infra-shiplogs:
+ maven-version: 'mvn33'
+
- job-template:
name: '{project}-csit-{topology}-openstack-{openstack}-{functionality}-{stream}'
disabled: false
schedule: 'H H/4 * * *'
sg-mode: 'transparent'
- upstream-stateful:
- schedule: ''
+ schedule: 'H H * * *'
sg-mode: 'stateful'
- upstream-learn:
- schedule: ''
+ schedule: 'H H * * *'
sg-mode: 'learn'
- gate-learn:
schedule: ''
--- /dev/null
+- project:
+ name: netvirt-vpnservices-csit-hwvtep-openstack-integration
+ jobs:
+ - '{project}-csit-hwvtep-{topology}-openstack-{openstack}-{functionality}-{stream}'
+
+ project: 'netvirt-vpnservices'
+
+ topology:
+ - 1node:
+ openstack_system_count: 3
+ odl_system_count: 1
+ enable-haproxy: 'no'
+ install-features: 'odl-netvirt-openstack'
+ - 3node:
+ openstack_system_count: 4
+ odl_system_count: 3
+ enable-haproxy: 'yes'
+ install-features: 'odl-jolokia,odl-netvirt-openstack'
+
+ testplan: '{project}-{topology}-openstack.txt'
+
+ functionality:
+ - upstream-transparent:
+ schedule: 'H H * * *'
+ sg-mode: 'transparent'
+ - upstream-stateful:
+ schedule: 'H H * * *'
+ sg-mode: 'stateful'
+ - upstream-learn:
+ schedule: 'H H * * *'
+ sg-mode: 'learn'
+ - gate-learn:
+ schedule: ''
+ sg-mode: 'learn'
+ - gate-transparent:
+ schedule: ''
+ sg-mode: 'transparent'
+ - gate-stateful:
+ schedule: ''
+ sg-mode: 'stateful'
+ - gate-minimal-transparent:
+ schedule: ''
+ sg-mode: 'transparent'
+ testplan: '{project}-{topology}-minimal-openstack.txt'
+ - gate-tempest-transparent:
+ schedule: ''
+ sg-mode: 'transparent'
+ testplan: '{project}-{topology}-tempest-openstack.txt'
+
+ stream:
+ - carbon:
+ branch: 'master'
+ jre: 'openjdk8'
+ - boron:
+ branch: 'stable/boron'
+ jre: 'openjdk8'
+
+ openstack:
+ - mitaka:
+ openstack-branch: 'stable/mitaka'
+ odl-ml2-branch: 'stable/mitaka'
+ odl-ml2-driver-version: 'v1'
+ openstack_system_image: 'CentOS 7 - devstack - mitaka - 20170106-2237'
+ - newton:
+ openstack-branch: 'stable/newton'
+ odl-ml2-branch: 'stable/newton'
+ odl-ml2-driver-version: 'v1'
+ openstack_system_image: 'CentOS 7 - devstack - newton - 20170106-2237'
+ - newton-nodl-v2:
+ openstack-branch: 'stable/newton'
+ odl-ml2-branch: 'stable/newton'
+ odl-ml2-driver-version: 'v2'
+ openstack_system_image: 'CentOS 7 - devstack - newton - 20170106-2237'
+
+ tools_system_count: 2
+
+ tools_system_image: 'Ubuntu 14.04 - mininet-ovs-25 - 20170130-0414'
+
+ odl-enable-l3: 'yes'
+
+ public-bridge: 'br-physnet1'
+
+ enable-openstack-services: 'q-svc,q-dhcp,q-meta,n-cauth,tempest'
+
+ disable-openstack-services: 'swift,cinder,n-net,q-vpn,n-cpu'
+
+ tenant-network-type: 'vxlan'
+
+ security-group-mode: '{sg-mode}'
+
+ robot-options: ''
mvn-settings: 'netvirt-settings'
mvn-goals: 'clean install'
mvn-opts: '-Xmx2048m -XX:MaxPermSize=512m'
- dependencies: 'neutron-merge-{stream},openflowjava-merge-{stream},openflowplugin-merge-{stream},ovsdb-merge-{stream},sfc-merge-{stream}'
- email-upstream: '[netvirt] [neutron] [openflowjava] [openflowplugin] [ovsdb] [sfc]'
+ dependencies: 'genius-merge-{stream},neutron-merge-{stream},openflowjava-merge-{stream},openflowplugin-merge-{stream},ovsdb-merge-{stream},sfc-merge-{stream}'
+ email-upstream: '[genius] [netvirt] [neutron] [openflowjava] [openflowplugin] [ovsdb] [sfc]'
archive-artifacts: ''
- project:
mvn-settings: 'netvirt-settings'
mvn-goals: 'clean install'
mvn-opts: '-Xmx2048m -XX:MaxPermSize=512m'
- dependencies: 'neutron-merge-{stream},openflowjava-merge-{stream},openflowplugin-merge-{stream},ovsdb-merge-{stream},sfc-merge-{stream}'
- email-upstream: '[netvirt] [neutron] [openflowjava] [openflowplugin] [ovsdb] [sfc]'
+ dependencies: 'genius-merge-{stream},neutron-merge-{stream},openflowjava-merge-{stream},openflowplugin-merge-{stream},ovsdb-merge-{stream},sfc-merge-{stream}'
+ email-upstream: '[genius] [netvirt] [neutron] [openflowjava] [openflowplugin] [ovsdb] [sfc]'
archive-artifacts: ''
- project:
mvn-settings: 'netvirt-settings'
mvn-goals: 'clean install'
mvn-opts: '-Xmx2048m -XX:MaxPermSize=512m'
- dependencies: 'neutron-merge-{stream},openflowjava-merge-{stream},openflowplugin-merge-{stream},ovsdb-merge-{stream},sfc-merge-{stream}'
- email-upstream: '[netvirt] [neutron] [openflowjava] [openflowplugin] [ovsdb] [sfc]'
+ dependencies: 'genius-merge-{stream},neutron-merge-{stream},openflowjava-merge-{stream},openflowplugin-merge-{stream},ovsdb-merge-{stream},sfc-merge-{stream}'
+ email-upstream: '[genius] [netvirt] [neutron] [openflowjava] [openflowplugin] [ovsdb] [sfc]'
archive-artifacts: ''
pip install --upgrade python-openstackclient python-heatclient
pip freeze
-DELETE_LIST=(`openstack --os-cloud rackspace stack list -f json | \
- jq -r '.[] | \
- select((."Stack Status" == "CREATE_FAILED") or \
- (."Stack Status" == "DELETE_FAILED")) | \
- ."Stack Name"'`)
-for i in "${DELETE_LIST[@]}"; do
- echo "Deleting stack $i"
- openstack --os-cloud rackspace stack delete --yes $i
+#########################
+## FETCH ACTIVE BUILDS ##
+#########################
+# Make sure we fetch active builds on both the releng and sandbox silos
+ACTIVE_BUILDS=()
+for silo in releng sandbox; do
+ JENKINS_URL="https://jenkins.opendaylight.org/$silo//computer/api/json?tree=computer[executors[currentExecutable[url]],oneOffExecutors[currentExecutable[url]]]&xpath=//url&wrapper=builds"
+ wget --no-verbose -O $silo_builds.json $JENKINS_URL
+ sleep 1 # Need to sleep for 1 second otherwise next line causes script to stall
+ ACTIVE_BUILDS=(${ACTIVE_BUILDS[@]} ` \
+ jq -r '.computer[].executors[].currentExecutable.url' $silo_builds.json \
+ | grep -v null | awk -F'/' '{print $6 "-" $7}'`)
+done
+
+##########################
+## DELETE UNUSED STACKS ##
+##########################
+# Search for stacks taht are not in use by either releng or sandbox silos and
+# delete them.
+OS_STACKS=(`openstack --os-cloud rackspace stack list \
+ -f json -c "Stack Name" -c "Stack Status" \
+ --property "stack_status=CREATE_COMPLETE" \
+ --property "stack_status=DELETE_FAILED" \
+ --property "stack_status=CREATE_FAILED" \
+ | jq -r '.[] | ."Stack Name"'`)
+for stack in ${OS_STACKS[@]}; do
+ if [[ "${ACTIVE_BUILDS[@]}" =~ $stack ]]; then
+ # No need to delete stacks if there exists an active build for them
+ continue
+ else
+ echo "Deleting orphaned stack: $stack"
+ openstack --os-cloud rackspace stack delete --yes $stack
+ fi
done
JOB_SUM=`echo $JOB_NAME | sum | awk '{{ print $1 }}'`
VM_NAME="$JOB_SUM-$BUILD_NUMBER"
-openstack --os-cloud rackspace stack create --wait --timeout 15 -t {stack-template} -e $WORKSPACE/opendaylight-infra-environment.yaml --parameter "job_name=$VM_NAME" --parameter "silo=$SILO" $STACK_NAME
-OS_STATUS=`openstack --os-cloud rackspace stack show -f json -c stack_status $STACK_NAME | jq -r '.stack_status'`
-if [ "$OS_STATUS" != "CREATE_COMPLETE" ]; then
- echo "Failed to initialize infrastructure. Quitting..."
- exit 1
-fi
+
+# seq X refers to waiting for X minutes for OpenStack to return
+# a status that is not CREATE_IN_PROGRESS before giving up.
+OS_TIMEOUT=15 # Minutes to wait for OpenStack VM to come online
+openstack --os-cloud rackspace stack create --timeout $OS_TIMEOUT -t {stack-template} -e $WORKSPACE/opendaylight-infra-environment.yaml --parameter "job_name=$VM_NAME" --parameter "silo=$SILO" $STACK_NAME
+echo "Waiting for $OS_TIMEOUT minutes to create $STACK_NAME."
+for i in `seq $OS_TIMEOUT`; do
+ sleep 60
+ OS_STATUS=`openstack --os-cloud rackspace stack show -f json -c stack_status $STACK_NAME | jq -r '.stack_status'`
+ if [ "$OS_STATUS" == "CREATE_COMPLETE" ]; then
+ echo "Stack initialized on infrastructure successful."
+ break
+ elif [ "$OS_STATUS" == "CREATE_FAILED" ]; then
+ echo "ERROR: Failed to initialize infrastructure. Quitting..."
+ exit 1
+ elif [ "$OS_STATUS" == "CREATE_IN_PROGRESS" ]; then
+ echo "Waiting to initialize infrastructure."
+ continue
+ else
+ echo "Unexpected status: $OS_STATUS"
+ fi
+done
jobs:
- '{project-name}-verify-python-{stream}'
- - '{project-name}-build-rpm-{stream}'
- - '{project-name}-build-rpm-snap-{stream}'
- - '{project-name}-build-deb-{stream}'
- - '{project-name}-test-rpm-{stream}'
- - '{project-name}-test-puppet-{stream}'
+ - 'packaging-build-rpm-{stream}'
+ - 'packaging-build-rpm-snap-{stream}'
+ - 'packaging-build-deb-{stream}'
+ - 'packaging-test-rpm-{stream}'
+ - 'packaging-test-puppet-{stream}'
project: 'integration/packaging'
branch: 'master'
- job-template:
- name: '{project-name}-test-puppet-{stream}'
+ name: 'packaging-test-puppet-{stream}'
node: centos7-docker-2c-4g
- timed: '@daily'
- job-template:
- name: '{project-name}-build-rpm-{stream}'
+ name: 'packaging-build-rpm-{stream}'
node: dynamic_verify
artifacts: '**/*.rpm'
- job-template:
- name: '{project-name}-build-rpm-snap-{stream}'
+ name: 'packaging-build-rpm-snap-{stream}'
node: dynamic_verify
artifacts: '**/*.rpm'
- job-template:
- name: '{project-name}-test-rpm-{stream}'
+ name: 'packaging-test-rpm-{stream}'
node: dynamic_verify
artifacts: '**'
- job-template:
- name: '{project-name}-build-deb-{stream}'
+ name: 'packaging-build-deb-{stream}'
node: ubuntu_mininet
openstack_system_image: CentOS 7 - devstack - 20170120-1710
tools_system_count: 1
tools_system_flavor: 2 GB General Purpose v1
- tools_system_image: Ubuntu 14.04 - mininet - 20170117-0003
+ tools_system_image: Ubuntu 14.04 - mininet - 20170130-0425
# Default Robot framework options
robot-options: ''
build-timeout: '{build-timeout}'
triggers:
- - timed: 'H H/6 * * *'
+ # Attempt to clear up stacks every 30 mins in case we have orphaned stacks
+ - timed: '0,30 * * * *'
builders:
- shell: !include-raw-escape: opendaylight-infra-cleanup-stale-stacks.sh
description: 'Parameter to identify an ODL Gerrit project'
- string:
name: ARCHIVE_ARTIFACTS
- default: '{artifacts} **/target/surefire-reports/*-output.txt'
+ default: '{artifacts} **/target/surefire-reports/*-output.txt **/hs_err_*.log'
description: 'Space separated glob patterns for artifacts to archive into logs.opendaylight.org'
- string:
name: GERRIT_PROJECT
body: |
$PROJECT_NAME - Build # $BUILD_NUMBER - $BUILD_STATUS:
- Check console output at $BUILD_URL to view the results.
+ Please refer to the logs server URL for console logs when possible
+ and use the Jenkins Build URL as a last resort.
+
+ Console Logs URL:
+ https://logs.opendaylight.org/$SILO/$JENKINS_HOSTNAME/$JOB_NAME/$BUILD_NUMBER
+
+ Jenkins Build URL:
+ $BUILD_URL
unstable: true
fixed: true
send-to:
- postbuildscript:
builders:
- shell: |
+ #!/bin/bash
if [ -d "$WORKSPACE/.venv-openstack" ]; then
source $WORKSPACE/.venv-openstack/bin/activate
- openstack --os-cloud rackspace stack delete --yes $STACK_NAME
+ OS_STATUS=`openstack --os-cloud rackspace stack show -f json -c stack_status $STACK_NAME | jq -r '.stack_status'`
+ if [ "$OS_STATUS" != "CREATE_IN_PROGRESS" ] && [ "$OS_STATUS" != "DELETE_IN_PROGRESS" ]; then
+ openstack --os-cloud rackspace stack delete --yes $STACK_NAME
+ fi
fi
- shell: !include-raw: include-raw-deploy-archives.sh
- maven-target:
rtdproject: 'opendaylight-spectrometer'
toxdir: server
nodedir: web
- nodever: 4.4.6
+ nodever: 6.9.4
staging-server: spectrometer03.dfw.opendaylight.org
- job-template:
echo "---> Setup Python"
if [ -e venv-python34/bin/activate ]; then
echo "---> Updating Python dependencies"
+ source venv-python34/bin/activate
else
echo "---> virtualenv not found. Setting up new virtualenv."
- pyvenv venv-python34
+ pyvenv venv-python34 --without-pip
+ source venv-python34/bin/activate
+ wget https://bootstrap.pypa.io/get-pip.py
+ python get-pip.py
pip install -e spectrometer/server
fi
- source venv-python34/bin/activate
pip install --upgrade -r spectrometer/server/requirements.txt
+ pip install --upgrade gunicorn gevent
pip install --upgrade nodeenv
pip freeze
nodeenv --node={nodever} --prebuilt venv-nodejs
fi
source venv-nodejs/bin/activate
- npm install -g spectrometer/web
node -v
npm -v
pkill node
sleep 5 # Sleep 5 seconds for cooldown
cd spectrometer/web
+ npm install
nohup npm start >> ~/node.out &
EOF
- beryllium:
branch: 'stable/beryllium'
jre: 'openjdk7'
- tools_system_image: Ubuntu 14.04 - mininet - 20170117-0003
+ tools_system_image: Ubuntu 14.04 - mininet - 20170130-0425
install:
- only:
--- /dev/null
+heat_template_version: 2016-04-08
+
+parameters:
+ job_name:
+ type: string
+ description: Name of job running this template
+ silo:
+ type: string
+ description: Jenkins Silo job is running in (typically releng|sandbox)
+ vm_0_count:
+ type: number
+ description: Number of VMs for 1st VM type
+ vm_0_flavor:
+ type: string
+ default: 1 GB General Purpose v1
+ description: Flavor to run instance on for 1st VM type
+ vm_0_image:
+ type: string
+ description: Image to run instance on for 1st VM type
+ vm_1_count:
+ type: number
+ description: Number of VMs for 2nd VM type
+ vm_1_flavor:
+ type: string
+ default: 1 GB General Purpose v1
+ description: Flavor to run instance on for 2nd VM type
+ vm_1_image:
+ type: string
+ description: Image to run instance on for 2nd VM type
+ vm_2_count:
+ type: number
+ description: Number of VMs for 3rd VM type
+ vm_2_flavor:
+ type: string
+ default: 1 GB General Purpose v1
+ description: Flavor to run instance on for 3rd VM type
+ vm_2_image:
+ type: string
+
+resources:
+ vm_0_group:
+ type: "OS::Heat::ResourceGroup"
+ properties:
+ count: { get_param: vm_0_count }
+ resource_def:
+ type: generic-server.yaml
+ properties:
+ job_name: { get_param: job_name }
+ silo: { get_param: silo }
+ ssh_key: { get_param: silo }
+ index: "%index%"
+ vm_flavor: { get_param: vm_0_flavor }
+ vm_image: { get_param: vm_0_image }
+
+ vm_1_group:
+ type: "OS::Heat::ResourceGroup"
+ properties:
+ count: { get_param: vm_1_count }
+ resource_def:
+ type: generic-server.yaml
+ properties:
+ job_name: { get_param: job_name }
+ silo: { get_param: silo }
+ ssh_key: { get_param: silo }
+ index: "%index%"
+ vm_flavor: { get_param: vm_1_flavor }
+ vm_image: { get_param: vm_1_image }
+
+ vm_2_group:
+ type: "OS::Heat::ResourceGroup"
+ properties:
+ count: { get_param: vm_2_count }
+ resource_def:
+ type: generic-server.yaml
+ properties:
+ job_name: { get_param: job_name }
+ silo: { get_param: silo }
+ ssh_key: { get_param: silo }
+ index: "%index%"
+ vm_flavor: { get_param: vm_2_flavor }
+ vm_image: { get_param: vm_2_image }
+
+outputs:
+ vm_0_ips:
+ description: IP addresses of the 1st vm types
+ value: { get_attr: [vm_0_group, ip] }
+ vm_1_ips:
+ description: IP addresses of the 2nd vm types
+ value: { get_attr: [vm_1_group, ip] }
+ vm_2_ips:
+ description: IP addresses of the 3rd vm types
+ value: { get_attr: [vm_2_group, ip] }