- job-template: name: '{name}-coverage-{node}' wrappers: - build-timeout: timeout: 40 - timestamps builders: - print-template-name: template-name: "{template-name}" - zuul-git-prep-upper-constraints - install-distro-packages - extra-test-setup - revoke-sudo - coverage: env: cover publishers: - scp: site: 'static.openstack.org' files: - target: 'logs/$LOG_PATH' source: 'cover/**' keep-hierarchy: true copy-after-failure: true - test-results - console-log node: '{node}' - job-template: name: '{name}-coverage-db-{node}' description: 'Same job as {name}-coverage but sets up databases.' wrappers: - build-timeout: timeout: 40 - timestamps builders: - print-template-name: template-name: "{template-name}" - zuul-git-prep-upper-constraints - install-distro-packages - mysql-prep - pgsql-prep - mysql-db: db_name: openstack_citest - pgsql-db: db_name: openstack_citest - revoke-sudo - coverage: env: cover publishers: - scp: site: 'static.openstack.org' files: - target: 'logs/$LOG_PATH' source: 'cover/**' keep-hierarchy: true copy-after-failure: true - test-results - console-log node: '{node}' - job-template: name: 'gate-{name}-compare-coverage-{node}' wrappers: - build-timeout: timeout: 75 - timestamps builders: - print-template-name: template-name: "{template-name}" - zuul-git-prep-upper-constraints - install-distro-packages - revoke-sudo - coverage: env: compare-cover publishers: - scp: site: 'static.openstack.org' files: - target: 'logs/$LOG_PATH' source: 'cover/**' keep-hierarchy: true copy-after-failure: true - test-results - console-log node: '{node}' - job-template: name: 'gate-{name}-pep8-{node}' builders: - print-template-name: template-name: "{template-name}" - zuul-git-prep-upper-constraints - install-distro-packages # We force the removal of our wheel mirrors from pip.conf to ensure we can # build the required wheels if needed. This helps to ensure that # bindep.txt is up-to-date. - shell: | #!/bin/bash -xe # Write global pip configuration minus wheel mirror. awk '!/extra-index-url/' /etc/pip.conf > /tmp/pip.conf sudo mv /tmp/pip.conf /etc/ sudo chown root:root /etc/pip.conf sudo chmod 0644 /etc/pip.conf - revoke-sudo - pep8: env: pep8 publishers: - test-results - console-log node: '{node}' - job-template: name: 'gate-{name}-pylint-{node}' builders: - print-template-name: template-name: "{template-name}" - zuul-git-prep-upper-constraints - install-distro-packages - revoke-sudo - pylint: env: pylint publishers: - test-results - console-log node: '{node}' - job-template: name: 'gate-{name}-python27-{node}' wrappers: - build-timeout: timeout: 50 - timestamps builders: - print-template-name: template-name: "{template-name}" - zuul-git-prep-upper-constraints - install-distro-packages - extra-test-setup - revoke-sudo - python27 - assert-no-extra-files publishers: - test-results - console-log node: '{node}' - job-template: name: 'gate-{name}-python27-db-{node}' description: 'Same job as gate-{name}-python27 but sets up databases.' wrappers: - build-timeout: timeout: 50 - timestamps builders: - print-template-name: template-name: "{template-name}" - zuul-git-prep-upper-constraints - install-distro-packages - mysql-prep - pgsql-prep - mysql-db: db_name: openstack_citest - pgsql-db: db_name: openstack_citest - revoke-sudo - python27 - assert-no-extra-files publishers: - test-results - console-log node: '{node}' - job-template: name: 'gate-cross-{name}-python27-{node}' description: 'Same job as gate-{name}-python27 but clones {name}' wrappers: - build-timeout: timeout: 50 - timestamps builders: - print-template-name: template-name: "{template-name}" - zuul-git-prep-upper-constraints-cross: project: openstack/{name} - install-distro-packages - revoke-sudo - python27 - assert-no-extra-files publishers: - test-results - console-log node: '{node}' - job-template: name: 'gate-cross-{name}-python27-db-{node}' description: 'Same job as gate-cross-{name}-python27 but sets up databases.' wrappers: - build-timeout: timeout: 50 - timestamps builders: - print-template-name: template-name: "{template-name}" - zuul-git-prep-upper-constraints-cross: project: openstack/{name} - install-distro-packages - mysql-prep - pgsql-prep - mysql-db: db_name: openstack_citest - pgsql-db: db_name: openstack_citest - revoke-sudo - python27 - assert-no-extra-files publishers: - test-results - console-log node: '{node}' - job-template: name: 'periodic-{name}-{python}-with-oslo-master' node: ubuntu-xenial wrappers: - build-timeout: timeout: 50 - timestamps builders: - print-template-name: template-name: "{template-name}" - zuul-git-branch-prep-upper-constraints: branch: master - install-distro-packages # The job runs with different repositories and invokes unittests, some # of these repositories need a database set up. - mysql-prep - pgsql-prep - mysql-db: db_name: openstack_citest - pgsql-db: db_name: openstack_citest - revoke-sudo - shell: "/usr/local/jenkins/slave_scripts/run-tox-with-oslo-master.sh {python}" - assert-no-extra-files publishers: - test-results - console-log - job-template: name: 'gate-{name}-python34' wrappers: - build-timeout: timeout: 40 - timestamps builders: - print-template-name: template-name: "{template-name}" - zuul-git-prep-upper-constraints - install-distro-packages - extra-test-setup - revoke-sudo - python34 - assert-no-extra-files publishers: - test-results - console-log node: ubuntu-trusty - job-template: name: 'gate-{name}-python34-db' description: 'Same job as gate-{name}-python34 but sets up databases.' wrappers: - build-timeout: timeout: 40 - timestamps builders: - print-template-name: template-name: "{template-name}" - zuul-git-prep-upper-constraints - install-distro-packages - mysql-prep - pgsql-prep - mysql-db: db_name: openstack_citest - pgsql-db: db_name: openstack_citest - revoke-sudo - python34 - assert-no-extra-files publishers: - test-results - console-log node: ubuntu-trusty - job-template: name: 'gate-{name}-python35-nv' wrappers: - build-timeout: timeout: 40 - timestamps builders: - print-template-name: template-name: "{template-name}" - zuul-git-prep-upper-constraints - install-distro-packages - extra-test-setup - revoke-sudo - python35 - assert-no-extra-files publishers: - test-results - console-log node: ubuntu-xenial - job-template: name: 'gate-{name}-python35' wrappers: - build-timeout: timeout: 40 - timestamps builders: - print-template-name: template-name: "{template-name}" - zuul-git-prep-upper-constraints - install-distro-packages - extra-test-setup - revoke-sudo - python35 - assert-no-extra-files publishers: - test-results - console-log node: ubuntu-xenial - job-template: name: 'gate-{name}-python35-db-nv' description: 'Same job as gate-{name}-python35-nv but sets up databases.' wrappers: - build-timeout: timeout: 40 - timestamps builders: - print-template-name: template-name: "{template-name}" - zuul-git-prep-upper-constraints - install-distro-packages - mysql-prep - pgsql-prep - mysql-db: db_name: openstack_citest - pgsql-db: db_name: openstack_citest - revoke-sudo - python35 - assert-no-extra-files publishers: - test-results - console-log node: ubuntu-xenial - job-template: name: 'gate-{name}-python35-db' description: 'Same job as gate-{name}-python35 but sets up databases.' wrappers: - build-timeout: timeout: 40 - timestamps builders: - print-template-name: template-name: "{template-name}" - zuul-git-prep-upper-constraints - install-distro-packages - mysql-prep - pgsql-prep - mysql-db: db_name: openstack_citest - pgsql-db: db_name: openstack_citest - revoke-sudo - python35 - assert-no-extra-files publishers: - test-results - console-log node: ubuntu-xenial - job-template: name: 'gate-{name}-pypy' wrappers: - build-timeout: timeout: 40 - timestamps builders: - print-template-name: template-name: "{template-name}" - zuul-git-prep-upper-constraints - install-distro-packages - revoke-sudo - pypy - assert-no-extra-files publishers: - test-results - console-log node: ubuntu-xenial - job-template: name: 'gate-{name}-pypy-db' description: 'Same job as gate-{name}-pypy but sets up databases.' wrappers: - build-timeout: timeout: 40 - timestamps builders: - print-template-name: template-name: "{template-name}" - zuul-git-prep-upper-constraints - install-distro-packages - mysql-prep - pgsql-prep - mysql-db: db_name: openstack_citest - pgsql-db: db_name: openstack_citest - revoke-sudo - pypy - assert-no-extra-files publishers: - test-results - console-log node: ubuntu-xenial - job-template: name: 'gate-{name}-docs-{node}' builders: - print-template-name: template-name: "{template-name}" - zuul-git-prep-upper-constraints - install-distro-packages - revoke-sudo - docs publishers: - upload-sphinx-draft - test-results - console-log node: '{node}' - job-template: name: 'gate-{name}-tox-{envlist}-{node}' description: 'Runs tox, does not set up any databases.' node: '{node}' wrappers: - build-timeout: timeout: 40 - timestamps builders: - print-template-name: template-name: "{template-name}" - zuul-git-prep-upper-constraints - install-distro-packages - extra-test-setup - revoke-sudo - run-tox: envlist: '{envlist}' - assert-no-extra-files publishers: - test-results - console-log - job-template: name: 'gate-{name}-tox-with-sudo-{envlist}' description: 'Same job as gate-{name}-tox-{envlist}, allows sudo access.' node: ubuntu-xenial wrappers: - build-timeout: timeout: 40 - timestamps builders: - print-template-name: template-name: "{template-name}" - zuul-git-prep-upper-constraints - install-distro-packages - run-tox: envlist: '{envlist}' - assert-no-extra-files publishers: - test-results - console-log - job-template: name: 'gate-{name}-tox-xfs-tmp-{envlist}-{node}' description: 'Same job as gate-{name}-tox-{envlist}, but with TMPDIR set to an xfs mount point.' node: '{node}' wrappers: - build-timeout: timeout: 40 - timestamps builders: - print-template-name: template-name: "{template-name}" - zuul-git-prep-upper-constraints - install-distro-packages - mount-xfs-tmp-space: xfs_mount_point: "$HOME/xfstmp" xfs_file: "$HOME/1G_xfs_file" - revoke-sudo - tox-with-tmpdir-passed-in: new_tmpdir_loc: "$HOME/xfstmp" envlist: '{envlist}' - assert-no-extra-files publishers: - test-results - console-log - job-template: name: 'gate-{name}-tox-db-{envlist}-{node}' description: 'Same job as gate-{name}-tox-db-{envlist} but on node {node}' node: '{node}' wrappers: - build-timeout: timeout: 40 - timestamps builders: - print-template-name: template-name: "{template-name}" - zuul-git-prep-upper-constraints - install-distro-packages - mysql-prep - pgsql-prep - mysql-db: db_name: openstack_citest - pgsql-db: db_name: openstack_citest - revoke-sudo - run-tox: envlist: '{envlist}' - assert-no-extra-files publishers: - test-results - console-log - job-template: name: '{name}-tarball' node: ubuntu-xenial builders: - print-template-name: template-name: "{template-name}" - zuul-release-git-prep-upper-constraints - install-distro-packages - revoke-sudo - tarball: env: venv publishers: - tarball: project: '{name}' - wheel: project: '{name}' - test-results - console-log - job-template: name: '{name}-branch-tarball' node: ubuntu-xenial builders: - print-template-name: template-name: "{template-name}" - zuul-git-prep-upper-constraints - install-distro-packages - revoke-sudo - tarball: env: venv - shell: | #!/bin/bash -xe BRANCH=$ZUUL_REFNAME BRANCH_PATH=`echo $BRANCH | tr / -` mv dist/*.tar.gz dist/{name}-$BRANCH_PATH.tar.gz publishers: - tarball: project: '{name}' - test-results - console-log - job-template: name: 'gate-{name}-requirements' node: ubuntu-xenial builders: - print-template-name: template-name: "{template-name}" - gerrit-git-prep - install-distro-packages - revoke-sudo - shell: | #!/bin/bash -xe /usr/local/jenkins/slave_scripts/project-requirements-change.py $ZUUL_BRANCH publishers: - test-results - console-log - job-template: name: '{name}-announce-release' node: ubuntu-trusty builders: - print-template-name: template-name: "{template-name}" - gerrit-git-prep - install-distro-packages - shell: | #!/bin/bash set -x TOOLS_TMP=$HOME/release-tools mkdir -p $TOOLS_TMP # Report on the ZUUL settings. env | grep '^ZUUL_' # Check out the release-tools, ignoring any other ZUUL # variables that might confuse the cloner and cause it to # try to check out anything like the commit that was just # tagged or to look for a branch (we always want the master # version of the tools). for v in $(env | grep '^ZUUL_' | cut -f1 -d=); do unset $v done /usr/zuul-env/bin/zuul-cloner \ --cache-dir /opt/git \ --workspace $TOOLS_TMP \ git://git.openstack.org \ openstack-infra/release-tools TOOLS_DIR=$TOOLS_TMP/openstack-infra/release-tools # Install the distro packages needed by the release # tools. These won't necessarily be included in the set # installed by the builder step above, so we have to do it # explicitly by changing to the tools directory and then # running the same script. (cd $TOOLS_DIR && /usr/local/jenkins/slave_scripts/install-distro-packages.sh) - revoke-sudo - shell: | #!/bin/bash set -x TOOLS_TMP=$HOME/release-tools TOOLS_DIR=$TOOLS_TMP/openstack-infra/release-tools # Save the version that was just tagged by parsing # ref/tags/VALUE to get VALUE. VERSION=$(echo $ZUUL_REF | cut -f3 -d/) # Run the announce script. $TOOLS_DIR/announce.sh $WORKSPACE $VERSION publishers: - test-results - console-log - job-group: name: periodic-python-jobs-with-oslo-master jobs: - 'periodic-{name}-{python}-with-oslo-master': python: - py27 - py35 - job-group: name: periodic-python-jobs-with-neutron-lib-master jobs: - 'periodic-{name}-{python}-with-neutron-lib-master': python: - py35 - job-group: name: python-jobs node: - ubuntu-trusty - ubuntu-xenial jobs: - 'gate-{name}-pep8-{node}' - 'gate-{name}-python27-{node}' - 'gate-{name}-python34' - 'gate-{name}-python35' - 'gate-{name}-docs-{node}' - 'gate-{name}-requirements' - '{name}-branch-tarball' # pylint isn't standard # pypy isn't standard # gate-{name}-tox-{envlist} also isn't standard, but is reserved for # projects that want to run specific jobs via tox - job-group: name: cross-python-jobs node: ubuntu-xenial jobs: - 'gate-cross-{name}-python27-{node}' # This is the legacy way of setting up databases. Projects should now # add tools/test-setup.sh to their repositories and use the normal # python-jobs instead. - job-group: name: python-db-jobs node: - ubuntu-trusty - ubuntu-xenial jobs: - 'gate-{name}-pep8-{node}' - 'gate-{name}-python27-db-{node}' - 'gate-{name}-python34-db' - 'gate-{name}-python35-db' - 'gate-{name}-docs-{node}' - 'gate-{name}-requirements' - '{name}-branch-tarball' # pylint isn't standard # pypy isn't standard # gate-{name}-tox-{envlist} also isn't standard, but is reserved for # projects that want to run specific jobs via tox - job-group: name: cross-python-db-jobs node: ubuntu-xenial jobs: - 'gate-cross-{name}-python27-db-{node}' - job-group: name: openstack-server-release-jobs jobs: - '{name}-announce-release' - '{name}-tarball' - '{name}-tarball-signing' - job-group: name: coverage-jobs node: - ubuntu-trusty - ubuntu-xenial jobs: - '{name}-coverage-{node}' - job-group: name: coverage-db-jobs node: - ubuntu-trusty - ubuntu-xenial jobs: - '{name}-coverage-db-{node}'