- 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: 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-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: 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 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 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 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