- builder: name: gerrit-git-prep builders: - shell: "/usr/local/jenkins/slave_scripts/gerrit-git-prep.sh https://review.openstack.org http://zuul.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" - builder: name: maven-package builders: - shell: "mvn package" - 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: | test -d modules || {{ ln -s . {project} cd {project} }} rake lint - 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-tox.sh 26 {github-org} {project}" - builder: name: python27 builders: - shell: "/usr/local/jenkins/slave_scripts/run-tox.sh 27 {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: devstack-inprogress builders: - trigger-builds: - project: devstack-update-inprogress predefined-parameters: DEVSTACK_NODE_NAME=${NODE_NAME} - builder: name: link-logs builders: - shell: | #!/bin/sh if test "$ZUUL_CHANGE" ; then echo "Detailed logs: http://logs.openstack.org/$ZUUL_CHANGE/$ZUUL_PATCHSET/$ZUUL_PIPELINE/$JOB_NAME/$BUILD_NUMBER/" elif test "$ZUUL_SHORT_NEWREV" ; then echo "Detailed logs: http://logs.openstack.org/$ZUUL_SHORT_NEWREV/$ZUUL_PIPELINE/$JOB_NAME/$BUILD_NUMBER/" else echo "Detailed logs: http://logs.openstack.org/periodic/$JOB_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 /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/$ZUUL_CHANGE/$ZUUL_PATCHSET/$ZUUL_PIPELINE/$JOB_NAME/$BUILD_NUMBER' copy-console: true copy-after-failure: true - publisher: name: console-log-post publishers: - scp: site: 'static.openstack.org' files: - target: 'logs/$ZUUL_SHORT_NEWREV/$ZUUL_PIPELINE/$JOB_NAME/$BUILD_NUMBER' copy-console: true copy-after-failure: true - publisher: name: console-log-periodic publishers: - scp: site: 'static.openstack.org' files: - target: 'logs/periodic/$JOB_NAME/$BUILD_NUMBER' copy-console: true copy-after-failure: true - publisher: name: devstack-logs publishers: - scp: site: 'static.openstack.org' files: - target: 'logs/$ZUUL_CHANGE/$ZUUL_PATCHSET/$ZUUL_PIPELINE/$JOB_NAME/$BUILD_NUMBER' source: 'logs/**' keep-hierarchy: true copy-after-failure: true - publisher: name: devstack-logs-periodic publishers: - scp: site: 'static.openstack.org' files: - target: 'logs/periodic/$JOB_NAME/$BUILD_NUMBER' source: 'logs/**' keep-hierarchy: true copy-after-failure: true - publisher: name: devstack-complete publishers: - trigger-parameterized-builds: - project: devstack-update-complete when: complete predefined-parameters: | DEVSTACK_NODE_NAME=${NODE_NAME} UPSTREAM_BUILD_URL=${BUILD_URL} UPSTREAM_JOB_NAME=${JOB_NAME} UPSTREAM_BRANCH=${ZUUL_BRANCH} - publisher: name: coverage-log publishers: - scp: site: 'static.openstack.org' files: - target: 'logs/$ZUUL_CHANGE/$ZUUL_PATCHSET/$ZUUL_PIPELINE/$JOB_NAME/$BUILD_NUMBER' source: 'cover/**' keep-hierarchy: true copy-after-failure: true - publisher: name: coverage-log-post publishers: - scp: site: 'static.openstack.org' files: - target: 'logs/$ZUUL_SHORT_NEWREV/$ZUUL_PIPELINE/$JOB_NAME/$BUILD_NUMBER' source: 'cover/**' keep-hierarchy: true copy-after-failure: true