Browse Source

Add molecule test for bootstrap-os (#5845)

pull/5871/head
Maxime Guyot 4 years ago
committed by GitHub
parent
commit
ded58d3b66
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 94 additions and 0 deletions
  1. 1
      .gitlab-ci.yml
  2. 16
      .gitlab-ci/vagrant.yml
  3. 2
      roles/bootstrap-os/defaults/main.yml
  4. 44
      roles/bootstrap-os/molecule/default/molecule.yml
  5. 6
      roles/bootstrap-os/molecule/default/playbook.yml
  6. 11
      roles/bootstrap-os/molecule/default/tests/test_default.py
  7. 2
      tests/requirements.txt
  8. 12
      tests/scripts/molecule_run.sh

1
.gitlab-ci.yml

@ -72,3 +72,4 @@ include:
- .gitlab-ci/shellcheck.yml
- .gitlab-ci/terraform.yml
- .gitlab-ci/packet.yml
- .gitlab-ci/vagrant.yml

16
.gitlab-ci/vagrant.yml

@ -0,0 +1,16 @@
---
molecule_tests:
tags: [vagrant]
only: [/^pr-.*$/]
except: ['triggers']
image: quay.io/miouge/kubespray-vagrant
services: []
stage: deploy-part1
before_script:
- tests/scripts/rebase.sh
- apt-get update && apt-get install -y python3-pip
- update-alternatives --install /usr/bin/python python /usr/bin/python3 10
- python -m pip install -r tests/requirements.txt
script:
- ./tests/scripts/molecule_run.sh

2
roles/bootstrap-os/defaults/main.yml

@ -23,3 +23,5 @@ fedora_coreos_packages:
## General
# Set the hostname to inventory_hostname
override_system_hostname: true
is_fedora_coreos: false

44
roles/bootstrap-os/molecule/default/molecule.yml

@ -0,0 +1,44 @@
---
scenario:
name: default
test_sequence:
- lint
- destroy
- dependency
- syntax
- create
- prepare
- converge
# - idempotence # skip
- side_effect
- verify
- destroy
dependency:
name: galaxy
lint:
name: yamllint
options:
config-file: ../../.yamllint
driver:
name: vagrant
provider:
name: libvirt
platforms:
- name: ubuntu18
box: generic/ubuntu1804
cpus: 2
memory: 2048
provisioner:
name: ansible
lint:
name: ansible-lint
inventory:
group_vars:
all:
user:
name: foo
comment: My test comment
verifier:
name: testinfra
lint:
name: flake8

6
roles/bootstrap-os/molecule/default/playbook.yml

@ -0,0 +1,6 @@
---
- name: Converge
hosts: all
gather_facts: no
roles:
- role: bootstrap-os

11
roles/bootstrap-os/molecule/default/tests/test_default.py

@ -0,0 +1,11 @@
import os
import testinfra.utils.ansible_runner
testinfra_hosts = testinfra.utils.ansible_runner.AnsibleRunner(
os.environ['MOLECULE_INVENTORY_FILE']
).get_hosts('all')
def test_python(host):
assert host.exists('python3') or host.exists('python')

2
tests/requirements.txt

@ -6,3 +6,5 @@ dopy==0.3.7
cryptography==2.8
ansible-lint==4.2.0
openshift==0.8.8
molecule==2.22
python-vagrant==0.5.15

12
tests/scripts/molecule_run.sh

@ -0,0 +1,12 @@
#!/bin/bash
set -euxo pipefail
export LC_ALL=C.UTF-8
export LANG=C.UTF-8
for d in $(find roles -name molecule -type d)
do
cd $(dirname $d)
molecule test --all
cd -
done
Loading…
Cancel
Save