mirror of
https://github.com/linux-system-roles/network.git
synced 2026-01-23 18:35:13 +00:00
88 lines
2.5 KiB
YAML
88 lines
2.5 KiB
YAML
# SPDX-License-Identifier: BSD-3-Clause
|
|
---
|
|
# This expects the variable test_playbook to be set from the outside
|
|
- name: Prepare for coverage extraction
|
|
hosts: all
|
|
tasks:
|
|
# Use set_fact to set variables to make them available in all plays
|
|
# 'vars:' Would only set variables for the current play
|
|
- name: Set facts
|
|
set_fact:
|
|
coverage_module: network_connections
|
|
coverage: /root/.local/bin/coverage
|
|
destdir: "remote_coverage/{{ test_playbook }}"
|
|
|
|
# This uses variables from the other set_fact task, therefore it needs to
|
|
# be its own task
|
|
- name: Set more facts
|
|
set_fact:
|
|
coverage_file:
|
|
# yamllint disable-line rule:line-length
|
|
ansible-coverage-{{ coverage_module }}-{{ test_playbook | replace('.yml', '') }}
|
|
|
|
- name: Debug info
|
|
debug:
|
|
msg:
|
|
# yamllint disable-line rule:line-length
|
|
Getting coverage for '{{ coverage_module }}' with '{{ test_playbook }}'
|
|
|
|
- name: Combine data in case old data is left there
|
|
command: "{{ coverage }} combine"
|
|
environment:
|
|
COVERAGE_FILE: "{{ coverage_file }}"
|
|
failed_when: false
|
|
changed_when: false
|
|
|
|
- name: Remove old data
|
|
file:
|
|
state: absent
|
|
path: "{{ coverage_file }}"
|
|
|
|
- name: Find coverage files to delete
|
|
find:
|
|
path: "{{ ansible_env.HOME }}"
|
|
patterns: ".coverage.*"
|
|
hidden: true
|
|
register: files_to_delete
|
|
|
|
- name: Remove old data
|
|
file:
|
|
path: "{{ item.path }}"
|
|
state: absent
|
|
with_items: "{{ files_to_delete.files }}"
|
|
|
|
- name: Copy coveragerc
|
|
copy:
|
|
content: "[run]\ndisable_warnings = no-data-collected\n"
|
|
dest: .coveragerc
|
|
mode: "0644"
|
|
|
|
- name: Install latest pip
|
|
pip:
|
|
name: coverage
|
|
extra_args: --user --upgrade
|
|
|
|
- name: Import the playbook '{{ test_playbook }}'
|
|
import_playbook: "{{ test_playbook }}"
|
|
vars:
|
|
ansible_python_interpreter:
|
|
# yamllint disable-line rule:line-length
|
|
"{{ coverage }} run -p --include /*/modules/network_connections.py,/*/module_utils/network_lsr/*"
|
|
|
|
- name: Gather coverage data
|
|
hosts: all
|
|
tasks:
|
|
- name: Gather coverage data
|
|
shell: "{{ coverage }} combine .coverage.*"
|
|
environment:
|
|
COVERAGE_FILE: "{{ coverage_file }}"
|
|
changed_when: false
|
|
|
|
- name: Get coverage data
|
|
hosts: all
|
|
tasks:
|
|
- name: "Fetch {{ coverage_file }}"
|
|
fetch:
|
|
src: "{{ coverage_file }}"
|
|
dest: "{{ destdir }}"
|
|
flat: false
|