Если вы хотите проверить или проверить конкретную версию UUID, вот соответствующие регулярные выражения.
Обратите внимание, что единственное различие - номер версии, который объясняется в главе
4.1.3. Version
UUID 4122 RFC .Номер версии - это первый символ третьей группы:
[VERSION_NUMBER][0-9A-F]{3}
:
- UUID v1 :
/^[0-9A-F]{8}-[0-9A-F]{4}-[1][0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i
- UUID v2:
/^[0-9A-F]{8}-[0-9A-F]{4}-[2][0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i
- UUID v3:
/^[0-9A-F]{8}-[0-9A-F]{4}-[3][0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i
- UUID v4:
/^[0-9A-F]{8}-[0-9A-F]{4}-[4][0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i
- UUID v5:
/^[0-9A-F]{8}-[0-9A-F]{4}-[5][0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i
Хорошо. Итак, сначала давайте предположим, что у вас есть работа A, работа B и работа C (которая вызывает работу A и работу B)
В каждой работе A и работе B вам необходимо заархивировать их файл журнала, так что вы будете необходимо добавить этот сценарий в ваш конвейер:
def jenkins = Jenkins.getInstance()
def job = jenkins.getItem(jobName)
def bld = job.getBuildByNumber(buildNumber)=
//use the method that suits you
bld.getLog(100) //number of lines to read
bld.getLogFile()
bld.getLogReader()
Теперь, когда ваши журналы архивируются в каждом из заданий, вы можете перейти к заданию C на этапе пост и использовать плагин copyArtifact для копирования архивированных журналов. пример:
//copyArtifacts filter: 'logs.log', fingerprintArtifacts: true, projectName: 'pathtoyourjob/job A', selector: lastSuccessful(), target: 'temp1'
//copyArtifacts filter: 'logs.log', fingerprintArtifacts: true, projectName: 'pathtoyourjob/job B', selector: lastSuccessful(), target: 'temp1'
Это единственный обходной путь, который я смог использовать раньше. Надеюсь, это поможет!