Дженкинс перечислить счет сборки для работы Дженкинс - PullRequest
0 голосов
/ 24 марта 2020

Я хотел создать задание jenkins, которое может перечислить мне все задания jenkins, с указанием количества выполненных сборок. Дженкинс API или Groovy может работать. Ниже API предоставляет мне список всех идентификаторов сборки для конкретной работы, но я ищу счетчик для сборки, выполненной для этой работы. http://[jenkins_server]/job/[jobname]/api/xml?tree=builds[id]

Также я ссылаюсь на это: { ссылка }

Дайте мне знать, могу ли я go для любого плагина

1 Ответ

0 голосов
/ 25 марта 2020

Использование шага сборки в вашем конвейере.

Чтобы упростить его, я просто положил бы простой bash в шаге sh и получил бы количество сборок для каждая работа. Также обратите внимание, что это будет работать, только если вы не установили пользовательский номер сборки. :)

Чтобы получить список заданий,

curl -s -g http://<jenkins-url>/api/json\?tree\=jobs\[name\] | jq -r '.jobs[].name' | awk -v ORS=, '{print $1}' | sed 's/,$/\n/'

Чтобы получить список всех связанных сборок, передайте значения из приведенной выше команды в следующую для аргументов l oop для имени задания ,

for i in {jobname1,jobname2}; do count=$(curl -s http://<jenkins-url>/job/$i/api/json\?tree\=nextBuildNumber | jq .nextBuildNumber-1) && echo "\nJobName: $i \nNumber of builds:$count"; done;

EDIT-1 Скопируйте приведенный ниже скрипт и вызовите его в своем Jenkinsfile. Вы можете передать количество заданий в качестве аргумента. Измените URL-адрес сборки / задания, как требуется в задании, или просто передайте его в качестве параметра.

#!/bin/bash

jobstokeep=$1

listofbuilds=$(curl -sg http://jenkins-url/job/jobName/api/json?tree=builds[number] | jq .[] | grep 'number' | sed 's/[^0-9]//g' | awk -v var=$jobstokeep 'NR>var' | awk -v RS='' -v OFS=',' '$1=$1')

echo $listofbuilds

for i in ${listofbuilds//,/ }; do curl -s $user:$pass -X POST http://jenkins-url/job/jobName/$i/doDelete && echo "Build $i is deleted"; done;

Приведенный выше скрипт сначала напечатает количество удаляемых заданий в виде значения, разделенного запятыми, а затем l oop через каждую работу и удалите их с помощью команды curl (Jenkins Rest API).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...