2016-07-22 12 views
7

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

+0

Czy możesz pokazać fragmenty z Jenkinsfile? – Jayan

+0

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

Odpowiedz

11

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") 
+1

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

+0

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

+0

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

2

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() 
0

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ń.

Powiązane problemy