Skip to content

Commit

Permalink
Merge pull request #80 from pieterlexis/fix-tests-travis
Browse files Browse the repository at this point in the history
Fix tests in travis, add 4.3 tests
  • Loading branch information
pieterlexis authored Sep 15, 2020
2 parents ca61573 + 4110a48 commit bab55ab
Show file tree
Hide file tree
Showing 13 changed files with 176 additions and 42 deletions.
27 changes: 19 additions & 8 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
---
os: linux
dist: focal
language: python
python:
- "2.7"
- "3.6"

sudo: required

# Enable the docker service
services:
- docker
Expand All @@ -20,18 +19,30 @@ before_install:
# Parallel testing of the supported
# Ansible versions
env:
matrix:
- ANSIBLE=2.7
- ANSIBLE=2.8
- ANSIBLE=2.9
jobs:
- ANSIBLE=2.7 AUTH_VERSION=42
- ANSIBLE=2.7 AUTH_VERSION=43
- ANSIBLE=2.7 AUTH_VERSION=master

- ANSIBLE=2.8 AUTH_VERSION=42
- ANSIBLE=2.8 AUTH_VERSION=43
- ANSIBLE=2.8 AUTH_VERSION=master

- ANSIBLE=2.9 AUTH_VERSION=42
- ANSIBLE=2.9 AUTH_VERSION=43
- ANSIBLE=2.9 AUTH_VERSION=master

jobs:
allow_failures:
- env: REC_VERSION=master

# Install tox
install:
- pip install tox-travis

# Test the current PowerDNS Authoritative Server stable release
script:
- tox -- molecule test -s pdns-42
- tox -- molecule test -s pdns-${AUTH_VERSION}

notifications:
webhooks: https://galaxy.ansible.com/api/v1/notifications/
6 changes: 2 additions & 4 deletions meta/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,14 +15,12 @@ galaxy_info:
versions:
- jessie
- stretch
- buster
- name: Ubuntu
versions:
- trusty
- utopic
- vivid
- wily
- xenial
- bionic
- focal
galaxy_tags:
- system
- dns
Expand Down
File renamed without changes.
20 changes: 6 additions & 14 deletions molecule/pdns-42/molecule.yml
Original file line number Diff line number Diff line change
Expand Up @@ -72,19 +72,12 @@ provisioner:
create: ../resources/create.yml
destroy: ../resources/destroy.yml
prepare: ../resources/prepare.yml
lint:
name: ansible-lint
options:
x:
# "systemctl used in place of systemd module"
- "ANSIBLE0006"
# "Tasks that run when changed should likely be handlers"
- "ANSIBLE0016"
# "Shells that use pipes should set the pipefail option"
- "306"
# "systemctl used in place of systemd module" "ANSIBLE0006"
# "Tasks that run when changed should likely be handlers" "ANSIBLE0016"
# "Shells that use pipes should set the pipefail option" "306"
lint: ansible-lint -x ANSIBLE0006 ANSIBLE0016 306

lint:
name: yamllint
lint: yamllint defaults tasks meta vars

verifier:
name: testinfra
Expand All @@ -97,5 +90,4 @@ verifier:
- ../repo-42/
- ../backend-sqlite/
- ../backend-mysql/
lint:
name: flake8
lint: flake8
9 changes: 9 additions & 0 deletions molecule/pdns-43/converge.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---

- hosts: pdns
vars_files:
- ../resources/vars/pdns-common.yml
- ../resources/vars/pdns-repo-43.yml
- ../resources/vars/pdns-backends.yml
roles:
- { role: pdns-ansible }
93 changes: 93 additions & 0 deletions molecule/pdns-43/molecule.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
---

scenario:
name: pdns-43

driver:
name: docker

dependency:
name: galaxy

platforms:
- name: centos-6
groups: ["pdns"]
image: centos:6

- name: centos-7
groups: ["pdns"]
image: centos:7
dockerfile_tpl: centos-systemd

# Temporarely disable CentOS 8 due to:
# https://github.com/ansible/ansible/issues/64963
# - name: centos-8
# groups: ["pdns"]
# image: centos:8
# dockerfile_tpl: centos-systemd

- name: ubuntu-1804
groups: ["pdns"]
image: ubuntu:18.04
dockerfile_tpl: debian-systemd

- name: debian-9
groups: ["pdns"]
image: debian:9
dockerfile_tpl: debian-systemd

- name: debian-10
groups: ["pdns"]
image: debian:10
dockerfile_tpl: debian-systemd

# In order to run the tests we need
# a MySQL container to be up & running
- name: mysql
image: mysql:5.7
env:
MYSQL_ROOT_PASSWORD: pdns
# Declaring the container as service,
# will link it to the others Platforms containers
# on creation.
is_service: yes

provisioner:
name: ansible
options:
diff: True
v: True
config_options:
defaults:
gathering: smart
fact_caching: jsonfile
fact_caching_connection: .ansible_cache
fact_caching_timeout: 7200
ssh_connection:
pipelining: true
inventory:
links:
host_vars: ../resources/host_vars/
playbooks:
create: ../resources/create.yml
destroy: ../resources/destroy.yml
prepare: ../resources/prepare.yml
# "systemctl used in place of systemd module" "ANSIBLE0006"
# "Tasks that run when changed should likely be handlers" "ANSIBLE0016"
# "Shells that use pipes should set the pipefail option" "306"
lint: ansible-lint -x ANSIBLE0006 ANSIBLE0016 306

lint: yamllint defaults tasks meta vars

verifier:
name: testinfra
options:
hosts: "pdns"
vvv: True
directory: ../resources/tests/all
additional_files_or_dirs:
# path relative to 'directory'
- ../repo-43/
- ../backend-sqlite/
- ../backend-mysql/
lint: flake8
File renamed without changes.
17 changes: 3 additions & 14 deletions molecule/pdns-master/molecule.yml
Original file line number Diff line number Diff line change
Expand Up @@ -72,19 +72,9 @@ provisioner:
create: ../resources/create.yml
destroy: ../resources/destroy.yml
prepare: ../resources/prepare.yml
lint:
name: ansible-lint
options:
x:
# "systemctl used in place of systemd module"
- "ANSIBLE0006"
# "Tasks that run when changed should likely be handlers"
- "ANSIBLE0016"
# "Shells that use pipes should set the pipefail option"
- "306"
lint: ansible-lint -x ANSIBLE0006 ANSIBLE0016 306

lint:
name: yamllint
lint: yamllint defaults tasks meta vars

verifier:
name: testinfra
Expand All @@ -97,5 +87,4 @@ verifier:
- ../repo-master/
- ../backend-sqlite/
- ../backend-mysql/
lint:
name: flake8
lint: flake8
33 changes: 33 additions & 0 deletions molecule/resources/tests/repo-43/test_repo_43.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@

debian_os = ['debian', 'ubuntu']
rhel_os = ['redhat', 'centos']


def test_repo_file(host):
f = None
if host.system_info.distribution.lower() in debian_os:
f = host.file('/etc/apt/sources.list.d/powerdns-auth-43.list')
if host.system_info.distribution.lower() in rhel_os:
f = host.file('/etc/yum.repos.d/powerdns-auth-43.repo')

assert f.exists
assert f.user == 'root'
assert f.group == 'root'


def test_pdns_repo(host):
f = None
if host.system_info.distribution.lower() in debian_os:
f = host.file('/etc/apt/sources.list.d/powerdns-auth-43.list')
if host.system_info.distribution.lower() in rhel_os:
f = host.file('/etc/yum.repos.d/powerdns-auth-43.repo')

assert f.exists
assert f.contains('auth-43')


def test_pdns_version(host):
cmd = host.run('/usr/sbin/pdns_server --version')

assert 'PowerDNS Authoritative Server' in cmd.stderr
assert '4.3' in cmd.stderr
7 changes: 7 additions & 0 deletions molecule/resources/vars/pdns-repo-43.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---

##
# PowerDNS 4.3.x Repository
##

pdns_install_repo: "{{ pdns_auth_powerdns_repo_43 }}"
1 change: 1 addition & 0 deletions tasks/database-mysql.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
name:
- default-mysql-client
- python-mysqldb
- python3-mysqldb
state: present
when: ansible_os_family == 'Debian'

Expand Down
3 changes: 2 additions & 1 deletion test-requirements.txt
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
molecule==2.22.0
molecule<3.1
docker-py==1.10.6
testinfra<5.4
2 changes: 1 addition & 1 deletion tox.ini
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[tox]
minversion = 1.8
envlist = py{27,36}-ansible{27,28,29}
envlist = py36-ansible{27,28,29}
skipsdist = true

[travis:env]
Expand Down

0 comments on commit bab55ab

Please sign in to comment.