Merge "Add zuul jobs for tox and linters"
This commit is contained in:
commit
c7191c6d5a
16
bindep.txt
Normal file
16
bindep.txt
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
# This is a cross-platform list tracking distribution packages needed by tests;
|
||||||
|
# see http://docs.openstack.org/infra/bindep/ for additional information.
|
||||||
|
|
||||||
|
libffi-devel [test platform:rpm]
|
||||||
|
libffi-dev [test platform:dpkg]
|
||||||
|
libssl-dev [platform:dpkg]
|
||||||
|
openssl-devel [platform:rpm]
|
||||||
|
python3-dev [compile test platform:dpkg platform:apk]
|
||||||
|
python3-devel [compile test platform:rpm]
|
||||||
|
libre2-dev [compile test platform:dpkg]
|
||||||
|
libre2-4 [platform:ubuntu-bionic]
|
||||||
|
libre2-3 [platform:debian-stretch]
|
||||||
|
libre2-1v5 [platform:ubuntu-xenial]
|
||||||
|
re2-devel [compile test platform:rpm]
|
||||||
|
re2-dev [platform:apk]
|
||||||
|
re2 [platform:rpm platform:apk]
|
20
setup.cfg
Normal file
20
setup.cfg
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
[metadata]
|
||||||
|
name = starlingx-zuul-jobs
|
||||||
|
summary = A set of Ansible playbooks used by StarlingX for CI
|
||||||
|
description-file =
|
||||||
|
README.rst
|
||||||
|
author = StarlingX Team
|
||||||
|
author-email = starlingx-discuss@lists.starlingx.io
|
||||||
|
home-page = https://starlingx.io/
|
||||||
|
classifier =
|
||||||
|
Intended Audience :: Information Technology
|
||||||
|
Intended Audience :: System Administrators
|
||||||
|
License :: OSI Approved :: Apache Software License
|
||||||
|
Operating System :: POSIX :: Linux
|
||||||
|
Programming Language :: Python
|
||||||
|
|
||||||
|
[build_sphinx]
|
||||||
|
source-dir = doc/source
|
||||||
|
build-dir = doc/build
|
||||||
|
all_files = 1
|
||||||
|
warning-is-error = 1
|
30
setup.py
Normal file
30
setup.py
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
#!/usr/bin/env python
|
||||||
|
# Copyright (c) 2013 Hewlett-Packard Development Company, L.P.
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
|
||||||
|
# THIS FILE IS MANAGED BY THE GLOBAL REQUIREMENTS REPO - DO NOT EDIT
|
||||||
|
import setuptools
|
||||||
|
|
||||||
|
# In python < 2.7.4, a lazy loading of package `pbr` will break
|
||||||
|
# setuptools if some other modules registered functions in `atexit`.
|
||||||
|
# solution from: http://bugs.python.org/issue15881#msg170215
|
||||||
|
try:
|
||||||
|
import multiprocessing # noqa
|
||||||
|
except ImportError:
|
||||||
|
pass
|
||||||
|
|
||||||
|
setuptools.setup(
|
||||||
|
setup_requires=['pbr>=2.0'],
|
||||||
|
pbr=True)
|
11
test-requirements.txt
Normal file
11
test-requirements.txt
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
# The order of packages is significant, because pip processes them in the order
|
||||||
|
# of appearance. Changing the order has an impact on the overall integration
|
||||||
|
# process, which may cause wedges in the gate later.
|
||||||
|
|
||||||
|
hacking>=1.1.0,<1.2 # Apache-2.0
|
||||||
|
|
||||||
|
zuul
|
||||||
|
ansible>=2.7.0,<2.8
|
||||||
|
ansible-lint<4
|
||||||
|
bashate>=0.2
|
||||||
|
zuul-sphinx>=0.2.0
|
2
tests/inventory
Normal file
2
tests/inventory
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
[all]
|
||||||
|
localhost
|
89
tox.ini
Normal file
89
tox.ini
Normal file
@ -0,0 +1,89 @@
|
|||||||
|
[tox]
|
||||||
|
minversion = 1.6
|
||||||
|
skipsdist = True
|
||||||
|
envlist = linters
|
||||||
|
|
||||||
|
[testenv]
|
||||||
|
basepython = python3
|
||||||
|
install_command = pip install {opts} {packages}
|
||||||
|
deps = -r{toxinidir}/test-requirements.txt
|
||||||
|
|
||||||
|
[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:docs]
|
||||||
|
whitelist_externals = bash
|
||||||
|
commands =
|
||||||
|
bash -c 'if [ -d doc ]; then \
|
||||||
|
python setup.py build_sphinx; \
|
||||||
|
fi'
|
||||||
|
|
||||||
|
[testenv:linters]
|
||||||
|
whitelist_externals = bash
|
||||||
|
passenv =
|
||||||
|
# NOTE(pabelanger): if you'd like to run tox -elinters locally, you'll need
|
||||||
|
# to export ANSIBLE_ROLES_PATH pointing to the currect repos.
|
||||||
|
# see openstack-zuul-jobs-linters job for more information.
|
||||||
|
ANSIBLE_ROLES_PATH
|
||||||
|
setenv =
|
||||||
|
ANSIBLE_LIBRARY= {envsitepackagesdir}/zuul/ansible/base/library
|
||||||
|
ANSIBLE_ACTION_PLUGINS = {envsitepackagesdir}/zuul/ansible/base/actiongeneral
|
||||||
|
commands =
|
||||||
|
flake8 {posargs}
|
||||||
|
# Ansible lint
|
||||||
|
# [ANSIBLE0012] Commands should not change things if nothing needs doing
|
||||||
|
bash -c 'if [ -d playbooks ]; then \
|
||||||
|
find playbooks -type f -regex ".*\.ya?ml" -print0 | xargs -t -n1 -0 \
|
||||||
|
ansible-lint -xANSIBLE0012; \
|
||||||
|
fi'
|
||||||
|
bash -c 'if [ -d roles ]; then \
|
||||||
|
find roles -maxdepth 1 -mindepth 1 -type d -printf "%p/\n" | xargs -t -n1 \
|
||||||
|
ansible-lint -xANSIBLE0012; \
|
||||||
|
fi'
|
||||||
|
# Ansible Syntax Check
|
||||||
|
bash -c 'if [ -d playbooks ]; then \
|
||||||
|
find playbooks -type f -regex ".*\.ya?ml" -print0 | xargs -t -n1 -0 \
|
||||||
|
ansible-playbook --syntax-check -i {toxinidir}/tests/inventory; \
|
||||||
|
fi'
|
||||||
|
# Check Shell Scripts Syntax
|
||||||
|
bash -c 'if [ -d scripts ]; then \
|
||||||
|
find {toxinidir} \
|
||||||
|
-not \( -type d -name .?\* -prune \) \
|
||||||
|
-type f \
|
||||||
|
-not -name \*~ \
|
||||||
|
-not -name \*.md \
|
||||||
|
\( \
|
||||||
|
-name \*.sh \
|
||||||
|
-or -not -wholename \*/devstack/files/\* \
|
||||||
|
-wholename \*/devstack/\* \
|
||||||
|
\) \
|
||||||
|
-print0 | xargs -t -n1 -0 \
|
||||||
|
bashate -v -iE006; \
|
||||||
|
fi'
|
||||||
|
|
||||||
|
[testenv:venv]
|
||||||
|
commands = {posargs}
|
||||||
|
|
||||||
|
[flake8]
|
||||||
|
# These are ignored intentionally in openstack-infra projects;
|
||||||
|
# please don't submit patches that solely correct them or enable them.
|
||||||
|
ignore = E125,E129,H
|
||||||
|
show-source = True
|
||||||
|
exclude = .venv,.tox,dist,doc,build,*.egg
|
||||||
|
|
||||||
|
[testenv:pep8]
|
||||||
|
basepython = python3
|
||||||
|
usedevelop = False
|
||||||
|
skip_install = True
|
||||||
|
deps =
|
||||||
|
hacking
|
||||||
|
flake8-bugbear<=19.3.0
|
||||||
|
flake8<3.6.0
|
||||||
|
commands =
|
||||||
|
flake8
|
||||||
|
|
17
zuul.d/jobs.yaml
Normal file
17
zuul.d/jobs.yaml
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
- job:
|
||||||
|
name: stx-zuul-jobs-linters
|
||||||
|
parent: openstack-zuul-jobs-linters
|
||||||
|
description: |
|
||||||
|
This job runs against starlingx/zuul-jobs so we can properly
|
||||||
|
lint our ansible playbooks / roles.
|
||||||
|
required-projects:
|
||||||
|
- opendev/base-jobs
|
||||||
|
- openstack/openstack-zuul-jobs
|
||||||
|
- openstack/project-config
|
||||||
|
- opendev/system-config
|
||||||
|
- zuul/zuul-jobs
|
||||||
|
- zuul/zuul
|
||||||
|
vars:
|
||||||
|
tox_envlist: linters
|
||||||
|
tox_environment:
|
||||||
|
ANSIBLE_ROLES_PATH: ~/src/opendev.org/starlingx/zuul-jobs/roles:~/src/opendev.org/opendev/base-jobs/roles:~/src/opendev.org/zuul/zuul-jobs/roles:~/src/opendev.org/openstack/openstack-zuul-jobs/roles:~/src/opendev.org/openstack/project-config/roles:~/src/opendev.org/opendev/system-config/roles
|
@ -1,3 +1,11 @@
|
|||||||
- project:
|
- project:
|
||||||
templates:
|
templates:
|
||||||
- noop-jobs
|
- build-openstack-docs-pti
|
||||||
|
check:
|
||||||
|
jobs:
|
||||||
|
- openstack-tox-linters
|
||||||
|
- openstack-tox-pep8
|
||||||
|
gate:
|
||||||
|
jobs:
|
||||||
|
- openstack-tox-linters
|
||||||
|
- openstack-tox-pep8
|
||||||
|
Loading…
Reference in New Issue
Block a user