Merge "Convert tox to native zuul"

This commit is contained in:
Zuul 2019-07-08 14:18:00 +00:00 committed by Gerrit Code Review
commit a7ce79fda2
10 changed files with 117 additions and 315 deletions

View File

@ -14,34 +14,8 @@ From with the project root, creating a skeleton for the new role.
$ ansible-galaxy init --role-skeleton=_skeleton_role_ --init-path=tripleo_ansible/roles ${NEWROLENAME}
Once the new role has been created, and is ready for testing add the role into
the `tox.ini` file as an test scenario.
.. code-block:: ini
[testenv:mol-${NEWROLENAME}]
basepython={[testenv:mol]basepython}
deps={[testenv:mol]deps}
changedir = {toxinidir}/tripleo_ansible/roles/${NEWROLENAME}
envdir = {toxworkdir}/mol
commands = python -m pytest --color=yes --html={envlogdir}/reports.html --self-contained-html {tty:-s} {toxinidir}/tests/test_molecule.py
If a given role has more than one scenario to test, the `--scenario` argument
can be used to set the scenario accordingly.
.. code-block:: ini
[testenv:mol-${NEWROLENAME}-${SCENARIO_2}]
basepython={[testenv:mol-${NEWROLENAME}]basepython}
deps={[testenv:mol-${NEWROLENAME}]deps}
changedir = {[testenv:mol-${NEWROLENAME}]changedir}
envdir = {[testenv:mol-${NEWROLENAME}]envdir}
commands = python -m pytest --color=yes --html={envlogdir}/reports.html --self-contained-html {tty:-s} {toxinidir}/tests/test_molecule.py --scenario=${SCENARIO_2}
When the role is ready for CI, add a **job** entry into the `zuul.d/molecule.yaml`.
When the role is ready for CI, add a **job** entry into the
`zuul.d/molecule.yaml`.
.. code-block:: yaml
@ -54,8 +28,8 @@ When the role is ready for CI, add a **job** entry into the `zuul.d/molecule.yam
tox_envlist: mol-${NEWROLENAME}
Make sure to add the **job** name into the check and gate section at the top of
the `molecule.yaml` file.
Make sure to add the **job** name into the check and gate section at the top
of the `molecule.yaml` file.
.. code-block:: yaml
@ -88,8 +62,8 @@ will perform the basic tasks noted above.
$ ansible-playbook -i localhost, role-addition.yml -e role_name=${NEWROLENAME}
If this playbook is being executed from a virtual-environment be sure to activate
the virtual environment before running the playbook.
If this playbook is being executed from a virtual-environment be sure to
activate the virtual environment before running the playbook.
.. code-block:: console

View File

@ -34,22 +34,6 @@
args:
creates: "tripleo_ansible/roles/{{ role_name }}"
- name: Add tox config
ini_file:
path: tox.ini
section: "testenv:mol-{{ role_name }}"
option: "{{ item.key }}"
value: "{{ item.value }}"
with_items:
- key: "basepython"
value: "{[testenv:mol]basepython}"
- key: "deps"
value: "{[testenv:mol]deps}"
- key: "changedir"
value: "{toxinidir}/tripleo_ansible/roles/{{ role_name }}"
- key: "commands"
value: "python -m pytest --color=yes --html={envlogdir}/reports.html --self-contained-html {tty:-s} {toxinidir}/tests/test_molecule.py"
- name: Read zuul molecule file
slurp:
src: zuul.d/molecule.yaml
@ -86,7 +70,7 @@
"^tripleo_ansible/roles/" ~ role_name ~ "/.*"
],
"vars": {
"tox_envlist": "mol-" ~ role_name
"tripleo_role_name": role_name
}
}
%}

View File

@ -54,12 +54,11 @@ PS1="[\u@\h \W]\$" source "${HOME}/test-python/bin/activate"
# Run local test
source "${PROJECT_DIR}/ansible-test-env.rc"
export ANSIBLE_ROLES_PATH="${ANSIBLE_ROLES_PATH}:${HOME}/zuul-jobs/roles"
ansible-playbook -i "${PROJECT_DIR}/tests/hosts.ini" \
-e "tripleo_src=$(realpath --relative-to="${HOME}" "${PROJECT_DIR}")" \
-e "tripleo_role_name=${ROLE_NAME}" \
-e "ansible_user=${USER}" \
-e "ansible_user_dir=${HOME}" \
"${PROJECT_DIR}/tripleo_ansible/playbooks/prepare-test-host.yml"
# Run test
pushd "${PROJECT_DIR}/tripleo_ansible/roles/${ROLE_NAME}"
molecule test --all
popd
"${PROJECT_DIR}/tripleo_ansible/playbooks/prepare-test-host.yml" \
"${PROJECT_DIR}/zuul.d/playbooks/run-local.yml"

View File

@ -1 +1 @@
test ansible_connection=local
test ansible_connection=local ansible_host=localhost

216
tox.ini
View File

@ -44,7 +44,8 @@ commands =
[testenv:ansible-lint]
envdir = {toxworkdir}/linters
deps = {[testenv:linters]deps}
deps =
{[testenv:linters]deps}
commands =
bash -c "ansible-galaxy install -fr {toxinidir}/tripleo_ansible/ansible-role-requirements.yml"
python -m pre_commit run ansible-lint -a
@ -75,9 +76,9 @@ commands =
[testenv:linters]
deps =
{[testenv:mol]deps}
-r {toxinidir}/test-requirements.txt
-r {toxinidir}/requirements.txt
-r {toxinidir}/test-requirements.txt
-r {toxinidir}/molecule-requirements.txt
commands =
{[testenv:pep8]commands}
{[testenv:ansible-lint]commands}
@ -108,218 +109,9 @@ ignore = D001
commands = {posargs}
[testenv:role-addition]
basepython={[testenv:mol]basepython}
deps=
{[testenv:mol]deps}
{[testenv:linters]deps}
commands =
bash -c "ansible-playbook -i localhost, role-addition.yml -e role_name=skeleton_test"
bash -c "pushd {toxinidir}/tripleo_ansible/roles/skeleton_test; molecule test --all; popd"
{[testenv:linters]commands}
[testenv:mol] # environment naming scheme "mol-$ROLE_NAME"
# basepython forces tox to use system python and avoid other
# python versions like pyenv ones
basepython=python
deps =
-r {toxinidir}/molecule-requirements.txt
[testenv:mol-aide]
basepython = {[testenv:mol]basepython}
deps = {[testenv:mol]deps}
changedir = {toxinidir}/tripleo_ansible/roles/aide
commands = python -m pytest --color=yes --html={envlogdir}/reports.html --self-contained-html {tty:-s} {toxinidir}/tests/test_molecule.py
[testenv:mol-test_deps]
basepython={[testenv:mol]basepython}
deps={[testenv:mol]deps}
changedir = {toxinidir}/tripleo_ansible/roles/test_deps
envdir = {toxworkdir}/mol
commands =
python -m pytest --color=yes --html={envlogdir}/reports.html --self-contained-html {tty:-s} {toxinidir}/tests/test_molecule.py
[testenv:mol-test_json_error_callback]
basepython = {[testenv:mol]basepython}
deps = {[testenv:mol]deps}
changedir = {toxinidir}/tripleo_ansible/roles/test_json_error_callback
commands = python -m pytest --color=yes --html={envlogdir}/reports.html --self-contained-html {tty:-s} {toxinidir}/tests/test_molecule.py
[testenv:mol-test_package_action]
basepython = {[testenv:mol]basepython}
deps = {[testenv:mol]deps}
changedir = {toxinidir}/tripleo_ansible/roles/test_package_action
commands = python -m pytest --color=yes --html={envlogdir}/reports.html --self-contained-html {tty:-s} {toxinidir}/tests/test_molecule.py
[testenv:mol-test_package_action-default]
basepython = {[testenv:mol-test_package_action]basepython}
deps = {[testenv:mol-test_package_action]deps}
changedir = {[testenv:mol-test_package_action]changedir}
commands = python -m pytest --color=yes --html={envlogdir}/reports.html --self-contained-html {tty:-s} {toxinidir}/tests/test_molecule.py --scenario=default
[testenv:mol-test_package_action-negative]
basepython = {[testenv:mol-test_package_action]basepython}
deps = {[testenv:mol-test_package_action]deps}
changedir = {[testenv:mol-test_package_action]changedir}
commands = python -m pytest --color=yes --html={envlogdir}/reports.html --self-contained-html {tty:-s} {toxinidir}/tests/test_molecule.py --scenario=negative
[testenv:mol-test_package_action-positive]
basepython = {[testenv:mol-test_package_action]basepython}
deps = {[testenv:mol-test_package_action]deps}
changedir = {[testenv:mol-test_package_action]changedir}
commands = python -m pytest --color=yes --html={envlogdir}/reports.html --self-contained-html {tty:-s} {toxinidir}/tests/test_molecule.py --scenario=positive
[testenv:mol-tuned]
basepython = {[testenv:mol]basepython}
deps = {[testenv:mol]deps}
changedir = {toxinidir}/tripleo_ansible/roles/tuned
commands = python -m pytest --color=yes --html={envlogdir}/reports.html --self-contained-html {tty:-s} {toxinidir}/tests/test_molecule.py
[testenv:mol-tripleo-bootstrap]
basepython = {[testenv:mol]basepython}
deps = {[testenv:mol]deps}
changedir = {toxinidir}/tripleo_ansible/roles/tripleo-bootstrap
commands = python -m pytest --color=yes --html={envlogdir}/reports.html --self-contained-html {tty:-s} {toxinidir}/tests/test_molecule.py
[testenv:mol-tripleo-create-admin]
basepython = {[testenv:mol]basepython}
deps = {[testenv:mol]deps}
changedir = {toxinidir}/tripleo_ansible/roles/tripleo-create-admin
commands = python -m pytest --color=yes --html={envlogdir}/reports.html --self-contained-html {tty:-s} {toxinidir}/tests/test_molecule.py
[testenv:mol-tripleo-create-admin-default]
basepython = {[testenv:mol]basepython}
deps = {[testenv:mol]deps}
changedir = {toxinidir}/tripleo_ansible/roles/tripleo-create-admin
commands = python -m pytest --color=yes --html={envlogdir}/reports.html --self-contained-html {tty:-s} {toxinidir}/tests/test_molecule.py --scenario=default
[testenv:mol-tripleo-create-admin-keyadd]
basepython = {[testenv:mol]basepython}
deps = {[testenv:mol]deps}
changedir = {toxinidir}/tripleo_ansible/roles/tripleo-create-admin
commands = python -m pytest --color=yes --html={envlogdir}/reports.html --self-contained-html {tty:-s} {toxinidir}/tests/test_molecule.py --scenario=keyadd
[testenv:mol-tripleo-create-admin-keygen]
basepython = {[testenv:mol]basepython}
deps = {[testenv:mol]deps}
changedir = {toxinidir}/tripleo_ansible/roles/tripleo-create-admin
commands = python -m pytest --color=yes --html={envlogdir}/reports.html --self-contained-html {tty:-s} {toxinidir}/tests/test_molecule.py --scenario=keygen
[testenv:mol-tripleo-module-load]
basepython = {[testenv:mol]basepython}
deps = {[testenv:mol]deps}
changedir = {toxinidir}/tripleo_ansible/roles/tripleo-module-load
commands = python -m pytest --color=yes --html={envlogdir}/reports.html --self-contained-html {tty:-s} {toxinidir}/tests/test_molecule.py
[testenv:mol-tripleo-module-load-default]
basepython = {[testenv:mol]basepython}
deps = {[testenv:mol]deps}
changedir = {toxinidir}/tripleo_ansible/roles/tripleo-module-load
commands = python -m pytest --color=yes --html={envlogdir}/reports.html --self-contained-html {tty:-s} {toxinidir}/tests/test_molecule.py --scenario=default
[testenv:mol-tripleo-module-load-remove_module]
basepython = {[testenv:mol]basepython}
deps = {[testenv:mol]deps}
changedir = {toxinidir}/tripleo_ansible/roles/tripleo-module-load
commands = python -m pytest --color=yes --html={envlogdir}/reports.html --self-contained-html {tty:-s} {toxinidir}/tests/test_molecule.py --scenario=remove_module
[testenv:mol-tripleo-module-load-legacy_vars]
basepython = {[testenv:mol]basepython}
deps = {[testenv:mol]deps}
changedir = {toxinidir}/tripleo_ansible/roles/tripleo-module-load
commands = python -m pytest --color=yes --html={envlogdir}/reports.html --self-contained-html {tty:-s} {toxinidir}/tests/test_molecule.py --scenario=legacy_vars
[testenv:mol-tripleo-ssh-known-hosts]
basepython = {[testenv:mol]basepython}
deps = {[testenv:mol]deps}
changedir = {toxinidir}/tripleo_ansible/roles/tripleo-ssh-known-hosts
commands = python -m pytest --color=yes --html={envlogdir}/reports.html --self-contained-html {tty:-s} {toxinidir}/tests/test_molecule.py
[testenv:mol-tripleo-ssh-known-hosts-default]
basepython = {[testenv:mol]basepython}
deps = {[testenv:mol]deps}
changedir = {toxinidir}/tripleo_ansible/roles/tripleo-ssh-known-hosts
commands = python -m pytest --color=yes --html={envlogdir}/reports.html --self-contained-html {tty:-s} {toxinidir}/tests/test_molecule.py --scenario=default
[testenv:mol-tripleo-ssh-known-hosts-legacy_vars]
basepython = {[testenv:mol]basepython}
deps = {[testenv:mol]deps}
changedir = {toxinidir}/tripleo_ansible/roles/tripleo-ssh-known-hosts
commands = python -m pytest --color=yes --html={envlogdir}/reports.html --self-contained-html {tty:-s} {toxinidir}/tests/test_molecule.py --scenario=legacy_vars
[testenv:mol-tripleo-container-tag]
basepython = {[testenv:mol]basepython}
deps = {[testenv:mol]deps}
changedir = {toxinidir}/tripleo_ansible/roles/tripleo-container-tag
commands = python -m pytest --color=yes --html={envlogdir}/reports.html --self-contained-html {tty:-s} {toxinidir}/tests/test_molecule.py
[testenv:mol-tripleo-container-tag-default]
basepython = {[testenv:mol]basepython}
deps = {[testenv:mol]deps}
changedir = {toxinidir}/tripleo_ansible/roles/tripleo-container-tag
commands = python -m pytest --color=yes --html={envlogdir}/reports.html --self-contained-html {tty:-s} {toxinidir}/tests/test_molecule.py --scenario=default
[testenv:mol-tripleo-container-tag-podman]
basepython = {[testenv:mol]basepython}
deps = {[testenv:mol]deps}
changedir = {toxinidir}/tripleo_ansible/roles/tripleo-container-tag
commands = python -m pytest --color=yes --html={envlogdir}/reports.html --self-contained-html {tty:-s} {toxinidir}/tests/test_molecule.py --scenario=podman
[testenv:mol-tripleo-container-tag-legacy_vars]
basepython = {[testenv:mol]basepython}
deps = {[testenv:mol]deps}
changedir = {toxinidir}/tripleo_ansible/roles/tripleo-container-tag
commands = python -m pytest --color=yes --html={envlogdir}/reports.html --self-contained-html {tty:-s} {toxinidir}/tests/test_molecule.py --scenario=legacy_vars
[testenv:mol-tripleo-container-rm]
basepython = {[testenv:mol]basepython}
deps = {[testenv:mol]deps}
changedir = {toxinidir}/tripleo_ansible/roles/tripleo-container-rm
commands = python -m pytest --color=yes --html={envlogdir}/reports.html --self-contained-html {tty:-s} {toxinidir}/tests/test_molecule.py
[testenv:mol-tripleo-container-rm-default]
basepython = {[testenv:mol]basepython}
deps = {[testenv:mol]deps}
changedir = {toxinidir}/tripleo_ansible/roles/tripleo-container-rm
commands = python -m pytest --color=yes --html={envlogdir}/reports.html --self-contained-html {tty:-s} {toxinidir}/tests/test_molecule.py --scenario=default
[testenv:mol-tripleo-container-rm-docker]
basepython = {[testenv:mol]basepython}
deps = {[testenv:mol]deps}
changedir = {toxinidir}/tripleo_ansible/roles/tripleo-container-rm
commands = python -m pytest --color=yes --html={envlogdir}/reports.html --self-contained-html {tty:-s} {toxinidir}/tests/test_molecule.py --scenario=docker
[testenv:mol-tripleo-container-rm-docker_rm]
basepython = {[testenv:mol]basepython}
deps = {[testenv:mol]deps}
changedir = {toxinidir}/tripleo_ansible/roles/tripleo-container-rm
commands = python -m pytest --color=yes --html={envlogdir}/reports.html --self-contained-html {tty:-s} {toxinidir}/tests/test_molecule.py --scenario=docker_rm
[testenv:mol-tripleo-container-rm-legacy_vars]
basepython = {[testenv:mol]basepython}
deps = {[testenv:mol]deps}
changedir = {toxinidir}/tripleo_ansible/roles/tripleo-container-rm
commands = python -m pytest --color=yes --html={envlogdir}/reports.html --self-contained-html {tty:-s} {toxinidir}/tests/test_molecule.py --scenario=legacy_vars
[testenv:mol-tripleo-image-serve]
basepython = {[testenv:mol]basepython}
deps = {[testenv:mol]deps}
changedir = {toxinidir}/tripleo_ansible/roles/tripleo-image-serve
commands = python -m pytest --color=yes --html={envlogdir}/reports.html --self-contained-html {tty:-s} {toxinidir}/tests/test_molecule.py
[testenv:mol-tripleo-image-serve-default]
basepython = {[testenv:mol]basepython}
deps = {[testenv:mol]deps}
changedir = {toxinidir}/tripleo_ansible/roles/tripleo-image-serve
commands = python -m pytest --color=yes --html={envlogdir}/reports.html --self-contained-html {tty:-s} {toxinidir}/tests/test_molecule.py --scenario=default
[testenv:mol-tripleo-image-serve-legacy_vars]
basepython = {[testenv:mol]basepython}
deps = {[testenv:mol]deps}
changedir = {toxinidir}/tripleo_ansible/roles/tripleo-image-serve
commands = python -m pytest --color=yes --html={envlogdir}/reports.html --self-contained-html {tty:-s} {toxinidir}/tests/test_molecule.py --scenario=legacy_vars
[testenv:mol-tripleo-transfer]
basepython = {[testenv:mol]basepython}
deps = {[testenv:mol]deps}
changedir = {toxinidir}/tripleo_ansible/roles/tripleo-transfer
commands = python -m pytest --color=yes --html={envlogdir}/reports.html --self-contained-html {tty:-s} {toxinidir}/tests/test_molecule.py

View File

@ -1,21 +1,19 @@
---
- job:
name: tripleo-ansible-centos
parent: tox-molecule
description: Basic tripleo-ansible tox job
timeout: 900
description: Base tripleo-ansible job
name: tripleo-ansible-centos-7-base
nodeset: centos-7
parent: base
pre-run:
- tripleo_ansible/playbooks/prepare-test-host.yml
- zuul.d/playbooks/pre.yml
run:
- zuul.d/playbooks/run.yml
timeout: 1800
voting: true
- job:
name: tripleo-ansible-centos-sudo
parent: openstack-tox-with-sudo
description: Basic tripleo-ansible tox job with sudo
timeout: 900
nodeset: centos-7
voting: true
- job:
name: tripleo-ansible-docs
parent: openstack-tox-docs
files:
- ^doc/.*
- ^README.rst
name: tripleo-ansible-docs
parent: openstack-tox-docs

View File

@ -37,106 +37,101 @@
files:
- ^tripleo_ansible/roles/aide/.*
name: tripleo-ansible-centos-7-molecule-aide
parent: tripleo-ansible-centos
parent: tripleo-ansible-centos-7-base
vars:
tox_envlist: mol-aide
tripleo_role_name: aide
- job:
files:
- ^tripleo_ansible/roles/test_deps/.*
name: tripleo-ansible-centos-7-molecule-test_deps
parent: tripleo-ansible-centos
parent: tripleo-ansible-centos-7-base
vars:
tox_envlist: mol-test_deps
tripleo_role_name: test_deps
- job:
files:
- ^tripleo_ansible/roles/test_json_error_callback/.*
name: tripleo-ansible-centos-7-molecule-test_json_error_callback
parent: tripleo-ansible-centos
parent: tripleo-ansible-centos-7-base
vars:
tox_envlist: mol-test_json_error_callback
tripleo_role_name: test_json_error_callback
- job:
files:
- ^tripleo_ansible/ansible_plugins/action/package.py
- ^tripleo_ansible/roles/test_package_action/.*
name: tripleo-ansible-centos-7-molecule-test_package_action
parent: tripleo-ansible-centos
parent: tripleo-ansible-centos-7-base
vars:
tox_envlist: mol-test_package_action
tripleo_role_name: test_package_action
- job:
files:
- ^tripleo_ansible/roles/tripleo-bootstrap/.*
name: tripleo-ansible-centos-7-molecule-tripleo-bootstrap
parent: tripleo-ansible-centos
timeout: 1800
parent: tripleo-ansible-centos-7-base
vars:
tox_envlist: mol-tripleo-bootstrap
tripleo_role_name: tripleo-bootstrap
- job:
files:
- ^tripleo_ansible/roles/tuned/.*
name: tripleo-ansible-centos-7-molecule-tuned
parent: tripleo-ansible-centos
parent: tripleo-ansible-centos-7-base
vars:
tox_envlist: mol-tuned
tripleo_role_name: tuned
- job:
files:
- ^_skeleton_role_/.*
- ^role-addition.yml
name: tripleo-ansible-centos-7-role-addition
parent: tripleo-ansible-centos
nodeset: centos-7
parent: openstack-tox
timeout: 1800
vars:
tox_envlist: role-addition
- job:
files:
- ^tripleo_ansible/roles/tripleo-create-admin/.*
name: tripleo-ansible-centos-7-molecule-tripleo-create-admin
parent: tripleo-ansible-centos
timeout: 1800
parent: tripleo-ansible-centos-7-base
vars:
tox_envlist: mol-tripleo-create-admin
tripleo_role_name: tripleo-create-admin
- job:
files:
- ^tripleo_ansible/roles/tripleo-module-load/.*
name: tripleo-ansible-centos-7-molecule-tripleo-module-load
parent: tripleo-ansible-centos
timeout: 1800
parent: tripleo-ansible-centos-7-base
vars:
tox_envlist: mol-tripleo-module-load
tripleo_role_name: tripleo-module-load
- job:
files:
- ^tripleo_ansible/roles/tripleo-ssh-known-hosts/.*
name: tripleo-ansible-centos-7-molecule-tripleo-ssh-known-hosts
parent: tripleo-ansible-centos
parent: tripleo-ansible-centos-7-base
vars:
tox_envlist: mol-tripleo-ssh-known-hosts
tripleo_role_name: tripleo-ssh-known-hosts
- job:
files:
- ^tripleo_ansible/roles/tripleo-container-tag/.*
name: tripleo-ansible-centos-7-molecule-tripleo-container-tag
parent: tripleo-ansible-centos-sudo
pre-run:
- tripleo_ansible/playbooks/prepare-test-host.yml
parent: tripleo-ansible-centos-7-base
vars:
tox_envlist: mol-tripleo-container-tag
tripleo_role_name: tripleo-container-tag
- job:
files:
- ^tripleo_ansible/roles/tripleo-container-rm/.*
name: tripleo-ansible-centos-7-molecule-tripleo-container-rm
parent: tripleo-ansible-centos-sudo
pre-run:
- tripleo_ansible/playbooks/prepare-test-host.yml
parent: tripleo-ansible-centos-7-base
vars:
tox_envlist: mol-tripleo-container-rm
tripleo_role_name: tripleo-container-rm
- job:
files:
- ^tripleo_ansible/roles/tripleo-image-serve/.*
name: tripleo-ansible-centos-7-molecule-tripleo-image-serve
parent: tripleo-ansible-centos
parent: tripleo-ansible-centos-7-base
vars:
tox_envlist: mol-tripleo-image-serve
tripleo_role_name: tripleo-image-serve
- job:
files:
- ^tripleo_ansible/roles/tripleo-transfer/.*
name: tripleo-ansible-centos-7-molecule-tripleo-transfer
parent: tripleo-ansible-centos
parent: tripleo-ansible-centos-7-base
vars:
tox_envlist: mol-tripleo-transfer
tripleo_role_name: tripleo-transfer

28
zuul.d/playbooks/pre.yml Normal file
View File

@ -0,0 +1,28 @@
---
- hosts: all
pre_tasks:
- name: Ensure output dirs
file:
path: "{{ ansible_user_dir }}/zuul-output/logs"
state: directory
- name: Setup bindep
pip:
name: "bindep"
virtualenv: "{{ ansible_user_dir }}/test-python"
virtualenv_site_packages: true
- name: Run bindep
shell: |-
. {{ ansible_user_dir }}/test-python/bin/activate
{{ ansible_user_dir }}/{{ zuul.project.src_dir }}/scripts/bindep-install
become: true
- name: Setup test-python
pip:
requirements: "{{ ansible_user_dir }}/{{ zuul.project.src_dir }}/molecule-requirements.txt"
virtualenv: "{{ ansible_user_dir }}/test-python"
virtualenv_site_packages: true
roles:
- role: install-docker

View File

@ -0,0 +1,14 @@
---
- hosts: all
tasks:
- name: set basic zuul fact
set_fact:
zuul:
project:
src_dir: "{{ tripleo_src }}"
ansible_connection: ssh
- import_playbook: pre.yml
- import_playbook: run.yml

18
zuul.d/playbooks/run.yml Normal file
View File

@ -0,0 +1,18 @@
---
- hosts: all
environment:
ANSIBLE_LOG_PATH: "{{ ansible_user_dir }}/zuul-output/logs/ansible-execution.log"
tasks:
- name: Run role test job
shell: |-
. {{ ansible_user_dir }}/test-python/bin/activate
. {{ ansible_user_dir }}/{{ zuul.project.src_dir }}/ansible-test-env.rc
pytest --color=no \
--html={{ ansible_user_dir }}/zuul-output/logs/reports.html \
--self-contained-html \
-s \
{{ ansible_user_dir }}/{{ zuul.project.src_dir }}/tests/test_molecule.py
args:
chdir: "{{ ansible_user_dir }}/{{ zuul.project.src_dir }}/tripleo_ansible/roles/{{ tripleo_role_name }}"
executable: /bin/bash