project-config/jenkins/jobs/python-jobs.yaml
Paul Michali 9afb668a6b Extend job time for coverage comparisons
The networking-cisco project has a tox "cover" target that is tied to the
coverage job. This tox target does a coverage check of baseline code, and then
coverage check of the change-set. The reports are compared to determine if
coverage is better or worse for a pass/fail decision for the job.

This job has been timing out on some commits. After discussion with infra [1],
a new coverage job (compare-cover) is being proposed, and will use a 75 minute
timeout. We may be able to reduce this in the future, based on run results.

Made the job template with gate-{name}-compare-coverage-{node}, so that it can
be used on other projects. For networking-cisco, which is now branchless, the
job gate-networking-cisco-compare-coverage-ubuntu-xenial will be used. Commits
for networking-cisco will be on master, and will use the ubuntu-xenial node.

Note: networking-cisco tox.ini has been modified, under [2], to associate the
target compare-cover, with the script that performs this comparison based
coverage test.

[1] https://goo.gl/J3Y7YV
[2] https://review.openstack.org/#/c/385575

Change-Id: Ifcc754055d8d1749fd24e707232948ca731980e6
2016-10-14 08:37:16 -04:00

744 lines
17 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
- 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
- revoke-sudo
- pep8:
env: pep8
publishers:
- test-results
- console-log
node: '{node}'
- job-template:
name: 'gate-{name}-pylint'
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: ubuntu-trusty
- 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
- 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
- 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{suffix}'
wrappers:
- build-timeout:
timeout: 40
- timestamps
builders:
- print-template-name:
template-name: "{template-name}"
- zuul-git-prep-upper-constraints
- install-distro-packages
- revoke-sudo
- python35
- assert-no-extra-files
publishers:
- test-results
- console-log
node: ubuntu-xenial
- job-template:
name: 'gate-{name}-python35-db{suffix}'
description: 'Same job as gate-{name}-python35{suffix} 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
- revoke-sudo
- 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-trusty
wrappers:
- build-timeout:
timeout: 40
- timestamps
builders:
- print-template-name:
template-name: "{template-name}"
- zuul-git-prep-upper-constraints
- install-distro-packages
- tox:
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
- 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}'
site: '{tarball-site}'
- wheel:
project: '{name}'
site: '{tarball-site}'
- 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}'
site: '{tarball-site}'
- 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
- revoke-sudo
- shell: |
#!/bin/bash
set -x
# Report on the ZUUL settings.
env | grep '^ZUUL_'
# Save the version that was just tagged by parsing
# ref/tags/VALUE to get VALUE.
VERSION=$(echo $ZUUL_REF | cut -f3 -d/)
# 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
TOOLS_TMP=$(mktemp -d)
/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
# 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}-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}'
- 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}-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: python-jobs-searchlight
node:
- ubuntu-trusty
- ubuntu-xenial
jobs:
- 'gate-{name}-pep8-{node}'
- 'gate-{name}-python27-searchlight'
- 'gate-{name}-python27-searchlight-es1'
- 'gate-{name}-python34-searchlight'
- '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: 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}'