a9c6b6f020
This adds a JJB module that validates the parameters we use for the afs publisher. This publisher is not an actual Jenkins publisher and only exists in Zuul v2.5's ansible launcher. Thus, it has no XML output and is defined locally in this repo. This also removes the run-layout script (which used to clone HEAD of both jjb and zuul) in favor of installing these dependencies via pip in the tox testenv. We are no longer tracking JJB master, so pinning to the version of JJB we are using makes more sense. Similary, it is not expected that we will need cutting edge versions of zuul for this test in the immediate future (we may want to revisit this when we approach zuulv3). Change-Id: I4acd70c868cb6965d39f968b7582257b4ab21778
110 lines
2.6 KiB
INI
110 lines
2.6 KiB
INI
[tox]
|
|
minversion = 1.6
|
|
envlist = linters,gerrit,grafyaml,jjb,jenkins-project,zuul
|
|
skipsdist = True
|
|
|
|
[testenv]
|
|
deps = -r{toxinidir}/test-requirements.txt
|
|
|
|
[testenv:linters]
|
|
commands =
|
|
{toxinidir}/tools/run-bashate.sh
|
|
flake8
|
|
|
|
[testenv:gerrit]
|
|
deps = PyYAML
|
|
GitPython
|
|
commands =
|
|
{toxinidir}/tools/check_valid_gerrit_projects.py gerrit/projects.yaml gerrit/acls
|
|
{toxinidir}/tools/check_projects_yaml_alphabetized.sh gerrit/projects.yaml
|
|
{toxinidir}/tools/check_valid_gerrit_config.sh gerrit/acls/
|
|
|
|
[testenv:venv]
|
|
commands = {posargs}
|
|
|
|
[testenv:docs]
|
|
commands = python setup.py build_sphinx
|
|
|
|
[testenv:irc]
|
|
deps = PyYAML
|
|
irc
|
|
commands =
|
|
{toxinidir}/tools/check_irc_access.py -l accessbot/channels.yaml openstackinfra
|
|
{toxinidir}/tools/irc_tests.py
|
|
{toxinidir}/tools/check-channels-yaml.sh
|
|
|
|
[flake8]
|
|
show-source = True
|
|
exclude = .tox,.test
|
|
ignore = E125,H
|
|
select = H231
|
|
|
|
[testenv:grafyaml]
|
|
basepython = python2.7
|
|
commands = {toxinidir}/tools/grafyaml-validate.sh
|
|
|
|
[testenv:bindep]
|
|
# Do not install any requirements. We want this to be fast and work even if
|
|
# system dependencies are missing, since it's used to tell you what system
|
|
# dependencies are missing! This also means that bindep must be installed
|
|
# separately, outside of the requirements files.
|
|
deps = bindep
|
|
commands = bindep test
|
|
|
|
[testenv:jjb]
|
|
basepython = python2.7
|
|
deps = jenkins-job-builder
|
|
whitelist_externals =
|
|
mkdir
|
|
rm
|
|
commands =
|
|
rm -rf {envdir}/tmp
|
|
mkdir -p {envdir}/tmp/jobs
|
|
pip install -U jenkins/modules/jjb_afs
|
|
jenkins-jobs -l debug test -o {envdir}/tmp/jobs jenkins/jobs
|
|
|
|
[testenv:jenkins-project]
|
|
deps =
|
|
PyYAML
|
|
voluptuous
|
|
commands =
|
|
{toxinidir}/tools/jenkins-projects-checks.py
|
|
|
|
[testenv:zuul]
|
|
basepython = python2.7
|
|
deps =
|
|
jenkins-job-builder==1.6.1
|
|
zuul
|
|
whitelist_externals =
|
|
rm
|
|
jenkins-jobs
|
|
find
|
|
commands =
|
|
rm -rf {envdir}/tmp
|
|
mkdir -p {envdir}/tmp/jobs
|
|
pip install -U jenkins/modules/jjb_afs
|
|
jenkins-jobs -l debug test -o {envdir}/tmp/jobs jenkins/jobs
|
|
bash -c 'find {envdir}/tmp/jobs -printf "%f\n" > {envdir}/tmp/job-list.txt'
|
|
zuul-server -c tools/zuul.conf-sample -l zuul/layout.yaml -t {envdir}/tmp/job-list.txt
|
|
|
|
[testenv:infra-docs]
|
|
deps =
|
|
Jinja2
|
|
PyYAML
|
|
commands = {toxinidir}/docs-site/generate_infra_index.py {toxinidir}/docs-site/infra-documents.yaml
|
|
|
|
[testenv:specs]
|
|
deps =
|
|
Jinja2
|
|
PyYAML
|
|
commands = {toxinidir}/specs/generate_specs_site.py {toxinidir}/specs/specs.yaml
|
|
|
|
[testenv:dib]
|
|
deps =
|
|
diskimage-builder
|
|
changedir = {toxinidir}/nodepool
|
|
commands = dib-lint
|
|
|
|
[testenv:nodepool]
|
|
commands = nodepool -c {toxinidir}/nodepool/nodepool.yaml config-validate
|