tests/str: Rework invocation
Let's make our `run.sh` generically support any playbook. This is prep for writing further tests in Ansible. Along with that, rework the Ansible so that `tests.yml` is a playbook, and then the other bits are just task lists. It's easier to read. I also started to add a `use_git_build` variable with the idea that we'll be able to run these same tests against an upstream image by setting that variable off. Closes: #1493 Approved by: jlebon
This commit is contained in:
parent
5b3f79d4bb
commit
10fb74025d
|
|
@ -15,7 +15,7 @@ tests:
|
||||||
- ./tests/fedora-str/provision.sh
|
- ./tests/fedora-str/provision.sh
|
||||||
# TODO: enhance papr to have caching, a bit like https://docs.travis-ci.com/user/caching/
|
# TODO: enhance papr to have caching, a bit like https://docs.travis-ci.com/user/caching/
|
||||||
- curl -Lo fedora-atomic-host.qcow2 https://getfedora.org/atomic_qcow2_latest
|
- curl -Lo fedora-atomic-host.qcow2 https://getfedora.org/atomic_qcow2_latest
|
||||||
- env "TEST_SUBJECTS=$(pwd)/fedora-atomic-host.qcow2" ./tests/fedora-str/run.sh
|
- env "TEST_SUBJECTS=$(pwd)/fedora-atomic-host.qcow2" ./tests/fedora-str/playbook-run.sh tests/fedora-str/tests.yml
|
||||||
|
|
||||||
artifacts:
|
artifacts:
|
||||||
- tests/fedora-str/artifacts/fedora-atomic-host.qcow2.log
|
- tests/fedora-str/artifacts/fedora-atomic-host.qcow2.log
|
||||||
|
|
|
||||||
|
|
@ -1,31 +1,27 @@
|
||||||
---
|
# Run "admin unlock" and add locally built RPMs, then
|
||||||
- hosts: localhost
|
# copy the whole tests/ directory into the VM.
|
||||||
tags:
|
- command: ostree --version
|
||||||
- atomic
|
changed_when: False
|
||||||
remote_user: root
|
register: ostree_orig_version
|
||||||
tasks:
|
- set_fact:
|
||||||
- command: ostree --version
|
ostree_orig_version_yaml: "{{ ostree_orig_version.stdout | from_yaml }}"
|
||||||
changed_when: False
|
- name: Copy locally built RPMs
|
||||||
register: ostree_orig_version
|
synchronize: src=x86_64/ dest=/root/x86_64/ archive=yes
|
||||||
- set_fact:
|
- shell: ostree admin unlock || true
|
||||||
ostree_orig_version_yaml: "{{ ostree_orig_version.stdout | from_yaml }}"
|
# Install the RPMs we already have. For the test suite we use rpm2cpio
|
||||||
- name: Copy locally built RPMs
|
# since it depends on libsoup, but we're not using that yet for the sysinstalled tests
|
||||||
synchronize: src=x86_64/ dest=/root/x86_64/ archive=yes
|
- shell: >
|
||||||
- shell: ostree admin unlock || true
|
/usr/bin/rpm -Fvh /root/x86_64/*.rpm && \
|
||||||
# Install the RPMs we already have. For the test suite we use rpm2cpio
|
cd / && rpm2cpio /root/x86_64/ostree-tests-2*.rpm | cpio -div
|
||||||
# since it depends on libsoup, but we're not using that yet for the sysinstalled tests
|
- command: ostree --version
|
||||||
- shell: >
|
register: ostree_new_version
|
||||||
/usr/bin/rpm -Fvh /root/x86_64/*.rpm && \
|
- set_fact:
|
||||||
cd / && rpm2cpio /root/x86_64/ostree-tests-2*.rpm | cpio -div
|
ostree_new_version_yaml: "{{ ostree_new_version.stdout | from_yaml }}"
|
||||||
- command: ostree --version
|
- name: "Fail if we didn't change the ostree version"
|
||||||
register: ostree_new_version
|
when: ostree_orig_version_yaml['libostree']['Git'] == ostree_new_version_yaml['libostree']['Git']
|
||||||
- set_fact:
|
fail:
|
||||||
ostree_new_version_yaml: "{{ ostree_new_version.stdout | from_yaml }}"
|
msg: "Failed to change ostree version"
|
||||||
- name: "Fail if we didn't change the ostree version"
|
|
||||||
when: ostree_orig_version_yaml['libostree']['Git'] == ostree_new_version_yaml['libostree']['Git']
|
|
||||||
fail:
|
|
||||||
msg: "Failed to change ostree version"
|
|
||||||
|
|
||||||
# Next copy all of the tests/ directory
|
# Next copy all of the tests/ directory
|
||||||
- name: Copy test data
|
- name: Copy test data
|
||||||
synchronize: src=../../ dest=/root/tests/ archive=yes
|
synchronize: src=../../ dest=/root/tests/ archive=yes
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,8 @@
|
||||||
#!/usr/bin/bash
|
#!/usr/bin/bash
|
||||||
|
# A thin wrapper for ansible-playbook which has a nice check for
|
||||||
|
# TEST_SUBJECTS being set.
|
||||||
set -xeuo pipefail
|
set -xeuo pipefail
|
||||||
|
|
||||||
dn=$(cd $(dirname $0) && pwd)
|
|
||||||
cd ${dn}
|
|
||||||
|
|
||||||
# https://fedoraproject.org/wiki/CI/Tests
|
# https://fedoraproject.org/wiki/CI/Tests
|
||||||
if test -z "${TEST_SUBJECTS:-}"; then
|
if test -z "${TEST_SUBJECTS:-}"; then
|
||||||
cat <<EOF
|
cat <<EOF
|
||||||
|
|
@ -22,4 +21,4 @@ ls -al ${TEST_SUBJECTS}
|
||||||
|
|
||||||
export ANSIBLE_INVENTORY=${ANSIBLE_INVENTORY:-$(test -e inventory && echo inventory || echo /usr/share/ansible/inventory)}
|
export ANSIBLE_INVENTORY=${ANSIBLE_INVENTORY:-$(test -e inventory && echo inventory || echo /usr/share/ansible/inventory)}
|
||||||
ls -al /dev/kvm
|
ls -al /dev/kvm
|
||||||
ansible-playbook --tags=atomic tests.yml
|
exec ansible-playbook --tags=atomic "$@"
|
||||||
|
|
@ -1,20 +1,17 @@
|
||||||
---
|
# Run the system installed tests
|
||||||
- hosts: localhost
|
- import_tasks: overlay-git.yml
|
||||||
tags:
|
when: use_git_build
|
||||||
- atomic
|
# Down the line perhaps do each log file separately?
|
||||||
remote_user: root
|
- name: Run sysinstalled tests
|
||||||
tasks:
|
shell: /root/tests/installed/run.sh &> /root/installed-tests.log
|
||||||
# Down the line perhaps do each log file separately?
|
register: sysinstalled_result
|
||||||
- name: Run sysinstalled tests
|
failed_when: False
|
||||||
shell: /root/tests/installed/run.sh &> /root/installed-tests.log
|
- name: Fetch sysinstalled results
|
||||||
register: sysinstalled_result
|
fetch:
|
||||||
failed_when: False
|
src: /root/installed-tests.log
|
||||||
- name: Fetch sysinstalled results
|
dest: artifacts/installed-tests.log
|
||||||
fetch:
|
flat: yes
|
||||||
src: /root/installed-tests.log
|
- name: Assert that sysinstalled tests succeeded
|
||||||
dest: artifacts/installed-tests.log
|
when: sysinstalled_result.rc != 0
|
||||||
flat: yes
|
fail:
|
||||||
- name: Assert that sysinstalled tests succeeded
|
msg: "sysinstalled tests failed"
|
||||||
when: sysinstalled_result.rc != 0
|
|
||||||
fail:
|
|
||||||
msg: "sysinstalled tests failed"
|
|
||||||
|
|
|
||||||
|
|
@ -1,2 +1,10 @@
|
||||||
- include: overlay-git.yml
|
# This entrypoint right now just runs the sysinstalled-tests.
|
||||||
- include: sysinstall-tests.yml
|
---
|
||||||
|
- hosts: localhost
|
||||||
|
tags:
|
||||||
|
- atomic
|
||||||
|
remote_user: root
|
||||||
|
vars:
|
||||||
|
use_git_build: True
|
||||||
|
tasks:
|
||||||
|
- import_tasks: sysinstall-tests.yml
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue