- builder: name: gerrit-git-prep builders: - shell: "/usr/local/jenkins/slave_scripts/gerrit-git-prep.sh https://review.openstack.org git://git.openstack.org" - builder: name: branch-git-prep builders: - shell: | #!/bin/bash export BRANCH={branch} /usr/local/jenkins/slave_scripts/gerrit-git-prep.sh https://review.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: 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: bashate builders: - shell: "/usr/local/jenkins/slave_scripts/run-bashate.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: npm-install builders: - shell: "sudo apt-get install -y nodejs npm" - shell: "sudo ln /usr/bin/nodejs /usr/local/bin/node" - 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 if [ -f Gemfile ]; then mkdir .bundled_gems export GEM_HOME=`pwd`/.bundled_gems bundle install bundle exec rake lint 2>&1 else rake lint 2>&1 fi - 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: puppet-apply builders: - shell: "./test.sh" - builder: name: chef-bundler-prep builders: - shell: | mkdir -p .bundle ruby1.9.1 /usr/bin/bundle config --global jobs $(nproc) 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: | if grep rubocop: Strainerfile; then ruby1.9.1 /usr/bin/bundle exec strainer test --cookbooks-path=.cookbooks --only=rubocop else ruby1.9.1 /usr/bin/bundle exec rubocop fi - builder: name: chef-cookbook-foodcritic builders: - shell: | if grep foodcritic: Strainerfile; then ruby1.9.1 /usr/bin/bundle exec strainer test --cookbooks-path=.cookbooks --only=foodcritic else ruby1.9.1 /usr/bin/bundle exec foodcritic -f any -t ~FC003 -t ~FC023 . fi - builder: name: chef-cookbook-chefspec builders: - shell: | COOKBOOK=$(awk '/^name/ {print $NF}' metadata.rb |tr -d \"\') if grep chefspec: Strainerfile; then ruby1.9.1 /usr/bin/bundle exec strainer test --cookbooks-path=.cookbooks --only=chefspec else ruby1.9.1 /usr/bin/bundle exec rspec .cookbooks/$COOKBOOK/spec fi - 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: python34 builders: - shell: "/usr/local/jenkins/slave_scripts/run-unittests.sh 34 {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: | #!/bin/bash -xe /usr/local/jenkins/slave_scripts/run-tarball.sh {github-org} {project} /usr/local/jenkins/slave_scripts/run-wheel.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 git://git.openstack.org cd .. - builder: name: link-logs builders: - shell: | #!/bin/sh echo "Detailed logs: http://logs.openstack.org/$LOG_PATH/" - builder: name: net-info builders: - shell: | #!/bin/sh export PATH=$PATH:/sbin echo "Network interface addresses..." ip address show echo "Network routing tables..." ip route show ip -6 route show echo "Network neighbors..." ip neighbor show - builder: name: install-buck builders: - shell: | #!/bin/bash -xe if [[ ! -d "buck" ]] then git clone https://gerrit.googlesource.com/buck cd buck ant fi - builder: name: zuul_swift_upload builders: - shell: "/usr/local/jenkins/slave_scripts/zuul_swift_upload.py --name {zuul_log_instruction_set} {upload_source}" - builder: name: zuul_swift_upload_logs builders: - zuul_swift_upload: zuul_log_instruction_set: logs upload_source: '{upload_source}' - builder: name: zuul_swift_upload_console_log builders: - shell: "/usr/local/jenkins/slave_scripts/grab_console_log.sh" - zuul_swift_upload_logs: upload_source: '/tmp/console.txt' - builder: name: zuul_swift_upload_logs_with_console builders: - shell: "/usr/local/jenkins/slave_scripts/grab_console_log.sh" - zuul_swift_upload_logs: upload_source: '{upload_source} /tmp/console.txt' # ====================================================================== - wrapper: name: build-timeout wrappers: - timeout: timeout: '{timeout}' timeout-var: 'BUILD_TIMEOUT' fail: true # ====================================================================== - publisher: name: tarball publishers: - archive: artifacts: 'dist/*.tar.gz' - scp: site: '{site}' files: - target: 'tarballs/{project}/' source: 'dist/*.tar.gz' - publisher: name: wheel publishers: - archive: artifacts: 'dist/*.whl' - scp: site: '{site}' files: - target: 'tarballs/{project}/' source: 'dist/*.whl' - 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: coverage-log-ruby publishers: - scp: site: 'static.openstack.org' files: - target: 'logs/$LOG_PATH' source: 'coverage/**' 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 - publisher: name: upload-docs-draft publishers: - scp: site: 'static.openstack.org' files: - target: 'docs-draft/$LOG_PATH/' source: 'publish-docs/**' keep-hierarchy: true copy-after-failure: true - publisher: name: upload-to-docs-site publishers: - ftp: site: docs.openstack.org source: 'publish-docs/**' target: '/' remove-prefix: 'publish-docs/' - publisher: name: upload-doc-build-results publishers: - scp: site: 'static.openstack.org' files: - target: 'logs/$LOG_PATH' source: 'build-*.log.gz' keep-hierarchy: false copy-after-failure: true