# we don't want to do SSH host key checking on Rackspace spin-up systems
# Dallas (ODL)
-Host 10.30.11.*
- StrictHostKeyChecking no
- UserKnownHostsFile /dev/null
-
-# Dallas (ODLForge)
-Host 10.30.12.*
- StrictHostKeyChecking no
- UserKnownHostsFile /dev/null
-
-# Chicago (ODL)
-Host 10.30.32.*
+Host 10.29.12.* 10.29.13.* 10.29.14.* 10.29.15.*
StrictHostKeyChecking no
UserKnownHostsFile /dev/null
ROBOT_VENV=`mktemp -d --suffix=robot_venv`
echo ROBOT_VENV=${ROBOT_VENV} >> ${WORKSPACE}/env.properties
-virtualenv ${ROBOT_VENV}
+# The --system-site-packages parameter allows us to pick up system level
+# installed packages. This allows us to bake matplotlib which takes very long
+# to install into the image.
+virtualenv --system-site-packages ${ROBOT_VENV}
source ${ROBOT_VENV}/bin/activate
set -exu
# Modules for longevity framework robot library
pip install elasticsearch==1.7.0 elasticsearch-dsl==0.0.11
-pip install --upgrade matplotlib
# Print installed versions.
pip freeze
project: '{project}'
branch: '{branch}'
refspec: 'refs/heads/{branch}'
- artifacts: '{archive-artifacts} **/dependency_tree.txt'
+ artifacts: '{archive-artifacts} **/dependency_tree.txt **/*.hprof'
- integration-patch-refspec:
branch: '$GERRIT_REFSPEC'
project: '{project}'
branch: '{branch}'
refspec: 'refs/heads/{branch}'
- artifacts: '{archive-artifacts} **/dependency_tree.txt'
+ artifacts: '{archive-artifacts} **/dependency_tree.txt **/*.hprof'
scm:
- gerrit-trigger-scm:
project: '{project}'
branch: '{branch}'
refspec: 'refs/heads/{branch}'
- artifacts: '{archive-artifacts}'
+ artifacts: '{archive-artifacts} **/*.hprof'
- integration-branch:
branch: '{branch}'
- integration-bundleurl:
project: '{project}'
branch: '{branch}'
refspec: 'refs/heads/{branch}'
- artifacts: '{archive-artifacts}'
+ artifacts: '{archive-artifacts} **/*.hprof'
- integration-branch:
branch: '{branch}'
- integration-bundleurl:
--- /dev/null
+#!/bin/bash
+
+# Options:
+# -x: Echo commands
+# -e: Fail on errors
+# -o pipefail: Fail on errors in scripts this calls, give stacktrace
+set -ex -o pipefail
+
+# Install required packages
+virtualenv rpm_build
+source rpm_build/bin/activate
+pip install --upgrade pip
+pip install -r $WORKSPACE/packaging/rpm/requirements.txt
+
+# Build release specified by build params
+$WORKSPACE/packaging/rpm/build.py --major "$VERSION_MAJOR" \
+ --minor "$VERSION_MINOR" \
+ --patch "$VERSION_PATCH" \
+ --rpm "$RPM_RELEASE" \
+ --sysd_commit "$SYSD_COMMIT" \
+ --codename "$CODENAME" \
+ --download_url "$DOWNLOAD_URL" \
+ --changelog_date "$CHANGELOG_DATE" \
+ --changelog_name "$CHANGELOG_NAME" \
+ --changelog_email "$CHANGELOG_EMAIL"
- project:
name: packaging
+ project-name: packaging
+
jobs:
- '{project-name}-verify-python-{stream}'
+ - '{project-name}-build-rpm-{stream}'
+
+ project: 'integration/packaging'
stream:
- master:
branch: 'master'
- project: 'integration/packaging'
- project-name: 'packaging'
+- job-template:
+ name: '{project-name}-build-rpm-{stream}'
+
+ node: dynamic_verify
+
+ parameters:
+ - opendaylight-infra-parameters:
+ project: '{project}'
+ branch: '{branch}'
+ refspec: 'refs/heads/{branch}'
+ artifacts: 'rpm/cache/*.srpm rpm/cache/*.rpm'
+ - string:
+ name: VERSION_MAJOR
+ default: '4'
+ description: 'OpenDaylight major (element) version number to build'
+ - string:
+ name: VERSION_MINOR
+ default: '2'
+ description: 'OpenDaylight minor (SR) version number to build'
+ - string:
+ name: VERSION_PATCH
+ default: '0'
+ description: 'OpenDaylight patch version to build'
+ - string:
+ name: RPM_RELEASE
+ default: '1'
+ description: 'RPM version for the given ODL major.minor.patch'
+ - string:
+ name: SYSD_COMMIT
+ default: 'c6d7ee1f21d62ff8ffb741c7a12c3d8d3aa3d6ed'
+ description: 'Version of ODL systemd unitfile to download and package in ODL RPM'
+ - string:
+ name: CODENAME
+ default: 'Beryllium-SR2'
+ description: 'Elemental codename for the ODL release, including SR if applicable'
+ - string:
+ name: DOWNLOAD_URL
+ default: 'https://nexus.opendaylight.org/content/repositories/opendaylight.release/org/opendaylight/integration/distribution-karaf/0.4.2-Beryllium-SR2/distribution-karaf-0.4.2-Beryllium-SR2.tar.gz'
+ description: 'URL to ODL tarball artifact to repackage into RPM'
+ - string:
+ name: CHANGELOG_DATE
+ default: 'Wed May 11 2016'
+ description: 'Date this RPM was defined'
+ - string:
+ name: CHANGELOG_NAME
+ default: 'Jenkins'
+ description: 'Name of person who defined RPM'
+ - string:
+ name: CHANGELOG_EMAIL
+ default: 'jenkins-donotreply@opendaylight.org'
+ description: 'Email of person who defined RPM'
+
+ scm:
+ - integration-gerrit-scm:
+ basedir: 'packaging'
+ refspec: '$GERRIT_REFSPEC'
+ branch: 'master'
+
+ builders:
+ - shell: !include-raw: include-raw-build-rpm.sh
- ssh-agent-credentials:
users:
- 'opendaylight-jenkins-ssh'
+ - jclouds:
+ single-use: True
- openstack:
single-use: True
- maven-target:
maven-version: '{mvn33}'
pom: '$GERRIT_PROJECT/pom.xml'
- goals: 'clean install dependency:tree -DoutputFile=dependency_tree.txt -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}'
+ 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: '{mvn-settings}'
yum install -y -q yum-utils unzip sshuttle nc libffi-devel openssl-devel
# Install dependencies for matplotlib library used in longevity framework
-yum-builddep -y python-matplotlib
+yum install -y -q libpng-devel freetype-devel python-matplotlib
# install crudini command line tool for editing config files
yum install -y -q crudini