project-config/jenkins/jobs/python-jobs.yaml
Jeremy Stanley da67129d34 Remove pointless tarball-site parameter
Across the entirety of our job config corpus, we only ever set the
tarball-site parameter to tarballs.openstack.org. Instead just set
it directly in the publishers where it's needed and reduce
unwarranted confusion for people writing job configs. This also
allows us to get rid of the parameterized sites in the tarball,
wheel and war publishers.

Change-Id: I31109f41177b8c07177d7ed8ef16cbfd135131ef
2016-12-19 14:48:08 +00:00

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