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'
|
||||
|
||||
- job:
|
||||
name: nodepool-tox-py38
|
||||
name: nodepool-nox-py38
|
||||
description: |
|
||||
Nodepool unit tests with ZooKeeper running
|
||||
parent: tox-py38
|
||||
pre-run: playbooks/nodepool-tox/pre.yaml
|
||||
vars: &nodepool_tox_vars
|
||||
tox_environment:
|
||||
parent: nox-py38
|
||||
pre-run: playbooks/nodepool-nox/pre.yaml
|
||||
vars: &nodepool_nox_vars
|
||||
nox_environment:
|
||||
NODEPOOL_ZK_CA: /opt/zookeeper/ca/certs/cacert.pem
|
||||
NODEPOOL_ZK_CERT: /opt/zookeeper/ca/certs/client.pem
|
||||
NODEPOOL_ZK_KEY: /opt/zookeeper/ca/keys/clientkey.pem
|
||||
|
||||
- job:
|
||||
name: nodepool-tox-py311
|
||||
name: nodepool-nox-py311
|
||||
description: |
|
||||
Nodepool unit tests with ZooKeeper running
|
||||
parent: tox-py311
|
||||
pre-run: playbooks/nodepool-tox/pre.yaml
|
||||
vars: *nodepool_tox_vars
|
||||
parent: nox-py311
|
||||
pre-run: playbooks/nodepool-nox/pre.yaml
|
||||
vars: *nodepool_nox_vars
|
||||
nodeset: ubuntu-jammy
|
||||
|
||||
- project:
|
||||
@ -257,11 +257,11 @@
|
||||
jobs:
|
||||
- opendev-buildset-registry
|
||||
- nodepool-build-image
|
||||
- zuul-tox-docs
|
||||
- tox-pep8
|
||||
- nodepool-tox-py38:
|
||||
- zuul-nox-docs
|
||||
- nox-linters
|
||||
- nodepool-nox-py38:
|
||||
nodeset: ubuntu-focal
|
||||
- nodepool-tox-py311
|
||||
- nodepool-nox-py311
|
||||
- nodepool-functional-container-openstack-release
|
||||
- nodepool-functional-k8s
|
||||
- nodepool-functional-openshift
|
||||
@ -272,11 +272,11 @@
|
||||
gate:
|
||||
jobs:
|
||||
- nodepool-upload-image
|
||||
- zuul-tox-docs
|
||||
- tox-pep8
|
||||
- nodepool-tox-py38:
|
||||
- zuul-nox-docs
|
||||
- nox-linters
|
||||
- nodepool-nox-py38:
|
||||
nodeset: ubuntu-focal
|
||||
- nodepool-tox-py311
|
||||
- nodepool-nox-py311
|
||||
- nodepool-functional-k8s
|
||||
- nodepool-functional-openshift
|
||||
- zuul-quick-start:
|
||||
@ -291,7 +291,7 @@
|
||||
release:
|
||||
jobs:
|
||||
- opendev-release-python
|
||||
- zuul-publish-tox-docs
|
||||
- zuul-publish-nox-docs
|
||||
- upload-docker-image:
|
||||
timeout: *image_build_timeout
|
||||
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: ensure-zookeeper
|
||||
zookeeper_use_tls: true
|
||||
- role: ensure-tox
|
||||
- role: ensure-nox
|
||||
- role: ensure-kubernetes
|
||||
ensure_kubernetes_type: microk8s
|
||||
|
@ -1,8 +1,8 @@
|
||||
- hosts: all
|
||||
roles:
|
||||
- role: tox
|
||||
tox_envlist: functional_kubernetes
|
||||
tox_environment:
|
||||
- role: nox
|
||||
nox_session: functional_kubernetes
|
||||
nox_environment:
|
||||
NODEPOOL_ZK_CA: /opt/zookeeper/ca/certs/cacert.pem
|
||||
NODEPOOL_ZK_CERT: /opt/zookeeper/ca/certs/client.pem
|
||||
NODEPOOL_ZK_KEY: /opt/zookeeper/ca/keys/clientkey.pem
|
||||
|
@ -14,7 +14,7 @@
|
||||
- role: bindep
|
||||
- role: ensure-zookeeper
|
||||
zookeeper_use_tls: true
|
||||
- role: ensure-tox
|
||||
- role: ensure-nox
|
||||
tasks:
|
||||
# NOTE(ianw) 2022-09-07 :
|
||||
# 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
|
||||
https://{{ hostvars['cluster']['ansible_hostname'] }}:8443
|
||||
roles:
|
||||
- role: tox
|
||||
tox_envlist: functional_openshift
|
||||
tox_environment:
|
||||
- role: nox
|
||||
nox_session: functional_openshift
|
||||
nox_environment:
|
||||
NODEPOOL_ZK_CA: /opt/zookeeper/ca/certs/cacert.pem
|
||||
NODEPOOL_ZK_CERT: /opt/zookeeper/ca/certs/client.pem
|
||||
NODEPOOL_ZK_KEY: /opt/zookeeper/ca/keys/clientkey.pem
|
||||
|
@ -39,3 +39,10 @@ nodepool_base =
|
||||
yappi
|
||||
objgraph
|
||||
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]
|
||||
commands = stestr --test-path ./nodepool/tests/functional/openshift run --no-subunit-trace {posargs}
|
||||
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