Кажется, я не могу найти хороший способ сделать это прямо сейчас, но вот мое решение.
Решение
1. Выполните сценарий Groovy и сохраните всю текущую конфигурацию cobertura задания в файле JSON.
Конфигурацию Cobertura можно получить следующим образом:
def coberturaPublisher = project.getPublishersList().get(CoberturaPublisher)
coberturaPublisher.**healthyTarget**.getTarget(**CoverageMetric.METHOD**)
2. job-dsl-plugin для настройки cobertura с помощью файла JSON, если он доступен
Обычный метод CoberturaContext job-dsl здесь вызвать нельзя, потому что данные, представленные на первом шаге, отличаются параметром метода:
- 80% хранится как 8000000 в файле JSON.
- 80% должны передаваться как 80 вместо 8000000 в методы CoberturaContext.
На сегодняшний день я не могу просто разделить значение на 100000, потому что метод принимает целое число вместо двойного. Чтобы сохранить точность храповой конфигурации, я должен обойти проверку, манипулируя целью напрямую:
coberturaContext.targets = [
'METHOD': new CoberturaContext.CoberturaTarget(
targetType: CoberturaContext.TargetType.METHOD,
healthyTarget: 8000000,
unhealthyTarget: previousConfig ? previousConfig.cobertura.method.unhealthy : 0,
failingTarget: previousConfig ? previousConfig.cobertura.method.failing : 0
),
Зачем создавать файл JSON, если можно напрямую вызывать Jenkins API?
Мое исходное задание настроено с помощью этого примера здесь, поэтому у меня есть дополнительный путь к классам в конфигурации работы. Когда я попытался напрямую обратиться к Jenkins API, у меня возникла проблема с загрузкой классов для классов плагинов Cobertura.
person
ceilfors
schedule
29.09.2015