Add molecule test for bootstrap-os (#5845)

This commit is contained in:
Maxime Guyot 2020-04-01 16:25:28 +02:00 committed by GitHub
parent be9414fabe
commit ded58d3b66
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
8 changed files with 94 additions and 0 deletions

View file

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

16
.gitlab-ci/vagrant.yml Normal file
View file

@ -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

View file

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

View file

@ -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

View file

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

View file

@ -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')

View file

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

12
tests/scripts/molecule_run.sh Executable file
View file

@ -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