Switch to nox
Like Zuul, replace our usage of tox with nox. Change-Id: I18e2dffaf737f0b57020d50c1c18397ee5dc1362
This commit is contained in:
parent
fdb49bc029
commit
3a5db84a33
36
.zuul.yaml
36
.zuul.yaml
@ -230,24 +230,24 @@
|
|||||||
DIB_SIMPLE_INIT_NETWORKMANAGER: '1'
|
DIB_SIMPLE_INIT_NETWORKMANAGER: '1'
|
||||||
|
|
||||||
- job:
|
- job:
|
||||||
name: nodepool-tox-py38
|
name: nodepool-nox-py38
|
||||||
description: |
|
description: |
|
||||||
Nodepool unit tests with ZooKeeper running
|
Nodepool unit tests with ZooKeeper running
|
||||||
parent: tox-py38
|
parent: nox-py38
|
||||||
pre-run: playbooks/nodepool-tox/pre.yaml
|
pre-run: playbooks/nodepool-nox/pre.yaml
|
||||||
vars: &nodepool_tox_vars
|
vars: &nodepool_nox_vars
|
||||||
tox_environment:
|
nox_environment:
|
||||||
NODEPOOL_ZK_CA: /opt/zookeeper/ca/certs/cacert.pem
|
NODEPOOL_ZK_CA: /opt/zookeeper/ca/certs/cacert.pem
|
||||||
NODEPOOL_ZK_CERT: /opt/zookeeper/ca/certs/client.pem
|
NODEPOOL_ZK_CERT: /opt/zookeeper/ca/certs/client.pem
|
||||||
NODEPOOL_ZK_KEY: /opt/zookeeper/ca/keys/clientkey.pem
|
NODEPOOL_ZK_KEY: /opt/zookeeper/ca/keys/clientkey.pem
|
||||||
|
|
||||||
- job:
|
- job:
|
||||||
name: nodepool-tox-py311
|
name: nodepool-nox-py311
|
||||||
description: |
|
description: |
|
||||||
Nodepool unit tests with ZooKeeper running
|
Nodepool unit tests with ZooKeeper running
|
||||||
parent: tox-py311
|
parent: nox-py311
|
||||||
pre-run: playbooks/nodepool-tox/pre.yaml
|
pre-run: playbooks/nodepool-nox/pre.yaml
|
||||||
vars: *nodepool_tox_vars
|
vars: *nodepool_nox_vars
|
||||||
nodeset: ubuntu-jammy
|
nodeset: ubuntu-jammy
|
||||||
|
|
||||||
- project:
|
- project:
|
||||||
@ -257,11 +257,11 @@
|
|||||||
jobs:
|
jobs:
|
||||||
- opendev-buildset-registry
|
- opendev-buildset-registry
|
||||||
- nodepool-build-image
|
- nodepool-build-image
|
||||||
- zuul-tox-docs
|
- zuul-nox-docs
|
||||||
- tox-pep8
|
- nox-linters
|
||||||
- nodepool-tox-py38:
|
- nodepool-nox-py38:
|
||||||
nodeset: ubuntu-focal
|
nodeset: ubuntu-focal
|
||||||
- nodepool-tox-py311
|
- nodepool-nox-py311
|
||||||
- nodepool-functional-container-openstack-release
|
- nodepool-functional-container-openstack-release
|
||||||
- nodepool-functional-k8s
|
- nodepool-functional-k8s
|
||||||
- nodepool-functional-openshift
|
- nodepool-functional-openshift
|
||||||
@ -272,11 +272,11 @@
|
|||||||
gate:
|
gate:
|
||||||
jobs:
|
jobs:
|
||||||
- nodepool-upload-image
|
- nodepool-upload-image
|
||||||
- zuul-tox-docs
|
- zuul-nox-docs
|
||||||
- tox-pep8
|
- nox-linters
|
||||||
- nodepool-tox-py38:
|
- nodepool-nox-py38:
|
||||||
nodeset: ubuntu-focal
|
nodeset: ubuntu-focal
|
||||||
- nodepool-tox-py311
|
- nodepool-nox-py311
|
||||||
- nodepool-functional-k8s
|
- nodepool-functional-k8s
|
||||||
- nodepool-functional-openshift
|
- nodepool-functional-openshift
|
||||||
- zuul-quick-start:
|
- zuul-quick-start:
|
||||||
@ -291,7 +291,7 @@
|
|||||||
release:
|
release:
|
||||||
jobs:
|
jobs:
|
||||||
- opendev-release-python
|
- opendev-release-python
|
||||||
- zuul-publish-tox-docs
|
- zuul-publish-nox-docs
|
||||||
- upload-docker-image:
|
- upload-docker-image:
|
||||||
timeout: *image_build_timeout
|
timeout: *image_build_timeout
|
||||||
secrets:
|
secrets:
|
||||||
|
130
noxfile.py
Normal file
130
noxfile.py
Normal file
@ -0,0 +1,130 @@
|
|||||||
|
# Copyright 2022 Acme Gating, LLC
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||||
|
# not use this file except in compliance with the License. You may obtain
|
||||||
|
# a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||||
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||||
|
# License for the specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
|
||||||
|
import os
|
||||||
|
|
||||||
|
import nox
|
||||||
|
|
||||||
|
|
||||||
|
nox.options.error_on_external_run = True
|
||||||
|
nox.options.reuse_existing_virtualenvs = True
|
||||||
|
nox.options.sessions = ["tests-3", "linters"]
|
||||||
|
|
||||||
|
|
||||||
|
def set_env(session, var, default):
|
||||||
|
session.env[var] = os.environ.get(var, default)
|
||||||
|
|
||||||
|
|
||||||
|
def set_standard_env_vars(session):
|
||||||
|
set_env(session, 'OS_LOG_CAPTURE', '1')
|
||||||
|
set_env(session, 'OS_STDERR_CAPTURE', '1')
|
||||||
|
set_env(session, 'OS_STDOUT_CAPTURE', '1')
|
||||||
|
set_env(session, 'OS_TEST_TIMEOUT', '360')
|
||||||
|
set_env(session, 'SQLALCHEMY_WARN_20', '1')
|
||||||
|
# Set STATSD env variables so that statsd code paths are tested.
|
||||||
|
set_env(session, 'STATSD_HOST', 'localhost')
|
||||||
|
set_env(session, 'STATSD_PORT', '8125')
|
||||||
|
session.env['PYTHONWARNINGS'] = ','.join([
|
||||||
|
'always::DeprecationWarning:zuul.driver.sql.sqlconnection',
|
||||||
|
'always::DeprecationWarning:tests.base',
|
||||||
|
'always::DeprecationWarning:tests.unit.test_database',
|
||||||
|
'always::DeprecationWarning:zuul.driver.sql.alembic.env',
|
||||||
|
'always::DeprecationWarning:zuul.driver.sql.alembic.script',
|
||||||
|
])
|
||||||
|
|
||||||
|
|
||||||
|
@nox.session(python='3')
|
||||||
|
def bindep(session):
|
||||||
|
set_standard_env_vars(session)
|
||||||
|
set_env(session, 'SQLALCHEMY_WARN_20', '1')
|
||||||
|
session.install('bindep')
|
||||||
|
session.run('bindep', 'test')
|
||||||
|
|
||||||
|
|
||||||
|
@nox.session(python='3')
|
||||||
|
def cover(session):
|
||||||
|
set_standard_env_vars(session)
|
||||||
|
session.env['PYTHON'] = 'coverage run --source nodepool --parallel-mode'
|
||||||
|
session.install('-r', 'requirements.txt',
|
||||||
|
'-r', 'test-requirements.txt')
|
||||||
|
session.install('-e', '.')
|
||||||
|
session.run('stestr', '--test-path', './nodepool/tests/unit',
|
||||||
|
'run', '--no-subunit-trace')
|
||||||
|
session.run('coverage', 'combine')
|
||||||
|
session.run('coverage', 'html', '-d', 'cover')
|
||||||
|
session.run('coverage', 'xml', '-o', 'cover/coverage.xml')
|
||||||
|
|
||||||
|
|
||||||
|
@nox.session(python='3')
|
||||||
|
def docs(session):
|
||||||
|
set_standard_env_vars(session)
|
||||||
|
session.install('-r', 'requirements.txt',
|
||||||
|
'-r', 'doc/requirements.txt')
|
||||||
|
session.install('-e', '.')
|
||||||
|
session.run('sphinx-build', '-E', '-W', '-d', 'doc/build/doctrees',
|
||||||
|
'-b', 'html', 'doc/source/', 'doc/build/html')
|
||||||
|
|
||||||
|
|
||||||
|
@nox.session(python='3')
|
||||||
|
def linters(session):
|
||||||
|
set_standard_env_vars(session)
|
||||||
|
session.install('flake8')
|
||||||
|
session.run('flake8', 'nodepool')
|
||||||
|
|
||||||
|
|
||||||
|
@nox.session(python='3')
|
||||||
|
def tests(session):
|
||||||
|
set_standard_env_vars(session)
|
||||||
|
session.install('-r', 'requirements.txt',
|
||||||
|
'-r', 'test-requirements.txt')
|
||||||
|
session.install('-e', '.')
|
||||||
|
session.run('stestr', '--test-path', './nodepool/tests/unit',
|
||||||
|
'run', '--no-subunit-trace',
|
||||||
|
*session.posargs)
|
||||||
|
session.run('stestr', 'slowest')
|
||||||
|
|
||||||
|
|
||||||
|
@nox.session(python='3')
|
||||||
|
def functional_kubernetes(session):
|
||||||
|
set_standard_env_vars(session)
|
||||||
|
session.install('-r', 'requirements.txt',
|
||||||
|
'-r', 'test-requirements.txt')
|
||||||
|
session.install('-e', '.')
|
||||||
|
session.run('stestr',
|
||||||
|
'--test-path', './nodepool/tests/functional/kubernetes',
|
||||||
|
'run', '--no-subunit-trace',
|
||||||
|
*session.posargs)
|
||||||
|
session.run('stestr', 'slowest')
|
||||||
|
|
||||||
|
|
||||||
|
@nox.session(python='3')
|
||||||
|
def functional_openshift(session):
|
||||||
|
set_standard_env_vars(session)
|
||||||
|
session.install('-r', 'requirements.txt',
|
||||||
|
'-r', 'test-requirements.txt')
|
||||||
|
session.install('-e', '.')
|
||||||
|
session.run('stestr',
|
||||||
|
'--test-path', './nodepool/tests/functional/openshift',
|
||||||
|
'run', '--no-subunit-trace',
|
||||||
|
*session.posargs)
|
||||||
|
session.run('stestr', 'slowest')
|
||||||
|
|
||||||
|
|
||||||
|
@nox.session(python='3')
|
||||||
|
def venv(session):
|
||||||
|
set_standard_env_vars(session)
|
||||||
|
session.install('-r', 'requirements.txt',
|
||||||
|
'-r', 'test-requirements.txt')
|
||||||
|
session.install('-e', '.')
|
||||||
|
session.run(*session.posargs)
|
@ -3,6 +3,6 @@
|
|||||||
- role: bindep
|
- role: bindep
|
||||||
- role: ensure-zookeeper
|
- role: ensure-zookeeper
|
||||||
zookeeper_use_tls: true
|
zookeeper_use_tls: true
|
||||||
- role: ensure-tox
|
- role: ensure-nox
|
||||||
- role: ensure-kubernetes
|
- role: ensure-kubernetes
|
||||||
ensure_kubernetes_type: microk8s
|
ensure_kubernetes_type: microk8s
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
- hosts: all
|
- hosts: all
|
||||||
roles:
|
roles:
|
||||||
- role: tox
|
- role: nox
|
||||||
tox_envlist: functional_kubernetes
|
nox_session: functional_kubernetes
|
||||||
tox_environment:
|
nox_environment:
|
||||||
NODEPOOL_ZK_CA: /opt/zookeeper/ca/certs/cacert.pem
|
NODEPOOL_ZK_CA: /opt/zookeeper/ca/certs/cacert.pem
|
||||||
NODEPOOL_ZK_CERT: /opt/zookeeper/ca/certs/client.pem
|
NODEPOOL_ZK_CERT: /opt/zookeeper/ca/certs/client.pem
|
||||||
NODEPOOL_ZK_KEY: /opt/zookeeper/ca/keys/clientkey.pem
|
NODEPOOL_ZK_KEY: /opt/zookeeper/ca/keys/clientkey.pem
|
||||||
|
@ -14,7 +14,7 @@
|
|||||||
- role: bindep
|
- role: bindep
|
||||||
- role: ensure-zookeeper
|
- role: ensure-zookeeper
|
||||||
zookeeper_use_tls: true
|
zookeeper_use_tls: true
|
||||||
- role: ensure-tox
|
- role: ensure-nox
|
||||||
tasks:
|
tasks:
|
||||||
# NOTE(ianw) 2022-09-07 :
|
# NOTE(ianw) 2022-09-07 :
|
||||||
# Shipped packages do not work and we need to use this statically
|
# Shipped packages do not work and we need to use this statically
|
||||||
|
@ -9,9 +9,9 @@
|
|||||||
oc login -u developer -p developer --insecure-skip-tls-verify=true
|
oc login -u developer -p developer --insecure-skip-tls-verify=true
|
||||||
https://{{ hostvars['cluster']['ansible_hostname'] }}:8443
|
https://{{ hostvars['cluster']['ansible_hostname'] }}:8443
|
||||||
roles:
|
roles:
|
||||||
- role: tox
|
- role: nox
|
||||||
tox_envlist: functional_openshift
|
nox_session: functional_openshift
|
||||||
tox_environment:
|
nox_environment:
|
||||||
NODEPOOL_ZK_CA: /opt/zookeeper/ca/certs/cacert.pem
|
NODEPOOL_ZK_CA: /opt/zookeeper/ca/certs/cacert.pem
|
||||||
NODEPOOL_ZK_CERT: /opt/zookeeper/ca/certs/client.pem
|
NODEPOOL_ZK_CERT: /opt/zookeeper/ca/certs/client.pem
|
||||||
NODEPOOL_ZK_KEY: /opt/zookeeper/ca/keys/clientkey.pem
|
NODEPOOL_ZK_KEY: /opt/zookeeper/ca/keys/clientkey.pem
|
||||||
|
@ -39,3 +39,10 @@ nodepool_base =
|
|||||||
yappi
|
yappi
|
||||||
objgraph
|
objgraph
|
||||||
python-logstash-async
|
python-logstash-async
|
||||||
|
|
||||||
|
[flake8]
|
||||||
|
# These are ignored intentionally in zuul projects;
|
||||||
|
# please don't submit patches that solely correct them or enable them.
|
||||||
|
ignore = E124,E125,E129,E402,E741,W503,W504
|
||||||
|
show-source = True
|
||||||
|
exclude = .venv,.tox,dist,doc,build,*.egg
|
||||||
|
7
tox.ini
7
tox.ini
@ -60,10 +60,3 @@ commands = stestr --test-path ./nodepool/tests/functional/kubernetes run --no-su
|
|||||||
[testenv:functional_openshift]
|
[testenv:functional_openshift]
|
||||||
commands = stestr --test-path ./nodepool/tests/functional/openshift run --no-subunit-trace {posargs}
|
commands = stestr --test-path ./nodepool/tests/functional/openshift run --no-subunit-trace {posargs}
|
||||||
stestr slowest
|
stestr slowest
|
||||||
|
|
||||||
[flake8]
|
|
||||||
# These are ignored intentionally in zuul projects;
|
|
||||||
# please don't submit patches that solely correct them or enable them.
|
|
||||||
ignore = E124,E125,E129,E402,E741,W503,W504
|
|
||||||
show-source = True
|
|
||||||
exclude = .venv,.tox,dist,doc,build,*.egg
|
|
||||||
|
Loading…
Reference in New Issue
Block a user