Add basic jobs in Zuul Layout and .gitreview
Based on other TripleO Ansible roles. Also add in basic plumbing required to enable the jobs and fix for various linting issues. Co-Authored-By: Alex Schultz <aschultz@redhat.com> Change-Id: Ia42b6f736605bdff46030706b19363143b04a7c0
This commit is contained in:
parent
c76cb5a371
commit
353c9dbfe4
|
@ -0,0 +1,4 @@
|
|||
[gerrit]
|
||||
host=review.openstack.org
|
||||
port=29418
|
||||
project=openstack/ansible-role-openstack-operations.git
|
|
@ -0,0 +1,6 @@
|
|||
# These are required here because ansible can't be in global-requirements due
|
||||
# to licensing conflicts. But we sill need to be able to pull them in for
|
||||
# lint checks and want to document these as ansible specific things that may
|
||||
# be required for this repository.
|
||||
ansible
|
||||
ansible-lint
|
|
@ -0,0 +1,21 @@
|
|||
#!/bin/bash
|
||||
|
||||
# ANSIBLE0006: Using command rather than module
|
||||
# we have a few use cases where we need to use curl and rsync
|
||||
# ANSIBLE0007: Using command rather than an argument to e.g file
|
||||
# we have a lot of 'rm' command and we should use file module instead
|
||||
# ANSIBLE0010: Package installs should not use latest.
|
||||
# Sometimes we need to update some packages.
|
||||
# ANSIBLE0012: Commands should not change things if nothing needs doing
|
||||
# ANSIBLE0013: Use Shell only when shell functionality is required
|
||||
# ANSIBLE0016: Tasks that run when changed should likely be handlers
|
||||
# this requires refactoring roles, skipping for now
|
||||
SKIPLIST="ANSIBLE0006,ANSIBLE0007,ANSIBLE0010,ANSIBLE0012,ANSIBLE0013,ANSIBLE0016"
|
||||
|
||||
# Lin the role.
|
||||
ansible-lint -vvv -x $SKIPLIST ./ || lint_error=1
|
||||
|
||||
# exit with 1 if we had a least an error or warning.
|
||||
if [[ -n "$lint_error" ]]; then
|
||||
exit 1;
|
||||
fi
|
|
@ -4,7 +4,9 @@
|
|||
# GNU General Public License v3.0+
|
||||
# (see COPYING or https://www.gnu.org/licenses/gpl-3.0.txt)
|
||||
|
||||
from __future__ import absolute_import, division, print_function
|
||||
from __future__ import absolute_import
|
||||
from __future__ import division
|
||||
from __future__ import print_function
|
||||
__metaclass__ = type
|
||||
|
||||
|
||||
|
|
|
@ -2,8 +2,8 @@
|
|||
|
||||
import docker
|
||||
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
from ansible.module_utils._text import to_native
|
||||
from ansible.module_utils.basic import AnsibleModule
|
||||
|
||||
|
||||
ANSIBLE_METADATA = {
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
pbr>=1.6
|
||||
ansible
|
|
@ -0,0 +1,38 @@
|
|||
[metadata]
|
||||
name = ansible-role-openstack-operations
|
||||
summary = ansible-openstack-operations - Ansible role to perform some OpenStack Day 2 Operations
|
||||
description-file =
|
||||
README.md
|
||||
author = TripleO Team
|
||||
author-email = openstack-dev@lists.openstack.org
|
||||
home-page = https://git.openstack.org/cgit/openstack/ansible-role-openstack-operations
|
||||
classifier =
|
||||
License :: OSI Approved :: Apache Software License
|
||||
Development Status :: 4 - Beta
|
||||
Intended Audience :: Developers
|
||||
Intended Audience :: System Administrators
|
||||
Intended Audience :: Information Technology
|
||||
Topic :: Utilities
|
||||
|
||||
[global]
|
||||
setup-hooks =
|
||||
pbr.hooks.setup_hook
|
||||
|
||||
[files]
|
||||
data_files =
|
||||
share/ansible/roles/openstack-operations/defaults = defaults/*
|
||||
share/ansible/roles/openstack-operations/handlers = handlers/*
|
||||
share/ansible/roles/openstack-operations/meta = meta/*
|
||||
share/ansible/roles/openstack-operations/tasks = tasks/*
|
||||
share/ansible/roles/openstack-operations/templates = templates/*
|
||||
share/ansible/roles/openstack-operations/tests = tests/*
|
||||
share/ansible/roles/openstack-operations/vars = vars/*
|
||||
share/ansible/roles/openstack-operations/files = files/*
|
||||
|
||||
[wheel]
|
||||
universal = 1
|
||||
|
||||
[pbr]
|
||||
skip_authors = True
|
||||
skip_changelog = True
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
# Copyright Red Hat, Inc. All Rights Reserved.
|
||||
#
|
||||
# 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 setuptools
|
||||
|
||||
setuptools.setup(
|
||||
setup_requires=['pbr'],
|
||||
pbr=True)
|
|
@ -0,0 +1 @@
|
|||
hacking!=0.13.0,<0.14,>=0.12.0 # Apache-2.0
|
|
@ -0,0 +1,62 @@
|
|||
[tox]
|
||||
minversion = 1.6
|
||||
envlist = docs, linters
|
||||
skipdist = True
|
||||
|
||||
[testenv]
|
||||
usedevelop = True
|
||||
install_command = pip install -c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt} {opts} {packages}
|
||||
setenv = VIRTUAL_ENV={envdir}
|
||||
deps = -r{toxinidir}/test-requirements.txt
|
||||
whitelist_externals = bash
|
||||
|
||||
[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:pep8]
|
||||
commands =
|
||||
# Run hacking/flake8 check for all python files
|
||||
bash -c "git ls-files | grep -v releasenotes | xargs grep --binary-files=without-match \
|
||||
--files-with-match '^.!.*python$' \
|
||||
--exclude-dir .tox \
|
||||
--exclude-dir .git \
|
||||
--exclude-dir .eggs \
|
||||
--exclude-dir *.egg-info \
|
||||
--exclude-dir dist \
|
||||
--exclude-dir *lib/python* \
|
||||
--exclude-dir doc \
|
||||
| xargs flake8 --verbose"
|
||||
|
||||
[testenv:ansible-lint]
|
||||
basepython=python2
|
||||
commands =
|
||||
bash ci-scripts/ansible-lint.sh
|
||||
|
||||
[testenv:linters]
|
||||
deps =
|
||||
-r{toxinidir}/test-requirements.txt
|
||||
-r{toxinidir}/ansible-requirements.txt
|
||||
commands =
|
||||
{[testenv:pep8]commands}
|
||||
{[testenv:ansible-lint]commands}
|
||||
|
||||
[testenv:releasenotes]
|
||||
whitelist_externals = bash
|
||||
commands = bash -c ci-scripts/releasenotes_tox.sh
|
||||
|
||||
[testenv:venv]
|
||||
commands = {posargs}
|
||||
|
||||
[flake8]
|
||||
# E123, E125 skipped as they are invalid PEP-8.
|
||||
# E265 deals withs paces inside of comments
|
||||
# FIXME(aschultz): not sure how to fix this for ansible libraries:
|
||||
# H236 Python 3.x incompatible __metaclass__, use six.add_metaclass()
|
||||
show-source = True
|
||||
ignore = E123,E125,E265,H236
|
||||
builtins = _
|
|
@ -0,0 +1,12 @@
|
|||
- project:
|
||||
templates:
|
||||
- publish-to-pypi
|
||||
check:
|
||||
jobs:
|
||||
- openstack-tox-linters
|
||||
gate:
|
||||
jobs:
|
||||
- openstack-tox-linters
|
||||
post:
|
||||
jobs:
|
||||
- publish-openstack-python-branch-tarball
|
Loading…
Reference in New Issue