Архивировать только последние файлы .png в работе katalon jenkins - PullRequest
1 голос
/ 10 января 2020

Мне нужно заархивировать любые скриншоты .png последнего тестового запуска katalon в Jenkins как шаг после сборки того же тестового прогона.

Используя действие постархивирования "архивировать артефакты" в Jenkins, в настоящее время путь к файлу установлен на Reports/**/[test run name]/**/*.png, где Reports находится в каталоге рабочей области. Однако это будет просто извлекать каждый файл .png из текущего и всех предыдущих тестовых прогонов, сохраненных там, из которых хранятся в рабочей области в течение недели до очистки.

Я пытался использовать поле «Исключить», но не смог найти способ исключить старые файлы, используя только путь к файлу с подстановочными знаками.

Есть ли способ в Jenkins, используя архивирование артефактов или что-то еще, архивировать только файлы .png, сгенерированные тем же заданием, без удаления всех ранее созданных файлов .png?

1 Ответ

0 голосов
/ 15 января 2020

Исходя из нашего опыта, лучше хранить артефакты в архиве вместе с заданием, а не полагаться на файлы, находящиеся в рабочей области, вместе с отдельным заданием для их очистки. Вы можете попросить Дженкинса отказаться от старых сборок (и артефактов) примерно так:

pipeline {
  options {
        buildDiscarder(logRotator(daysToKeepStr: '7', artifactDaysToKeepStr: '7'))
  }
}

И любые задания (и их артефакты) будут очищены через 7 дней.

Если вы go с этим путем вы можете безопасно удалить любые png файлы после архивации их как артефакты, и вам не нужно будет узнавать, какие новые, а какие старые.

В качестве альтернативы, вы можете заказать png -производственный шаг для присвоения имен файлам, начинающимся с номера задания (доступно как env.BUILD_NUMBER), и архивировать только файлы, начинающиеся с этого номера.

Наконец, вы можете запустить команду find с помощью -name '*png' и -mtime предикат для создания списка недавно измененных png файлов и использования его в качестве входных данных для этапа архивирования.

...