mirror of
https://github.com/linux-system-roles/network.git
synced 2026-07-20 17:59:00 +00:00
Merge pull request #136 from tyll/partial_sync
Sync some changes from the templates repo
This commit is contained in:
commit
0efe09d6fd
9 changed files with 191 additions and 47 deletions
|
|
@ -2,12 +2,3 @@
|
|||
export LSR_MOLECULE_DEPS='-rmolecule_requirements.txt'
|
||||
|
||||
LSR_EXTRA_PACKAGES='python3-selinux'
|
||||
|
||||
case "${TRAVIS_PYTHON_VERSION}" in
|
||||
3.6|"")
|
||||
# Set these also if we are running locally:
|
||||
export LSR_TEXTRA_DEPS='PyYAML'
|
||||
export LSR_TEXTRA_DIR='tests'
|
||||
export LSR_TEXTRA_CMD='./ensure_non_running_provider.py'
|
||||
;;
|
||||
esac
|
||||
|
|
|
|||
28
.travis/custom.sh
Executable file
28
.travis/custom.sh
Executable file
|
|
@ -0,0 +1,28 @@
|
|||
#!/bin/bash
|
||||
# SPDX-License-Identifier: MIT
|
||||
|
||||
# This script is executed with two arguments passed to it:
|
||||
#
|
||||
# $1 - path to environment python (python used inside virtual environment
|
||||
# created by tox)
|
||||
# $2 - path to system python (python 3.x installed on the system)
|
||||
|
||||
set -e
|
||||
|
||||
ME=$(basename $0)
|
||||
SCRIPTDIR=$(readlink -f $(dirname $0))
|
||||
TOPDIR=$(readlink -f ${SCRIPTDIR}/..)
|
||||
|
||||
# Include library and config:
|
||||
. ${SCRIPTDIR}/utils.sh
|
||||
. ${SCRIPTDIR}/config.sh
|
||||
|
||||
# Sanitize arguments (see https://github.com/tox-dev/tox/issues/1463):
|
||||
ENVPYTHON=$(readlink -f $1)
|
||||
SYSPYTHON=$(readlink -f $2)
|
||||
shift 2
|
||||
|
||||
# Write your custom commands here that should be run when `tox -e custom`:
|
||||
if [[ -z "${TRAVIS}" ]] || lsr_check_python_version ${ENVPYTHON} -eq '3.6'; then
|
||||
(set -x; cd ${TOPDIR}/tests; ${ENVPYTHON} ./ensure_non_running_provider.py)
|
||||
fi
|
||||
136
.travis/utils.sh
Normal file
136
.travis/utils.sh
Normal file
|
|
@ -0,0 +1,136 @@
|
|||
# SPDX-License-Identifier: MIT
|
||||
#
|
||||
# Auxiliary functions and variables.
|
||||
#
|
||||
# Usage: . utils.sh
|
||||
|
||||
# All variables prefixed with __lsr_ are internal.
|
||||
|
||||
# Code that prints the version of Python interpreter to standard output; it
|
||||
# should be compatible across Python 2 and Python 3, the version is printed as
|
||||
# "{major}.{minor}".
|
||||
__lsr_get_python_version_py='
|
||||
import sys
|
||||
|
||||
sys.stdout.write("%s.%s\n" % sys.version_info[:2])
|
||||
'
|
||||
|
||||
# Colors for lsr_banner, lsr_info, and lsr_error.
|
||||
__lsr_color_reset='\e[0m'
|
||||
__lsr_color_red='\e[31m'
|
||||
__lsr_color_blue='\e[34m'
|
||||
__lsr_color_yellow='\e[1;33m'
|
||||
|
||||
##
|
||||
# lsr_banner $1 [$2]
|
||||
#
|
||||
# $1 - banner text
|
||||
# $2 - number of columns to occupy (default: 79)
|
||||
#
|
||||
# Print banner (in yellow) with $1 to stdout.
|
||||
function lsr_banner() {
|
||||
local maxlen=${2:-79}
|
||||
local fillchar='_'
|
||||
local text=" ${1} "
|
||||
local fillsize=$(( ${maxlen} - ${#text} ))
|
||||
local line1
|
||||
local line2
|
||||
|
||||
if [[ ${fillsize} -lt 0 ]]; then
|
||||
maxlen=${#text}
|
||||
fillsize=0
|
||||
fi
|
||||
|
||||
line1=$(printf "%*s" ${maxlen} "" | tr " " "${fillchar}")
|
||||
|
||||
if [[ $(( ${fillsize} % 2 )) -eq 1 ]]; then
|
||||
text="${text} "
|
||||
fi
|
||||
|
||||
line2=$(printf "%*s" $(( ${fillsize} / 2 )) "" | tr " " "${fillchar}")
|
||||
line2="${line2}${text}${line2}"
|
||||
|
||||
echo -e "${__lsr_color_yellow}${line1}${__lsr_color_reset}"
|
||||
echo -e "${__lsr_color_yellow}${line2}${__lsr_color_reset}"
|
||||
}
|
||||
|
||||
##
|
||||
# lsr_info ARGS
|
||||
#
|
||||
# Print ARGS (in blue) to stdout.
|
||||
function lsr_info() {
|
||||
echo -e "${__lsr_color_blue}$*${__lsr_color_reset}"
|
||||
}
|
||||
|
||||
##
|
||||
# lsr_error ARGS
|
||||
#
|
||||
# Print ARGS (in red) to stderr and exit with exit code 1.
|
||||
function lsr_error() {
|
||||
echo -e "${__lsr_color_red}$*${__lsr_color_reset}" >&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
##
|
||||
# lsr_get_python_version $1
|
||||
#
|
||||
# $1 - command or full path to Python interpreter
|
||||
#
|
||||
# If $1 is installed, return its version.
|
||||
function lsr_get_python_version() {
|
||||
if command -v $1 >/dev/null 2>&1; then
|
||||
$1 -c "${__lsr_get_python_version_py}"
|
||||
fi
|
||||
}
|
||||
|
||||
##
|
||||
# lsr_compare_versions $1 $2 $3
|
||||
#
|
||||
# $1 - version string (see notes below)
|
||||
# $2 - binary operation (see TEST(1))
|
||||
# $3 - version string (see notes below)
|
||||
#
|
||||
# Exit with 0 if `$1 $2 $3`.
|
||||
#
|
||||
# Notes:
|
||||
# A version string is of the format [:digit:] "." [:digit:].
|
||||
function lsr_compare_versions() {
|
||||
if [[ $# -lt 3 ]]; then
|
||||
return 1
|
||||
fi
|
||||
|
||||
test ${1//./} $2 ${3//./}
|
||||
}
|
||||
|
||||
##
|
||||
# lsr_check_python_version $1 $2 $3
|
||||
#
|
||||
# $1 - command or full path to Python interpreter
|
||||
# $2 - binary operation (see TEST(1))
|
||||
# $3 - version string in [:digit:] "." [:digit:] format.
|
||||
#
|
||||
# Exit with 0 if `version($1) $2 $3`.
|
||||
function lsr_check_python_version() {
|
||||
if [[ $# -lt 3 ]]; then
|
||||
return 1
|
||||
fi
|
||||
|
||||
lsr_compare_versions $(lsr_get_python_version $1) $2 $3
|
||||
}
|
||||
|
||||
##
|
||||
# lsr_compare_pythons $1 $2 $3
|
||||
#
|
||||
# $1 - command or full path to Python interpreter
|
||||
# $2 - binary operation (see TEST(1))
|
||||
# $3 - command or full path to Python interpreter
|
||||
#
|
||||
# Exit with 0 if `version($1) $2 version($3)`.
|
||||
function lsr_compare_pythons() {
|
||||
if [[ $# -lt 3 ]]; then
|
||||
return 1
|
||||
fi
|
||||
|
||||
lsr_compare_versions \
|
||||
$(lsr_get_python_version $1) $2 $(lsr_get_python_version $3)
|
||||
}
|
||||
4
custom_requirements.txt
Normal file
4
custom_requirements.txt
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
# SPDX-License-Identifier: MIT
|
||||
|
||||
# Write requirements for running your custom commands in tox here:
|
||||
PyYAML
|
||||
|
|
@ -1,3 +1,4 @@
|
|||
# SPDX-License-Identifier: MIT
|
||||
# Molecule managed
|
||||
|
||||
{% if item.registry is defined %}
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
# SPDX-License-Identifier: MIT
|
||||
---
|
||||
dependency:
|
||||
name: galaxy
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
# SPDX-License-Identifier: MIT
|
||||
---
|
||||
extends: default
|
||||
rules:
|
||||
|
|
@ -7,6 +8,5 @@ rules:
|
|||
brackets:
|
||||
max-spaces-inside: 1
|
||||
level: error
|
||||
line-length: disable
|
||||
truthy: disable
|
||||
document-start: disable
|
||||
|
|
|
|||
3
pylint_extra_requirements.txt
Normal file
3
pylint_extra_requirements.txt
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
# SPDX-License-Identifier: MIT
|
||||
|
||||
# Write extra requirements for running pylint here:
|
||||
54
tox.ini
54
tox.ini
|
|
@ -3,7 +3,7 @@
|
|||
envlist =
|
||||
black, pylint, flake8,
|
||||
py{26,27,36,37,38},
|
||||
extra
|
||||
custom
|
||||
skipsdist = true
|
||||
skip_missing_interpreters = true
|
||||
|
||||
|
|
@ -17,6 +17,7 @@ deps =
|
|||
py26: pytest
|
||||
|
||||
[base]
|
||||
system_python = /usr/bin/python3
|
||||
passenv = *
|
||||
setenv =
|
||||
PYTHONPATH = {toxinidir}/library:{toxinidir}/module_utils
|
||||
|
|
@ -24,6 +25,8 @@ setenv =
|
|||
changedir = {toxinidir}/tests
|
||||
covtarget = {toxinidir}/library --cov {toxinidir}/module_utils
|
||||
pytesttarget = .
|
||||
whitelist_externals =
|
||||
bash
|
||||
|
||||
[testenv:py26]
|
||||
envdir = {toxworkdir}/env-{env:TRAVIS_PYTHON_VERSION:2.6}
|
||||
|
|
@ -122,6 +125,7 @@ deps =
|
|||
colorama
|
||||
pylint>=1.8.4
|
||||
ansible
|
||||
-rpylint_extra_requirements.txt
|
||||
commands =
|
||||
{envpython} ./run_pylint.py --errors-only {posargs}
|
||||
|
||||
|
|
@ -196,39 +200,15 @@ commands =
|
|||
{[testenv:molecule_syntax]commands}
|
||||
{[testenv:molecule_test]commands}
|
||||
|
||||
# Here we provide a way how a role can add its custom command to be run. Such
|
||||
# extra command is run at the end of each testenv run and is driven by
|
||||
# environment variables. Involved environment variables are:
|
||||
#
|
||||
# LSR_TEXTRA_DEPS
|
||||
# - contains dependency needed by commands to run smoothly; if more than
|
||||
# one dependency is needed, use external file together with '-r' option
|
||||
# (see PEP 508)
|
||||
#
|
||||
# LSR_TEXTRA_DIR
|
||||
# - directory to which to cd
|
||||
#
|
||||
# LSR_TEXTRA_CMD
|
||||
# - custom command to be run
|
||||
#
|
||||
# Example: `network` system role need to run `./tests/ensure_non_running_provider.py`
|
||||
# to check for the existence of `*_provider.yml` playbooks. The script
|
||||
# is run in Python 3.6.
|
||||
#
|
||||
# To make this possible, we add to `.travis/config.sh` a snippet:
|
||||
#
|
||||
# export LSR_TEXTRA_DEPS='PyYAML'
|
||||
# export LSR_TEXTRA_DIR='tests'
|
||||
# export LSR_TEXTRA_CMD='./ensure_non_running_provider.py'
|
||||
#
|
||||
[testenv:extra]
|
||||
envdir = {toxworkdir}/env-{env:TRAVIS_PYTHON_VERSION:extra}
|
||||
[testenv:custom]
|
||||
envdir = {toxworkdir}/env-{env:TRAVIS_PYTHON_VERSION:custom}
|
||||
deps =
|
||||
{env:LSR_TEXTRA_DEPS:}
|
||||
-rcustom_requirements.txt
|
||||
passenv = *
|
||||
changedir = {toxinidir}/{env:LSR_TEXTRA_DIR:.}
|
||||
whitelist_externals =
|
||||
{[base]whitelist_externals}
|
||||
commands =
|
||||
{env:LSR_TEXTRA_CMD:python --version}
|
||||
bash {toxinidir}/.travis/custom.sh {envpython} {[base]system_python}
|
||||
|
||||
[pytest]
|
||||
addopts = -rxs
|
||||
|
|
@ -247,9 +227,9 @@ max-line-length = 88
|
|||
|
||||
[travis]
|
||||
python =
|
||||
2.6: py26,extra
|
||||
2.7: py27,flake8,pylint,extra
|
||||
3.5: coveralls,molecule,extra
|
||||
3.6: py36,black,extra
|
||||
3.7: py37,extra
|
||||
3.8: py38,extra
|
||||
2.6: py26,custom
|
||||
2.7: py27,flake8,pylint,custom
|
||||
3.5: coveralls,molecule,custom
|
||||
3.6: py36,black,custom
|
||||
3.7: py37,custom
|
||||
3.8: py38,custom
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue