Próbuję zrobić pip rurociągu Jenn jako kod. Korzystam z wtyczki folderu organizacji Github, aby skanować organizacje Github i tworzyć zadania dla poszczególnych gałęzi. Czy istnieje sposób jawnego definiowania nazw zadań pipeline, które pobierają z Jenkinsfile? Chcę również dodać kilka opisów miejsc pracy.Ustaw nazwę i opis rurociągu z Jenkinsfile
Odpowiedz
Musisz użyć currentBuild
jak poniżej. node
część jest ważna
node {
currentBuild.displayName = "$yournamevariable-$another"
currentBuild.description = "$yourdescriptionvariable-$another"
}
Edit: Powyżej jeden zmienia nazwę budować gdzie jak oryginał jest pytanie o zmianę nazwy miejsc pracy. następujący skrypt w rurociągu będzie zrobić (wymaga odpowiednie uprawnienia)
item = Jenkins.instance.getItemByFullName("originalJobName")
item.setDescription("This description was changed by script")
item.save()
item.renameTo("newJobName")
Witaj Jayan, dzięki za Odpowiadać. Próbowałem już opcji currentBuild.description. Pojawił się jako znacznik pod numerem kompilacji w sekcji Historia kompilacji. Ale chcę je ustawić w taki sposób, aby były wyświetlane w opcji "View Configuration" dla zadań. Czy to możliwe? – HarshaB
Nie widziałem sposobu w opcjach wtyczki. Powyższa odpowiedź została zaktualizowana w celu użycia renameTo api (co być może już widziałem) – Jayan
Dziękuję bardzo Jayan. To działało jak urok. Dokładnie to, czego chciałem. Musiałem się upewnić, że pozwolę, aby te skrypty działały, zatwierdzając je w ramach zatwierdzenia skryptu Jenkins-> In-Process. Czy istnieje sposób ręcznego dodawania nowych klas do zatwierdzenia? Sposób, w jaki zrobiłem to teraz, polegający na wybraniu opcji zatwierdzania dla wszystkich klas używanych w tym skrypcie pojedynczo. Nie pozwalało mi ręcznie wpisywać żadnych klas i zatwierdzać. – HarshaB
próbowałem stosować fragment kodu z przyjętym odpowiedź opisać moje rurociągu Jenkins w Jenkinsfile. Musiałem owinąć fragment kodu w funkcję z adnotacją @NonCPS
i użyć def dla zmiennej item. Umieściłem fragment kodu w katalogu głównym pliku Jenkinsfile, a nie w sekcji węzła.
@NonCPS
def setDescription() {
def item = Jenkins.instance.getItemByFullName(env.JOB_NAME)
item.setDescription("Some description.")
item.save()
}
setDescription()
Spóźniłem się na przyjęcie w tej sprawie, ale to pytanie zmusiło mnie do rozmowy na czacie #jenkins, w której spędziłem większość dnia. Chciałbym podziękować @ tang^z tego czatu za pomoc w rozwiązaniu tego w zgrabny sposób dla mojej sytuacji.
Aby ustawić opis pracy i zatrudnienia nazwę wyświetlaną dla dziecka w wielooddziałowej deklaratywnej rurociągu należy wykonać następujące kroki zablokować w scenie:
steps {
script {
if(currentBuild.rawBuild.project.displayName != 'jobName') {
currentBuild.rawBuild.project.description = 'NEW JOB DESCRIPTION'
currentBuild.rawBuild.project.setDisplayName('NEW JOB DISPLAY NAME')
}
else {
echo 'Name change not required'
}
}
}
to, że konieczna będzie zatwierdzać indywidualne skrypt wywołuje poprzez metoda zatwierdzania piaskownicy Jenkinsa, ale była o wiele prostsza niż cokolwiek innego, co znalazłem w Internecie na temat zmiany nazw dzieci nadrzędnego potoku. Ostatnią rzeczą, na którą należy zwrócić uwagę, jest to, że powinno działać w pliku Jenkins, w którym można użyć zmiennych środowiskowych do manipulowania ustawianymi pozycjami zadań.
Czy możesz pokazać fragmenty z Jenkinsfile? – Jayan
dla osób, które chcą zmienić opis zadania/projektu, a nie opis budowy, zobacz https://stackoverflow.com/questions/39200948/jenkins-multibranch-change-job-description-from-groovy – Mark