improved testing
This commit is contained in:
parent
15a5f64e8a
commit
7e59a636cb
13 changed files with 156 additions and 102 deletions
9
.ansible-lint
Normal file
9
.ansible-lint
Normal file
|
@ -0,0 +1,9 @@
|
|||
use_default_rules: true
|
||||
|
||||
exclude_paths:
|
||||
- venv/
|
||||
- molecule/default/
|
||||
- tests/
|
||||
|
||||
#skip_list:
|
||||
# - '301'
|
9
.gitignore
vendored
9
.gitignore
vendored
|
@ -1 +1,10 @@
|
|||
*.pyc
|
||||
|
||||
# Environments
|
||||
.env
|
||||
.venv
|
||||
env/
|
||||
venv/
|
||||
ENV/
|
||||
env.bak/
|
||||
venv.bak/
|
||||
|
|
28
.travis.yml
28
.travis.yml
|
@ -1,18 +1,26 @@
|
|||
---
|
||||
sudo: required
|
||||
language: python
|
||||
python:
|
||||
- "3.6"
|
||||
- "3.7"
|
||||
|
||||
env:
|
||||
matrix:
|
||||
- MOLECULE_DISTRO: centos8
|
||||
- MOLECULE_DISTRO: centos7
|
||||
- MOLECULE_DISTRO: ubuntu1804
|
||||
- MOLECULE_DISTRO: ubuntu1604
|
||||
- MOLECULE_DISTRO: debian10
|
||||
- MOLECULE_DISTRO: debian9
|
||||
- MOLECULE_DISTRO: fedora31
|
||||
|
||||
services:
|
||||
- docker
|
||||
before_install:
|
||||
- sudo apt-get -qq update
|
||||
- >
|
||||
sudo apt-get install -o Dpkg::Options::="--force-confold"
|
||||
--force-yes -y docker-ce
|
||||
|
||||
install:
|
||||
- pip install -r requirements-travis.txt
|
||||
- python -m pip -q install -r requirements-travis.txt
|
||||
|
||||
script:
|
||||
- molecule test
|
||||
notifications:
|
||||
webhooks: https://galaxy.ansible.com/api/v1/notifications/
|
||||
|
||||
# notifications:
|
||||
# webhooks: https://galaxy.ansible.com/api/v1/notifications/
|
||||
|
|
|
@ -4,3 +4,8 @@ rules:
|
|||
line-length:
|
||||
max: 100
|
||||
level: warning
|
||||
|
||||
ignore: |
|
||||
/venv/
|
||||
/env/
|
||||
/molecule/
|
||||
|
|
|
@ -1,14 +0,0 @@
|
|||
# Molecule managed
|
||||
|
||||
{% if item.registry is defined %}
|
||||
FROM {{ item.registry.url }}/{{ item.image }}
|
||||
{% else %}
|
||||
FROM {{ item.image }}
|
||||
{% endif %}
|
||||
|
||||
RUN if [ $(command -v apt-get) ]; then apt-get update && apt-get install -y python sudo git bash ca-certificates && apt-get clean; \
|
||||
elif [ $(command -v dnf) ]; then dnf makecache && dnf --assumeyes install python sudo python-devel git python2-dnf bash && dnf clean all; \
|
||||
elif [ $(command -v yum) ]; then yum makecache fast && yum install -y python git sudo yum-plugin-ovl bash && sed -i 's/plugins=0/plugins=1/g' /etc/yum.conf && yum clean all; \
|
||||
elif [ $(command -v zypper) ]; then zypper refresh && zypper install -y python git sudo bash python-xml && zypper clean -a; \
|
||||
elif [ $(command -v apk) ]; then apk update && apk add --no-cache python sudo git bash ca-certificates; \
|
||||
elif [ $(command -v xbps-install) ]; then xbps-install -Syu && xbps-install -y python git sudo bash ca-certificates && xbps-remove -O; fi
|
|
@ -1,16 +0,0 @@
|
|||
*******
|
||||
Docker driver installation guide
|
||||
*******
|
||||
|
||||
Requirements
|
||||
============
|
||||
|
||||
* General molecule dependencies (see https://molecule.readthedocs.io/en/latest/installation.html)
|
||||
* Docker Engine
|
||||
* docker-py
|
||||
* docker
|
||||
|
||||
Install
|
||||
=======
|
||||
|
||||
$ sudo pip install docker-py
|
9
molecule/default/converge.yml
Normal file
9
molecule/default/converge.yml
Normal file
|
@ -0,0 +1,9 @@
|
|||
---
|
||||
- name: Converge
|
||||
hosts: all
|
||||
become: true
|
||||
roles:
|
||||
- ansible-role-gitea
|
||||
vars:
|
||||
gitea_http_domain: localhost
|
||||
gitea_root_url: http://localhost
|
|
@ -1,32 +1,40 @@
|
|||
---
|
||||
dependency:
|
||||
name: galaxy
|
||||
|
||||
driver:
|
||||
name: docker
|
||||
lint:
|
||||
name: yamllint
|
||||
|
||||
lint: |
|
||||
set -e
|
||||
yamllint .
|
||||
ansible-lint
|
||||
|
||||
platforms:
|
||||
- name: centos7
|
||||
image: centos:7
|
||||
- name: debian-stretch
|
||||
image: debian:stretch
|
||||
- name: debian-jessie
|
||||
image: debian:jessie
|
||||
- name: ubuntu-xenial
|
||||
image: ubuntu:xenial
|
||||
- name: ubuntu-bionic
|
||||
image: ubuntu:bionic
|
||||
- name: instance
|
||||
image: geerlingguy/docker-${MOLECULE_DISTRO:-centos7}-ansible:latest
|
||||
pre_build_image: true
|
||||
command: ${MOLECULE_DOCKER_COMMAND:-""}
|
||||
volumes:
|
||||
- /sys/fs/cgroup:/sys/fs/cgroup:ro
|
||||
privileged: true
|
||||
|
||||
|
||||
provisioner:
|
||||
name: ansible
|
||||
lint:
|
||||
name: ansible-lint
|
||||
playbooks:
|
||||
prepare: prepare.yml
|
||||
converge: converge.yml
|
||||
|
||||
scenario:
|
||||
name: default
|
||||
test_sequence:
|
||||
- lint
|
||||
- destroy
|
||||
- syntax
|
||||
- create
|
||||
- prepare
|
||||
- converge
|
||||
- verify
|
||||
- destroy
|
||||
|
||||
verifier:
|
||||
|
|
|
@ -1,5 +0,0 @@
|
|||
---
|
||||
- name: Converge
|
||||
hosts: all
|
||||
roles:
|
||||
- role: ansible-role-gitea
|
22
molecule/default/prepare.yml
Normal file
22
molecule/default/prepare.yml
Normal file
|
@ -0,0 +1,22 @@
|
|||
---
|
||||
- name: Perpare
|
||||
hosts: all
|
||||
become: true
|
||||
tasks:
|
||||
- name: install dependencies for gitea (RedHat based systems)
|
||||
yum:
|
||||
name: "{{ packages }}"
|
||||
state: present
|
||||
update_cache: true
|
||||
when: ansible_os_family == "RedHat"
|
||||
- name: install dependencies for gitea (Debian based systems)
|
||||
apt:
|
||||
name: "{{ packages }}"
|
||||
state: present
|
||||
update_cache: true
|
||||
when: ansible_os_family == "Debian"
|
||||
|
||||
vars:
|
||||
packages:
|
||||
- git
|
||||
- curl
|
|
@ -1,14 +1,25 @@
|
|||
import os
|
||||
|
||||
import testinfra.utils.ansible_runner
|
||||
|
||||
testinfra_hosts = testinfra.utils.ansible_runner.AnsibleRunner(
|
||||
os.environ['MOLECULE_INVENTORY_FILE']).get_hosts('all')
|
||||
|
||||
|
||||
def test_hosts_file(host):
|
||||
f = host.file('/etc/hosts')
|
||||
def test_gitea_binary(host):
|
||||
gitea_bin = host.file('/usr/local/bin/gitea')
|
||||
assert gitea_bin.exists
|
||||
assert gitea_bin.user == 'root'
|
||||
assert gitea_bin.group == 'root'
|
||||
|
||||
assert f.exists
|
||||
assert f.user == 'root'
|
||||
assert f.group == 'root'
|
||||
def test_gitea_config_file(host):
|
||||
gitea_config = host.file('/etc/gitea/gitea.ini')
|
||||
assert gitea_config.exists
|
||||
assert gitea_config.mode == 0o600
|
||||
|
||||
def test_gitea_service_running(host):
|
||||
gitea = host.service('gitea')
|
||||
assert gitea.is_running
|
||||
|
||||
def test_gitea_reachable(host):
|
||||
gitea_http = host.run('curl http://localhost:3000')
|
||||
assert gitea_http.rc == 0
|
||||
|
|
|
@ -1,62 +1,69 @@
|
|||
ansible==2.7.12
|
||||
ansible-lint==4.1.0
|
||||
ansible==2.9.6
|
||||
ansible-lint==4.2.0
|
||||
anyconfig==0.9.7
|
||||
arrow==0.13.1
|
||||
arrow==0.15.5
|
||||
asn1crypto==0.24.0
|
||||
atomicwrites==1.3.0
|
||||
attrs==19.1.0
|
||||
bcrypt==3.1.6
|
||||
autopep8==1.5.1
|
||||
bcrypt==3.1.7
|
||||
binaryornot==0.4.4
|
||||
Cerberus==1.2
|
||||
certifi==2019.3.9
|
||||
cffi==1.12.2
|
||||
Cerberus==1.3.2
|
||||
certifi==2020.4.5.1
|
||||
cffi==1.14.0
|
||||
chardet==3.0.4
|
||||
click==6.7
|
||||
click-completion==0.3.1
|
||||
colorama==0.3.9
|
||||
cookiecutter==1.6.0
|
||||
cryptography==2.6.1
|
||||
docker==3.7.0
|
||||
click==7.1.1
|
||||
click-completion==0.5.2
|
||||
click-help-colors==0.8
|
||||
colorama==0.4.3
|
||||
cookiecutter==1.7.0
|
||||
cryptography==2.9
|
||||
docker==4.2.0
|
||||
docker-pycreds==0.4.0
|
||||
entrypoints==0.3
|
||||
fasteners==0.14.1
|
||||
fasteners==0.15
|
||||
flake8==3.7.7
|
||||
future==0.17.1
|
||||
future==0.18.2
|
||||
git-url-parse==1.2.1
|
||||
idna==2.7
|
||||
Jinja2==2.10.1
|
||||
idna==2.9
|
||||
importlib-metadata==1.6.0
|
||||
Jinja2==2.11.2
|
||||
jinja2-time==0.2.0
|
||||
MarkupSafe==1.1.1
|
||||
mccabe==0.6.1
|
||||
molecule==2.20.1
|
||||
molecule==3.0.3
|
||||
monotonic==1.5
|
||||
more-itertools==6.0.0
|
||||
paramiko==2.4.2
|
||||
pathspec==0.5.9
|
||||
paramiko==2.7.1
|
||||
pathspec==0.8.0
|
||||
pbr==5.1.1
|
||||
pexpect==4.6.0
|
||||
pluggy==0.9.0
|
||||
poyo==0.4.2
|
||||
pexpect==4.8.0
|
||||
pi==0.1.2
|
||||
pluggy==0.13.1
|
||||
poyo==0.5.0
|
||||
psutil==5.4.6
|
||||
ptyprocess==0.6.0
|
||||
py==1.8.0
|
||||
pyasn1==0.4.5
|
||||
pycodestyle==2.5.0
|
||||
pycparser==2.19
|
||||
pycparser==2.20
|
||||
pyflakes==2.1.1
|
||||
PyNaCl==1.3.0
|
||||
pytest==4.3.1
|
||||
python-dateutil==2.8.0
|
||||
python-gilt==1.2.1
|
||||
PyYAML==5.1
|
||||
requests==2.21.0
|
||||
ruamel.yaml==0.15.89
|
||||
python-dateutil==2.8.1
|
||||
python-gilt==1.2.3
|
||||
PyYAML==5.3.1
|
||||
requests==2.23.0
|
||||
ruamel.yaml==0.16.10
|
||||
ruamel.yaml.clib==0.2.0
|
||||
sh==1.12.14
|
||||
six==1.11.0
|
||||
tabulate==0.8.2
|
||||
testinfra==1.19.0
|
||||
shellingham==1.3.2
|
||||
six==1.14.0
|
||||
tabulate==0.8.7
|
||||
testinfra==5.0.0
|
||||
tree-format==0.1.2
|
||||
urllib3==1.25.2
|
||||
websocket-client==0.55.0
|
||||
whichcraft==0.5.2
|
||||
yamllint==1.11.1
|
||||
urllib3==1.25.8
|
||||
websocket-client==0.57.0
|
||||
whichcraft==0.6.1
|
||||
yamllint==1.22.1
|
||||
zipp==3.1.0
|
||||
|
|
|
@ -52,6 +52,7 @@
|
|||
state: started
|
||||
enabled: true
|
||||
when: ansible_service_mgr == "systemd"
|
||||
ignore_errors: true
|
||||
|
||||
- include: fail2ban.yml
|
||||
when: gitea_fail2ban_enabled|bool
|
||||
|
|
Loading…
Reference in a new issue