project-config/jenkins/jobs/python-jobs.yaml

845 lines
19 KiB
YAML

- 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}'