James E. Blair 2cb2e29e36 Revoke sudo permissions before infra jobs
This should actually be a noop -- the sudo file should not be in
place yet, but the revoke-sudo builder needs to work regardless
of whether the file is in place or not.  This tests the latter
condition.

Next step is to add this to all jobs that run on bare-precise nodes
and then enable sudo on bare-precise nodes.

Change-Id: Ib6241d39cefc2a4df66e6f1b3f2e9e18bd08db09
2014-02-12 08:02:59 -08:00

344 lines
9.1 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: revoke-sudo
builders:
- shell: |
#!/bin/bash
if [ -f /etc/sudoers.d/jenkins-sudo ] ; then
sudo rm /etc/sudoers.d/jenkins-sudo
fi
- 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: bash8
builders:
- shell: "/usr/local/jenkins/slave_scripts/run-bash8.sh {github-org} {project}"
- 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: 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-bundler-prep
builders:
- shell: |
mkdir -p .bundle
ruby1.9.1 /usr/bin/bundle install --path=.bundle
- builder:
name: chef-berkshelf-prep
builders:
- shell: |
mkdir -p .cookbooks
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-rubocop
builders:
- shell: |
COOKBOOK=$(awk '/^name/ {print $NF}' metadata.rb |tr -d \"\')
ruby1.9.1 /usr/bin/bundle exec rubocop
- builder:
name: chef-cookbook-foodcritic
builders:
- shell: |
ruby1.9.1 /usr/bin/bundle exec foodcritic -f any -t ~FC003 -t ~FC023 .
- builder:
name: chef-cookbook-chefspec
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: js-build
builders:
- shell: "/usr/local/jenkins/slave_scripts/run-jsbuild.sh {command} {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: tox
builders:
- shell: "/usr/local/jenkins/slave_scripts/run-tox.sh {envlist} {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 git://git.openstack.org/openstack-infra/devstack-gate
else
cd devstack-gate
git remote set-url origin git://git.openstack.org/openstack-infra/devstack-gate
git remote update
git reset --hard
if ! git clean -x -f ; then
sleep 1
git clean -x -f
fi
git checkout master
git reset --hard remotes/origin/master
if ! git clean -x -f ; then
sleep 1
git clean -x -f
fi
cd ..
fi
- builder:
name: experimental-devstack-checkout
builders:
- shell: |
#!/bin/bash -xe
if [[ ! -e devstack-gate ]]; then
git clone git://git.openstack.org/openstack-infra/devstack-gate
fi
cd devstack-gate
/usr/local/jenkins/slave_scripts/gerrit-git-prep.sh https://review.openstack.org http://zuul.openstack.org git://git.openstack.org
cd ..
- builder:
name: link-logs
builders:
- shell: |
#!/bin/sh
echo "Detailed logs: http://logs.openstack.org/$LOG_PATH/"
- 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: devstack-logs
publishers:
- scp:
site: 'static.openstack.org'
files:
- target: 'logs/$LOG_PATH'
source: 'logs/**'
keep-hierarchy: true
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