swift/.zuul.yaml
Alistair Coles 346f518d6c Make arm jobs voting (but not the pipeline)
Make the non-voting pipeline indicate failure when any of the jobs
fail.

Previously zuul would report "Build succeeded (ARM64 pipeline)."
even when individual job(s) had failed. Now zuul will report
"Build failed (ARM64 pipeline)." but the pipeline still does
vote on the patchset.

Change-Id: I84f59256df3aa41338df9829a565ae830ee8e847
2021-11-24 12:51:32 +00:00

744 lines
23 KiB
YAML

- job:
name: swift-tox-base
parent: openstack-tox-py27
description: |
Base job for swift-tox jobs.
It sets TMPDIR to an XFS mount point created via
tools/test-setup.sh.
timeout: 5400
vars:
tox_environment:
TMPDIR: '{{ ansible_env.HOME }}/xfstmp'
- job:
name: swift-tox-py27
parent: swift-tox-base
description: |
Run unit-tests for swift under cPython version 2.7.
Uses tox with the ``py27`` environment.
It sets TMPDIR to an XFS mount point created via
tools/test-setup.sh.
vars:
tox_envlist: py27
tox_environment:
NOSE_COVER_HTML: 1
NOSE_COVER_HTML_DIR: '{toxinidir}/cover'
post-run: tools/playbooks/common/cover-post.yaml
- job:
name: swift-tox-py27-centos-7
parent: swift-tox-py27
nodeset: centos-7
- job:
name: swift-tox-py36
parent: swift-tox-base
nodeset: ubuntu-bionic
description: |
Run unit-tests for swift under cPython version 3.6.
Uses tox with the ``py36`` environment.
It sets TMPDIR to an XFS mount point created via
tools/test-setup.sh.
vars:
tox_envlist: py36
bindep_profile: test py36
tox_environment:
NOSE_COVER_HTML: 1
NOSE_COVER_HTML_DIR: '{toxinidir}/cover'
post-run: tools/playbooks/common/cover-post.yaml
- job:
name: swift-tox-py36-centos-8
parent: swift-tox-py36
nodeset: centos-8
- job:
name: swift-tox-py37
parent: swift-tox-base
nodeset: ubuntu-bionic
description: |
Run unit-tests for swift under cPython version 3.7.
Uses tox with the ``py37`` environment.
It sets TMPDIR to an XFS mount point created via
tools/test-setup.sh.
vars:
tox_envlist: py37
bindep_profile: test py37
python_version: 3.7
tox_environment:
NOSE_COVER_HTML: 1
NOSE_COVER_HTML_DIR: '{toxinidir}/cover'
post-run: tools/playbooks/common/cover-post.yaml
- job:
name: swift-tox-py38
parent: swift-tox-base
nodeset: ubuntu-focal
description: |
Run unit-tests for swift under cPython version 3.8.
Uses tox with the ``py38`` environment.
It sets TMPDIR to an XFS mount point created via
tools/test-setup.sh.
vars:
tox_envlist: py38
bindep_profile: test py38
python_version: 3.8
tox_environment:
NOSE_COVER_HTML: 1
NOSE_COVER_HTML_DIR: '{toxinidir}/cover'
post-run: tools/playbooks/common/cover-post.yaml
- job:
name: swift-tox-py38-arm64
parent: swift-tox-py38
nodeset: ubuntu-focal-arm64
description: |
Run unit tests for an OpenStack Python project under cPython
version 3.8 on top of arm64 architecture.
- job:
name: swift-tox-py39-arm64
parent: swift-tox-py39
nodeset: ubuntu-focal-arm64
description: |
Run unit tests for an OpenStack Python project under cPython
version 3.9 on top of arm64 architecture.
- job:
name: swift-tox-py39
parent: swift-tox-base
nodeset: ubuntu-focal
description: |
Run unit-tests for swift under cPython version 3.9.
Uses tox with the ``py39`` environment.
It sets TMPDIR to an XFS mount point created via
tools/test-setup.sh.
vars:
tox_envlist: py39
bindep_profile: test py39
python_version: 3.9
tox_environment:
NOSE_COVER_HTML: 1
NOSE_COVER_HTML_DIR: '{toxinidir}/cover'
post-run: tools/playbooks/common/cover-post.yaml
- job:
name: swift-tox-func-py27
parent: swift-tox-base
description: |
Run functional tests for swift under cPython version 2.7.
Uses tox with the ``func`` environment.
It sets TMPDIR to an XFS mount point created via
tools/test-setup.sh.
vars:
tox_envlist: func
- job:
name: swift-tox-func-py38
parent: swift-tox-base
nodeset: ubuntu-focal
description: |
Run functional tests for swift under cPython version 3.8.
Uses tox with the ``func-py3`` environment.
It sets TMPDIR to an XFS mount point created via
tools/test-setup.sh.
vars:
tox_envlist: func-py3
bindep_profile: test py38
python_version: 3.8
- job:
name: swift-tox-func-py36-centos-8
parent: swift-tox-func-py38
nodeset: centos-8
vars:
bindep_profile: test py36
python_version: 3.6
- job:
name: swift-tox-func-encryption-py36-centos-8
parent: swift-tox-func-py36-centos-8
vars:
tox_envlist: func-encryption-py3
- job:
name: swift-tox-func-ec-py36-centos-8
parent: swift-tox-func-py36-centos-8
vars:
tox_envlist: func-ec-py3
- job:
name: swift-tox-func-encryption-py38
parent: swift-tox-func-py38
description: |
Run functional tests for swift under cPython version 3.8.
Uses tox with the ``func-encryption-py3`` environment.
It sets TMPDIR to an XFS mount point created via
tools/test-setup.sh.
vars:
tox_envlist: func-encryption-py3
- job:
name: swift-tox-func-encryption-py38-arm64
parent: swift-tox-func-encryption-py38
nodeset: ubuntu-focal-arm64
description: |
Run functional tests for swift under cPython version 3.8
on top of arm64 architecture.
Uses tox with the ``func-encryption-py3`` environment.
It sets TMPDIR to an XFS mount point created via
tools/test-setup.sh.
- job:
name: swift-tox-func-py38-arm64
parent: swift-tox-func-py38
nodeset: ubuntu-focal-arm64
description: |
Run functional tests for swift under cPython version 3.8
on top of arm64 architecture.
Uses tox with the ``func-py3`` environment.
It sets TMPDIR to an XFS mount point created via
tools/test-setup.sh.
- job:
name: swift-tox-func-ec-py38
parent: swift-tox-func-py38
description: |
Run functional tests for swift under cPython version 3.8.
Uses tox with the ``func-ec-py3`` environment.
It sets TMPDIR to an XFS mount point created via
tools/test-setup.sh.
vars:
tox_envlist: func-ec-py3
- job:
name: swift-tox-func-py27-centos-7
parent: swift-tox-func-py27
nodeset: centos-7
- job:
name: swift-tox-func-encryption-py27
parent: swift-tox-base
description: |
Run functional tests for swift under cPython version 2.7.
Uses tox with the ``func-encryption`` environment.
It sets TMPDIR to an XFS mount point created via
tools/test-setup.sh.
vars:
tox_envlist: func-encryption
- job:
name: swift-tox-func-encryption-py27-centos-7
parent: swift-tox-func-encryption-py27
nodeset: centos-7
- job:
name: swift-tox-func-ec-py27
parent: swift-tox-base
description: |
Run functional tests for swift under cPython version 2.7.
Uses tox with the ``func-ec`` environment.
It sets TMPDIR to an XFS mount point created via
tools/test-setup.sh.
vars:
tox_envlist: func-ec
- job:
name: swift-tox-func-ec-py27-centos-7
parent: swift-tox-func-ec-py27
nodeset: centos-7
- job:
name: swift-dsvm-functional
parent: devstack-minimal
description: |
Setup a Swift/Keystone environment and run Swift's func tests.
required-projects:
- opendev.org/openstack/requirements
- opendev.org/openstack/swift
- opendev.org/openstack/keystone
timeout: 5400
vars:
tox_constraints_file: '{{ ansible_user_dir }}/src/opendev.org/openstack/requirements/upper-constraints.txt'
# This tox env get run twice; once for Keystone and once for tempauth
tox_envlist: func-py3
devstack_localrc:
SWIFT_HASH: changeme
# We don't need multiple replicas to run purely functional tests.
# In fact, devstack special cases some things when there's only
# one replica.
SWIFT_REPLICAS: 1
# One replica => no need for replicators, etc.
SWIFT_START_ALL_SERVICES: False
devstack_services:
keystone: true
swift: true
s3api: true
zuul_work_dir: src/opendev.org/openstack/swift
pre-run: tools/playbooks/dsvm/pre.yaml
run: tools/playbooks/dsvm/run.yaml
post-run: tools/playbooks/dsvm/post.yaml
- job:
name: swift-dsvm-functional-ipv6
parent: swift-dsvm-functional
vars:
devstack_localrc:
SERVICE_IP_VERSION: 6
SERVICE_HOST: ""
- job:
name: swift-tox-func-s3api-ceph-s3tests-tempauth
parent: unittests
voting: false
nodeset: centos-7
description: |
Setup a SAIO dev environment and run ceph-s3tests
timeout: 5400
vars:
s3_acl: yes
pre-run:
- tools/playbooks/common/install_dependencies.yaml
- tools/playbooks/saio_single_node_setup/setup_saio.yaml
- tools/playbooks/saio_single_node_setup/add_s3api.yaml
- tools/playbooks/saio_single_node_setup/make_rings.yaml
run: tools/playbooks/ceph-s3tests/run.yaml
post-run:
- tools/playbooks/probetests/post.yaml
- tools/playbooks/ceph-s3tests/post.yaml
- job:
name: swift-probetests-centos-7
parent: unittests
nodeset: centos-7
description: |
Setup a SAIO dev environment and run Swift's probe tests
under Python 2.
timeout: 7200
vars:
bindep_profile: test py27
pre-run:
- tools/playbooks/common/install_dependencies.yaml
- tools/playbooks/saio_single_node_setup/setup_saio.yaml
- tools/playbooks/saio_single_node_setup/make_rings.yaml
run: tools/playbooks/probetests/run.yaml
post-run: tools/playbooks/probetests/post.yaml
- job:
name: swift-probetests-centos-8
parent: swift-probetests-centos-7
nodeset: centos-8
description: |
Setup a SAIO dev environment and run Swift's probe tests
under Python 3.
vars:
bindep_profile: test py36
- job:
name: swift-probetests-centos-8-arm64
parent: swift-probetests-centos-8
nodeset: centos-8-arm64
description: |
Setup a SAIO dev environment and run Swift's probe tests
under Python 3 on top of arm64 architecture.
timeout: 10800
- job:
name: swift-func-cors
parent: swift-probetests-centos-7
description: |
Setup a SAIO dev environment and run Swift's CORS functional tests
timeout: 1200
vars:
s3_acl: no
pre-run:
- tools/playbooks/saio_single_node_setup/add_s3api.yaml
- tools/playbooks/cors/install_selenium.yaml
run: tools/playbooks/cors/run.yaml
post-run: tools/playbooks/cors/post.yaml
- nodeset:
name: swift-five-nodes
nodes:
- name: test-runner1
label: centos-7
- name: proxy1
label: centos-7
- name: account1
label: centos-7
- name: container1
label: centos-7
- name: object1
label: centos-7
groups:
- name: test-runner
nodes:
- test-runner1
- name: swift-cluster
nodes:
- proxy1
- account1
- container1
- object1
- name: proxy
nodes:
- proxy1
- name: account
nodes:
- account1
- name: container
nodes:
- container1
- name: object
nodes:
- object1
- name: storage
nodes:
- account1
- container1
- object1
- job:
name: swift-multinode-rolling-upgrade
parent: multinode
nodeset: swift-five-nodes
description: |
Build a 4 node swift cluster and run functional tests
timeout: 5400
pre-run:
- tools/playbooks/multinode_setup/pre.yaml
- tools/playbooks/common/install_dependencies.yaml
- tools/playbooks/multinode_setup/configure_loopback.yaml
- tools/playbooks/multinode_setup/common_config.yaml
- tools/playbooks/multinode_setup/make_rings.yaml
run: tools/playbooks/multinode_setup/run.yaml
post-run: tools/playbooks/probetests/post.yaml
- job:
name: swift-multinode-rolling-upgrade-rocky
parent: swift-multinode-rolling-upgrade
vars:
previous_swift_version: origin/stable/rocky
- job:
name: swift-multinode-rolling-upgrade-stein
parent: swift-multinode-rolling-upgrade
vars:
previous_swift_version: origin/stable/stein
- job:
name: swift-multinode-rolling-upgrade-train
parent: swift-multinode-rolling-upgrade
vars:
previous_swift_version: origin/stable/train
- job:
name: swift-multinode-rolling-upgrade-ussuri
parent: swift-multinode-rolling-upgrade
vars:
previous_swift_version: origin/stable/ussuri
- job:
name: swift-multinode-rolling-upgrade-victoria
parent: swift-multinode-rolling-upgrade
vars:
previous_swift_version: origin/stable/victoria
- job:
name: swift-multinode-rolling-upgrade-wallaby
parent: swift-multinode-rolling-upgrade
vars:
previous_swift_version: origin/stable/wallaby
- job:
name: swift-multinode-rolling-upgrade-master
parent: swift-multinode-rolling-upgrade
vars:
previous_swift_version: origin/master
- job:
name: swift-tox-lower-constraints
parent: openstack-tox-lower-constraints
vars:
bindep_profile: test py27
python_version: 2.7
tox_environment:
TMPDIR: '{{ ansible_env.HOME }}/xfstmp'
# Image building jobs
- secret:
name: swift-dockerhub
data:
username: screamingfrenzy
password: !encrypted/pkcs1-oaep
- ruMizg1iVvKm4ABLQ8GshZMwt3EzxOyjPZsInL20+ZS+TQxhEwRbLFGzSxnrChIOdioyl
7TMW1PxQeJ5T/mPIsV7TBsSsnIMKYRcDSbKjnC0hjILpKfQXLFw4/rV/d3jeB6oLDSTW1
fIt4NmJqhsjlvst+VwT1JnFHLdrRaGMWYkjRU8rEmH82jDM7Wk7J+selykvTrlRQ7RpQR
6huzniL6PJPOZ7I5VsQcCmEWYKwd/u9Ifhe50yjgxmKR7Fi+wl0nBSOzt38f9ZEXTB6So
/ks0+RX2sTlgulNgJnnR8FG3p2AHxTJ75fcBnY1KkYlG0+KsdRTzNjxNXs2/Ao0pyJJTs
JWniEHWVAq6T5agwD1SsmWAzFctBjGKDstxmTyHaSNNN5c6yoVZewRBrFDfYXMJUikyS+
52bel/uihhiq60MnUCzKCiBg/TM1uonwRKA2KkDXWRh80oxBMIxw5nVZCMaHFpx7NW/ls
k6aI8jio+/N0cLZlglWqGOsE3EC08Ddd+cqe668/LQVY97UgMjIu6aZRwX9Iwa2NXNDRE
zPKQ3UDWYFgl8Za90PmrRD4qYuN/1lqCrLKp5cSJbche+EqdrGolCj701zUWcCdwjHMwz
YA5zG1SbWFyC9BidZYTwMNbo/RRz4TtFmW35A4CRE5HYB5Uh5ccpGlBvI9Yv8A=
- job:
name: swift-build-image
parent: opendev-build-docker-image
voting: false
description: Build SAIO docker images.
vars: &swift_image_vars
docker_images:
- context: .
repository: openstackswift/saio
- job:
name: swift-upload-image
parent: opendev-upload-docker-image
voting: false
description: Build SAIO docker images and upload to Docker Hub.
secrets:
name: docker_credentials
secret: swift-dockerhub
pass-to-parent: true
vars: *swift_image_vars
- job:
name: swift-promote-image
parent: opendev-promote-docker-image
voting: false
description: Promote previously uploaded Docker images.
secrets:
name: docker_credentials
secret: swift-dockerhub
pass-to-parent: true
vars: *swift_image_vars
- job:
name: swift-build-image-py3
parent: opendev-build-docker-image
voting: false
description: Build py3 SAIO docker images.
vars: &swift_image_vars_py3
docker_images:
- context: .
dockerfile: Dockerfile-py3
repository: openstackswift/saio
tags:
- py3
- job:
name: swift-upload-image-py3
parent: opendev-upload-docker-image
voting: false
description: Build py3 SAIO docker images and upload to Docker Hub.
secrets:
name: docker_credentials
secret: swift-dockerhub
pass-to-parent: true
vars: *swift_image_vars_py3
- job:
name: swift-promote-image-py3
parent: opendev-promote-docker-image
voting: false
description: Promote previously uploaded Docker images.
secrets:
name: docker_credentials
secret: swift-dockerhub
pass-to-parent: true
vars: *swift_image_vars_py3
- project-template:
name: swift-jobs-arm64
description: |
Runs tests for an OpenStack Python project under the CPython
version 3 releases designated for testing on top of ARM64 architecture.
check-arm64:
jobs:
- swift-tox-py38-arm64
- swift-tox-py39-arm64
- swift-probetests-centos-8-arm64
- swift-tox-func-encryption-py38-arm64
- swift-tox-func-py38-arm64
- project:
templates:
- publish-openstack-docs-pti
- periodic-stable-jobs
- check-requirements
- release-notes-jobs-python3
- integrated-gate-object-storage
- swift-jobs-arm64
check:
jobs:
- swift-build-image:
irrelevant-files: &docker-irrelevant-files
- ^(api-ref|doc|releasenotes)/.*$
- ^test/(functional|probe)/.*$
- swift-build-image-py3:
irrelevant-files: *docker-irrelevant-files
# Unit tests
- swift-tox-py27:
irrelevant-files: &unittest-irrelevant-files
- ^(api-ref|doc|releasenotes)/.*$
- ^test/(cors|functional|probe)/.*$
- swift-tox-py36:
irrelevant-files: *unittest-irrelevant-files
- swift-tox-py37:
irrelevant-files: *unittest-irrelevant-files
- swift-tox-py38:
irrelevant-files: *unittest-irrelevant-files
- swift-tox-py39:
irrelevant-files: *unittest-irrelevant-files
# Functional tests
- swift-tox-func-py27:
irrelevant-files: &functest-irrelevant-files
- ^(api-ref|doc|releasenotes)/.*$
- ^test/(cors|probe)/.*$
- ^(.gitreview|.mailmap|AUTHORS|CHANGELOG|.*\.rst)$
- swift-tox-func-encryption-py27:
irrelevant-files: *functest-irrelevant-files
- swift-tox-func-ec-py27:
irrelevant-files: *functest-irrelevant-files
# py3 functional tests
- swift-tox-func-py38:
irrelevant-files: *functest-irrelevant-files
- swift-tox-func-encryption-py38:
irrelevant-files: *functest-irrelevant-files
- swift-tox-func-ec-py38:
irrelevant-files: *functest-irrelevant-files
# Other tests
- swift-func-cors:
irrelevant-files:
- ^(api-ref|releasenotes)/.*$
# Keep doc/saio -- we use those sample configs in the saio playbooks
- ^doc/(requirements.txt|(manpages|s3api|source)/.*)$
- ^test/(unit|functional|probe)/.*$
- ^(.gitreview|.mailmap|AUTHORS|CHANGELOG)$
- swift-tox-func-s3api-ceph-s3tests-tempauth:
irrelevant-files:
- ^(api-ref|releasenotes)/.*$
# Keep doc/saio -- we use those sample configs in the saio playbooks
# Also keep doc/s3api -- it holds known failures for these tests
- ^doc/(requirements.txt|(manpages|source)/.*)$
- ^test/(cors|unit|probe)/.*$
- ^(.gitreview|.mailmap|AUTHORS|CHANGELOG|.*\.rst)$
- swift-probetests-centos-7:
irrelevant-files: &probetest-irrelevant-files
- ^(api-ref|releasenotes)/.*$
# Keep doc/saio -- we use those sample configs in the saio playbooks
- ^doc/(requirements.txt|(manpages|s3api|source)/.*)$
- ^test/(cors|unit|functional)/.*$
- ^(.gitreview|.mailmap|AUTHORS|CHANGELOG|.*\.rst)$
- swift-probetests-centos-8:
irrelevant-files: *probetest-irrelevant-files
- swift-dsvm-functional:
irrelevant-files: *functest-irrelevant-files
- swift-dsvm-functional-ipv6:
irrelevant-files: *functest-irrelevant-files
- swift-tox-lower-constraints:
irrelevant-files: *unittest-irrelevant-files
- openstack-tox-pep8:
irrelevant-files: &pep8-irrelevant-files
- ^(api-ref|etc|examples|releasenotes)/.*$
# Keep doc/manpages -- we want to syntax check them
- ^doc/(requirements.txt|(saio|s3api|source)/.*)$
- swift-multinode-rolling-upgrade:
irrelevant-files: *functest-irrelevant-files
- tempest-integrated-object-storage:
irrelevant-files: &tempest-irrelevant-files
- ^(api-ref|doc|releasenotes)/.*$
- ^test/.*$
- ^(.gitreview|.mailmap|AUTHORS|CHANGELOG|.*\.rst)$
- tempest-ipv6-only:
irrelevant-files: *tempest-irrelevant-files
- grenade:
irrelevant-files: *tempest-irrelevant-files
gate:
jobs:
# For gate jobs, err towards running more jobs (so, generally avoid
# using irrelevant-files). Exceptions should mainly be made for
# long-running jobs, like probetests or (once they move to
# in-tree definitions) dsvm jobs.
- swift-upload-image:
irrelevant-files: *docker-irrelevant-files
- swift-upload-image-py3:
irrelevant-files: *docker-irrelevant-files
- swift-tox-py27
- swift-tox-py36
- swift-tox-py37
- swift-tox-py38
- swift-tox-py39
- swift-tox-func-py27
- swift-tox-func-encryption-py27
- swift-tox-func-ec-py27
- swift-tox-func-py38
- swift-tox-func-encryption-py38
- swift-tox-func-ec-py38
- swift-func-cors
- swift-probetests-centos-7:
irrelevant-files: *probetest-irrelevant-files
- swift-probetests-centos-8:
irrelevant-files: *probetest-irrelevant-files
- swift-dsvm-functional:
irrelevant-files: *functest-irrelevant-files
- swift-dsvm-functional-ipv6:
irrelevant-files: *functest-irrelevant-files
- swift-tox-lower-constraints:
irrelevant-files: *unittest-irrelevant-files
- openstack-tox-pep8:
irrelevant-files: *pep8-irrelevant-files
- swift-multinode-rolling-upgrade:
irrelevant-files: *functest-irrelevant-files
- tempest-integrated-object-storage:
irrelevant-files: *tempest-irrelevant-files
- tempest-ipv6-only:
irrelevant-files: *tempest-irrelevant-files
- grenade:
irrelevant-files: *tempest-irrelevant-files
experimental:
jobs:
- swift-tox-py27-centos-7
- swift-tox-func-py27-centos-7
- swift-tox-func-encryption-py27-centos-7
- swift-tox-func-ec-py27-centos-7
- swift-tox-py36-centos-8
- swift-tox-func-py36-centos-8
- swift-tox-func-encryption-py36-centos-8
- swift-tox-func-ec-py36-centos-8
- swift-multinode-rolling-upgrade-rocky
- swift-multinode-rolling-upgrade-stein
- swift-multinode-rolling-upgrade-train
- swift-multinode-rolling-upgrade-ussuri
- swift-multinode-rolling-upgrade-victoria
- swift-multinode-rolling-upgrade-wallaby
- swift-multinode-rolling-upgrade-master:
branches: master
post:
jobs:
- publish-openstack-python-branch-tarball
promote:
jobs:
- swift-promote-image
- swift-promote-image-py3