Ryan Petrello 17d785611c Provide a more generic run-tox.sh.
Rename run-tox.sh to run-unittests.sh.
Add a new run-tox.sh that takes the tox environment name as its first
argument instead of the python version number suffix. This makes it
easier to run alternative jobs through tox (building docs, building
with different versions of dependencies, etc.).

Based on feedback in https://review.openstack.org/#/c/38218/

Change-Id: I7e5a23fbe88af94bbfbbed4a47c5eb6527ab1d47
2013-09-18 11:57:41 -04:00

340 lines
9.5 KiB
YAML

- builder:
name: gerrit-git-prep
builders:
- shell: "/usr/local/jenkins/slave_scripts/gerrit-git-prep.sh https://review.openstack.org http://zuul.openstack.org git://git.openstack.org"
- builder:
name: coverage
builders:
- shell: "/usr/local/jenkins/slave_scripts/run-cover.sh {github-org} {project}"
- builder:
name: docs
builders:
- shell: "/usr/local/jenkins/slave_scripts/run-docs.sh {github-org} {project}"
- builder:
name: maven-test
builders:
- shell: "mvn test -B"
- builder:
name: maven-package
builders:
- shell: "mvn package -B"
- builder:
name: markdown-docbook
builders:
- shell: "/usr/local/jenkins/slave_scripts/markdown-docbook.sh {filename}"
- builder:
name: gerrit-package
builders:
- shell: "/usr/local/jenkins/slave_scripts/package-gerrit.sh"
- builder:
name: gerrit-preclean
builders:
- shell: |
#!/bin/bash -xe
rm -fr ~/.m2
rm -fr ~/.java
./tools/version.sh --release
- builder:
name: gerrit-postrun
builders:
- shell: "./tools/version.sh --reset"
- builder:
name: pep8
builders:
- shell: "/usr/local/jenkins/slave_scripts/run-pep8.sh {github-org} {project}"
- builder:
name: pylint
builders:
- shell: "/usr/local/jenkins/slave_scripts/run-pylint.sh {github-org} {project}"
- builder:
name: pyflakes
builders:
- shell: "/usr/local/jenkins/slave_scripts/run-pyflakes.sh {github-org} {project}"
- builder:
name: puppet-lint
builders:
- shell: |
if [ -f Modulefile ]; then
MODULE=$(awk '/^name/ {print $NF}' Modulefile |tr -d \"\')
if [ -z "$MODULE" ]; then
echo "Module name not defined in Modulefile"
else
mkdir -p "$MODULE"
rsync -a --exclude="$MODULE" --exclude ".*" . "$MODULE"
cd "$MODULE"
fi
fi
rake lint 2>&1
- builder:
name: puppet-syntax
builders:
- shell: |
find . -iname *.pp | xargs puppet parser validate --modulepath=`pwd`/modules
for f in `find . -iname *.erb` ; do
erb -x -T '-' $f | ruby -c
done
- builder:
name: chef-cookbook-prep
builders:
- shell: |
mkdir -p .cookbooks .bundle
ruby1.9.1 /usr/bin/bundle install --path=.bundle
ruby1.9.1 /usr/bin/bundle exec berks install --path=.cookbooks
COOKBOOK=$(awk '/^name/ {print $NF}' metadata.rb |tr -d \"\')
if [ -z $COOKBOOK ]; then
echo "Cookbook name not defined in metadata.rb"
exit 1
fi
- builder:
name: chef-cookbook-style
builders:
- shell: |
COOKBOOK=$(awk '/^name/ {print $NF}' metadata.rb |tr -d \"\')
ruby1.9.1 /usr/bin/bundle exec tailor
- builder:
name: chef-cookbook-lint
builders:
- shell: |
COOKBOOK=$(awk '/^name/ {print $NF}' metadata.rb |tr -d \"\')
ruby1.9.1 /usr/bin/bundle exec foodcritic -f any -t ~FC003 -t ~FC023 .cookbooks/$COOKBOOK
- builder:
name: chef-cookbook-rspec
builders:
- shell: |
COOKBOOK=$(awk '/^name/ {print $NF}' metadata.rb |tr -d \"\')
ruby1.9.1 /usr/bin/bundle exec rspec .cookbooks/$COOKBOOK
- builder:
name: run-tests
builders:
- shell: "./run-tests.sh {github-org} {project}"
- builder:
name: selenium
builders:
- shell: "/usr/local/jenkins/slave_scripts/run-selenium.sh {github-org} {project}"
- builder:
name: python26
builders:
- shell: "/usr/local/jenkins/slave_scripts/run-unittests.sh 26 {github-org} {project}"
- builder:
name: python27
builders:
- shell: "/usr/local/jenkins/slave_scripts/run-unittests.sh 27 {github-org} {project}"
- builder:
name: python33
builders:
- shell: "/usr/local/jenkins/slave_scripts/run-unittests.sh 33 {github-org} {project}"
- builder:
name: pypy
builders:
- shell: "/usr/local/jenkins/slave_scripts/run-unittests.sh py {github-org} {project}"
- builder:
name: assert-no-extra-files
builders:
- shell: |
#!/bin/bash
OUT=`git ls-files --other --exclude-standard --directory`
if [ -z "$OUT" ]; then
echo "No extra files created during test."
exit 0
else
echo "The following un-ignored files were created during the test:"
echo "$OUT"
exit 0 # TODO: change to 1 to fail tests.
fi
- builder:
name: tarball
builders:
- shell: "/usr/local/jenkins/slave_scripts/run-tarball.sh {github-org} {project}"
- builder:
name: devstack-checkout
builders:
- shell: |
#!/bin/bash -xe
if [[ ! -e devstack-gate ]]; then
git clone https://review.openstack.org/p/openstack-infra/devstack-gate
else
cd devstack-gate
git remote set-url origin https://review.openstack.org/p/openstack-infra/devstack-gate
git remote update
git reset --hard
git clean -x -f
git checkout master
git reset --hard remotes/origin/master
git clean -x -f
cd ..
fi
- builder:
name: link-logs
builders:
- shell: |
#!/bin/sh
if test "$LOG_PATH" ; then
echo "Detailed logs: http://logs.openstack.org/$LOG_PATH/"
else
echo "Detailed logs: http://logs.openstack.org/periodic/$JOB_NAME/$NODE_NAME/$BUILD_NUMBER/"
fi
- builder:
name: update-pypi-mirror
builders:
- shell: |
#!/bin/bash -xe
/usr/local/bin/run-mirror -c /home/jenkins/pypimirror/etc/pypi-mirror.yaml
find /home/jenkins/pypimirror/mirror/ \( -name index.html -or -name full.html \) -delete
rsync -a --ignore-existing --itemize-changes /home/jenkins/pypimirror/mirror/ jenkins@static.openstack.org:/srv/static/pypi/
# ======================================================================
- publisher:
name: tarball
publishers:
- archive:
artifacts: 'dist/*.tar.gz'
- scp:
site: '{site}'
files:
- target: 'tarballs/{project}/'
source: 'dist/*.tar.gz'
- publisher:
name: war
publishers:
- archive:
artifacts: '{warfile}'
- scp:
site: '{site}'
files:
- target: '{target}'
source: '{warfile}'
- publisher:
name: console-log
publishers:
- scp:
site: 'static.openstack.org'
files:
- target: 'logs/$LOG_PATH'
copy-console: true
copy-after-failure: true
- publisher:
name: console-log-periodic
publishers:
- scp:
site: 'static.openstack.org'
files:
- target: 'logs/periodic/$JOB_NAME/$NODE_NAME/$BUILD_NUMBER'
copy-console: true
copy-after-failure: true
- publisher:
name: devstack-logs
publishers:
- scp:
site: 'static.openstack.org'
files:
- target: 'logs/$LOG_PATH'
source: 'logs/**'
keep-hierarchy: true
copy-after-failure: true
- target: 'logs/$LOG_PATH'
source: '**/testr_results.html.gz'
keep-hierarchy: false
copy-after-failure: true
- target: 'logs/$LOG_PATH'
source: '**/subunit_log.txt.gz'
keep-hierarchy: false
copy-after-failure: true
- publisher:
name: devstack-logs-periodic
publishers:
- scp:
site: 'static.openstack.org'
files:
- target: 'logs/periodic/$JOB_NAME/$NODE_NAME/$BUILD_NUMBER'
source: 'logs/**'
keep-hierarchy: true
copy-after-failure: true
- target: 'logs/periodic/$JOB_NAME/$NODE_NAME/$BUILD_NUMBER'
source: '**/testr_results.html.gz'
keep-hierarchy: false
copy-after-failure: true
- target: 'logs/periodic/$JOB_NAME/$NODE_NAME/$BUILD_NUMBER'
source: '**/subunit_log.txt.gz'
keep-hierarchy: false
copy-after-failure: true
- publisher:
name: coverage-log
publishers:
- scp:
site: 'static.openstack.org'
files:
- target: 'logs/$LOG_PATH'
source: 'cover/**'
keep-hierarchy: true
copy-after-failure: true
- publisher:
name: test-results
publishers:
- scp:
site: 'static.openstack.org'
files:
- target: 'logs/$LOG_PATH'
source: '**/*nose_results.html'
keep-hierarchy: false
copy-after-failure: true
- target: 'logs/$LOG_PATH'
source: '**/*testr_results.html.gz'
keep-hierarchy: false
copy-after-failure: true
- target: 'logs/$LOG_PATH'
source: '.testrepository/tmp*'
keep-hierarchy: false
copy-after-failure: true
- target: 'logs/$LOG_PATH'
source: '**/*subunit_log.txt.gz'
keep-hierarchy: false
copy-after-failure: true
- publisher:
name: upload-sphinx-draft
publishers:
- scp:
site: 'static.openstack.org'
files:
- target: 'docs-draft/$LOG_PATH'
source: 'doc/build/html/**'
keep-hierarchy: true
copy-after-failure: true