diff --git a/jenkins/jobs/python-jobs.yaml b/jenkins/jobs/python-jobs.yaml index 49551a0981..e3d3565a94 100644 --- a/jenkins/jobs/python-jobs.yaml +++ b/jenkins/jobs/python-jobs.yaml @@ -107,6 +107,28 @@ node: '{node}' +- job-template: + name: 'gate-{name}-python27-constraints' + + wrappers: + - build-timeout: + timeout: 50 + - timestamps + + builders: + - revoke-sudo + - zuul-git-prep-upper-constraints + - tox: + envlist: py27-constraints + - assert-no-extra-files + + publishers: + - test-results + - console-log + - zuul-swift-test-results-with-console + + node: '{node}' + - job-template: name: 'gate-{name}-python34' @@ -128,6 +150,28 @@ node: '{node}' +- job-template: + name: 'gate-{name}-python34-constraints' + + wrappers: + - build-timeout: + timeout: 40 + - timestamps + + builders: + - revoke-sudo + - zuul-git-prep-upper-constraints + - tox: + envlist: py34-constraints + - assert-no-extra-files + + publishers: + - test-results + - console-log + - zuul-swift-test-results-with-console + + node: '{node}' + - job-template: name: 'gate-{name}-pypy' @@ -149,6 +193,28 @@ node: '{node}' +- job-template: + name: 'gate-{name}-pypy-constraints' + + wrappers: + - build-timeout: + timeout: 40 + - timestamps + + builders: + - revoke-sudo + - zuul-git-prep-upper-constraints + - tox: + envlist: pypy-constraints + - assert-no-extra-files + + publishers: + - test-results + - console-log + - zuul-swift-test-results-with-console + + node: '{node}' + - job-template: name: 'gate-{name}-docs' @@ -288,3 +354,10 @@ # pip-missing-reqs 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: python-constraints-jobs + jobs: + - 'gate-{name}-python27-constraints' + - 'gate-{name}-python34-constraints' + - 'gate-{name}-pypy-constraints' diff --git a/jenkins/scripts/run-tox.sh b/jenkins/scripts/run-tox.sh index 5c9883cdfe..598a8176ab 100755 --- a/jenkins/scripts/run-tox.sh +++ b/jenkins/scripts/run-tox.sh @@ -118,6 +118,7 @@ export NOSE_WITH_XUNIT=1 export NOSE_WITH_HTML_OUTPUT=1 export NOSE_HTML_OUT_FILE='nose_results.html' export TMPDIR=$(/bin/mktemp -d) +export UPPER_CONSTRAINTS_FILE=$(pwd)/upper-constraints.txt trap "rm -rf $TMPDIR" EXIT cat /etc/image-hostname.txt diff --git a/zuul/layout.yaml b/zuul/layout.yaml index abfafdb750..1bed8fbb13 100755 --- a/zuul/layout.yaml +++ b/zuul/layout.yaml @@ -257,6 +257,12 @@ project-templates: post: - '{name}-branch-tarball' + - name: python-constraints-jobs + check: + - 'gate-{name}-python27-constraints' + gate: + - 'gate-{name}-python27-constraints' + - name: grenade check: - 'gate-grenade-dsvm' @@ -310,6 +316,12 @@ project-templates: gate: - 'gate-{name}-python34' + - name: python3-constraints-jobs + check: + - 'gate-{name}-python34-constraints' + gate: + - 'gate-{name}-python34-constraints' + # Python 2.6 is deprecated, these jobs will be removed once no # OpenStack projects needs it (once Juno is retired). - name: python26-jobs @@ -326,6 +338,12 @@ project-templates: # gate: # - 'gate-{name}-pypy' + - name: pypy-constraints-jobs + check: + - 'gate-{name}-pypy-constraints' + gate: + - 'gate-{name}-pypy-constraints' + - name: openstack-server-publish-jobs post: - '{name}-docs' @@ -1717,6 +1735,12 @@ jobs: - name: gate-tempest-dsvm-neutron-large-ops-liberty branch: master + # Constraints Jobs + - name: ^gate-.*-py(?:thon\d\d|py)-constraints$ + branch: ^(?!stable/(?:juno|kilo)).*$ + + # End Constraints Jobs + # The project list is grouped by type of project, and within each # group, projects are sorted (mostly) alphabetically. projects: