Removing coverchange job

In retrospect this job provided very little value for
the short time it was functioning and none afterward.

Therefore I would argue for it's removal.

Signed-off-by: Jiri Podivin <jpodivin@redhat.com>
Change-Id: I326e06fe5918a5de7183f246dc850ec89b585ed2
This commit is contained in:
Jiri Podivin 2022-03-15 11:38:41 +01:00
parent 60d4b8aa95
commit c6003f2ae1
2 changed files with 0 additions and 111 deletions

View File

@ -28,17 +28,6 @@
- openstack/validations-common
files:
- ^requirements.txt$
- job:
name: validations-common-coverchange
nodeset: centos-9-stream
parent: base
run: playbooks/coverchange.yaml
timeout: 1600
voting: false
required-projects:
- openstack/validations-common
files:
- ^validations_common/.*
- job:
description: Base validations-common job

View File

@ -1,100 +0,0 @@
---
- hosts: all
name: Coverage change
roles:
- ensure-virtualenv
- ensure-pip
- role: ensure-tox
vars:
ensure_global_symlinks: true
tasks:
- name: Environment setup
shell:
cmd: |
set -e
virtualenv --system-site-packages {{ ansible_user_dir }}/.venv
args:
chdir: "{{ ansible_user_dir }}/{{ zuul.project.src_dir }}"
- name: Measure coverage with the submitted change
# `awk` will work on lines starting with an alphabetic char,
# followed by an arbitrary number of chars and finally '.py'
# this should leave us with table of file coverage measurements.
# The selected lines will only be procesed if the second column value,
# representing total number of lines in file, is greater than '0'.
# This prevents zero division erros, and provides important sanity check on type of the value
# and on the form of the `tox -e cover` output in general.
shell:
cmd: |
set -e
source {{ ansible_user_dir }}/.venv/bin/activate
tox -e cover | awk '/^[[:alpha:]].*\.py/{if ($2 > 0){ print $1 ":" 1-$3/$2; }}'
args:
chdir: "{{ ansible_user_dir }}/{{ zuul.project.src_dir }}"
register: coverage_after
- name: Transform to dict
set_fact:
coverage_after_dict: "{{ coverage_after_dict | default({}) | combine({ item.split(':')[0]: item.split(':')[1] }) }}"
loop: "{{ coverage_after.stdout_lines }}"
- name: Record total after change
shell:
cmd: |
set -e
source {{ ansible_user_dir }}/.venv/bin/activate
tox -e cover | awk '/TOTAL/{ print 1-$3/$2 }'
args:
chdir: "{{ ansible_user_dir }}/{{ zuul.project.src_dir }}"
register: coverage_after_total
- name: Checkout previous commit
shell:
cmd: |
set -e
source {{ ansible_user_dir }}/.venv/bin/activate
git checkout HEAD^
args:
chdir: "{{ ansible_user_dir }}/{{ zuul.project.src_dir }}"
- name: Measure coverage before submitted change
# `awk` will work on lines starting with an alphabetic char,
# followed by an arbitrary number of chars and finally '.py'
# this should leave us with table of file coverage measurements.
# The selected lines will only be procesed if the second column value,
# representing total number of lines in file, is greater than '0'.
# This prevents zero division erros, and provides important sanity check on type of the value
# and on the form of the `tox -e cover` output in general.
shell:
cmd: |
set -e
source {{ ansible_user_dir }}/.venv/bin/activate
tox -e cover | awk '/^[[:alpha:]].*\.py/{if ($2 > 0){ print $1 ":" 1-$3/$2; }}'
args:
chdir: "{{ ansible_user_dir }}/{{ zuul.project.src_dir }}"
register: coverage_before
- name: Transform to dict
set_fact:
coverage_before_dict: "{{ coverage_before_dict | default({}) | combine({ item.split(':')[0]: item.split(':')[1] }) }}"
loop: "{{ coverage_before.stdout_lines }}"
- name: Record total before change
shell:
cmd: |
set -e
source {{ ansible_user_dir }}/.venv/bin/activate
tox -e cover | awk '/TOTAL/{ print 1-$3/$2 }'
args:
chdir: "{{ ansible_user_dir }}/{{ zuul.project.src_dir }}"
register: coverage_before_total
- name: Coverage comparison per file - Check
assert:
that: "{{coverage_before_dict[item] | float}} <= {{ coverage_after_dict[item] | float}}"
fail_msg: |
Before the change {{ (coverage_before_dict[item] | float)*100 }}% of the lines were covered.
Now it's {{ (coverage_after_dict[item] | float )*100 }}%. Did you write your unit tests?
success_msg: |
File by file code coverage check successful.
loop: "{{ coverage_after_dict.keys() | intersect(coverage_before_dict.keys()) | sort }}"
- name: Coverage comparison Total - Check
assert:
that: "{{ (coverage_after_total.stdout | float) }} >= {{ (coverage_before_total.stdout | float) }}"
fail_msg: |
Before the change {{ (coverage_before_total.stdout | float)*100 }}% of the lines were covered.
Now it's {{ (coverage_after_total.stdout | float )*100 }}%. Did you write your unit tests?
success_msg: |
Code coverage check successful, {{ (coverage_before_total.stdout | float) * 100 }}% of code is now covered.