90722b718c
Using the synchronize module made rsync try to fetch the files from the VM, even though we were part of the delegated block. Might be a subtle bug in ansible. But really, there's no point in using the module here. Both src and dest are local, so we can just call rsync ourselves.
84 lines
2.4 KiB
YAML
84 lines
2.4 KiB
YAML
---
|
|
- hosts: localhost
|
|
gather_facts: yes
|
|
vars:
|
|
artifacts: "{{ lookup('env', 'TEST_ARTIFACTS')|default('./artifacts', true) }}"
|
|
subjects: "{{ lookup('env', 'TEST_SUBJECTS')}}"
|
|
tags:
|
|
- atomic
|
|
|
|
tasks:
|
|
- name: Prepare an SSH config
|
|
set_fact:
|
|
ssh_config: |
|
|
Host vmcheck
|
|
User {{ansible_ssh_user}}
|
|
Port {{ansible_ssh_port}}
|
|
HostName {{ansible_ssh_host}}
|
|
IdentityFile {{ansible_ssh_private_key_file}}
|
|
UserKnownHostsFile /dev/null
|
|
StrictHostKeyChecking no
|
|
|
|
- name: Add executor host
|
|
add_host:
|
|
name: executor
|
|
ansible_connection: local
|
|
ansible_ssh_host: 127.0.0.1
|
|
ansible_ssh_connection: local
|
|
|
|
# XXX: move to standard-test-roles, e.g. standard-test-get-source
|
|
- name: Extract and run tests
|
|
delegate_to: executor
|
|
block:
|
|
- name: Gather facts
|
|
setup:
|
|
delegate_facts: True
|
|
|
|
- name: Install requirements
|
|
package: name={{item}} state=present
|
|
with_items:
|
|
- fedpkg
|
|
|
|
# The dist doesn't actually matter here, it's just so we don't barf on
|
|
# private branches.
|
|
- name: Download and extract sources
|
|
command: fedpkg --dist=master prep
|
|
args:
|
|
chdir: "{{playbook_dir}}/.."
|
|
|
|
- name: Get source directory from environment
|
|
shell: rpm -q --specfile {{playbook_dir}}/../rpm-ostree.spec
|
|
--qf '{{playbook_dir}}/../%{NAME}-%{VERSION}\n' | head -n1
|
|
register: srcdir_query
|
|
|
|
- set_fact:
|
|
srcdir: "{{srcdir_query.stdout}}"
|
|
|
|
- name: Write out SSH config
|
|
copy:
|
|
content: "{{ssh_config}}"
|
|
dest: "{{srcdir}}/ssh-config"
|
|
|
|
- set_fact:
|
|
vmssh: ssh -F {{srcdir}}/ssh-config vmcheck
|
|
|
|
- name: Get rpm-ostree status
|
|
command: "{{vmssh}} rpm-ostree status --json"
|
|
|
|
- name: Run vmcheck
|
|
block:
|
|
- name: Start test
|
|
command: tests/vmcheck/multitest.py vmcheck
|
|
# XXX: consider making vmcheck become an installed test
|
|
environment:
|
|
VMTESTS: 1
|
|
TESTS: basic
|
|
topsrcdir: "{{srcdir}}"
|
|
commondir: "{{srcdir}}/tests/common"
|
|
args:
|
|
chdir: "{{srcdir}}"
|
|
|
|
always:
|
|
- name: Fetch test results
|
|
command: rsync -a --delete {{srcdir}}/vmcheck/ {{artifacts}}/vmcheck
|