Jenkins: come costruire un ramo specifico


95

Non è così semplice come fare una build parametrizzata. Ho già un processo di compilazione specifico che verrà compilato e distribuito ogni volta che uno di questi rami viene inviato a GitHub:

inserisci qui la descrizione dell'immagine

Quindi, se ho appena spinto develope costruito con successo, come faccio ad attivare una build manuale e farla tirare feature/my-new-feature(senza fare a git push)? Ho provato consentendo accumulo parametrizzata, l'aggiunta di una nuova stringa chiamata branch, e quindi aggiungendo un nuovo specificatore ramo, */$branch. Ho quindi eseguito una build, impostato branchsu feature/my-new-featuree ancora estratto da develop.

Apprezzerei qualsiasi aiuto!


Stai parlando di github webhook. questo potrebbe risolvere il tuo problema. vuoi attivarlo da GitHub?
Abhijeet Kamble

1
No, l'integrazione di GitHub funziona già. Ho bisogno di sapere come costruire manualmente un ramo specifico.
ffxsam

3
Ho lo stesso problema. Il lavoro è configurato per costruire rami diversi e viene attivato da un hook git. Ma quando desidero creare manualmente un ramo specifico (senza nuove modifiche in GIT) faccio clic su "Compila ora" ma crea sempre l'ultimo ramo estratto. Ho anche provato varie proprietà di build.
cornz

Se il tuo parametro è denominato ramo, devi solo specificarlo $branchnel campo specificatore di ramo.
Alexey

1
@Alexey, ma poi durante la compilazione avviata automaticamente questo $branchrisulterà in una stringa vuota, suppongo.
Nakilon

Risposte:


109

La migliore soluzione può essere:

Aggiungi un parametro stringa nel lavoro esistente inserisci qui la descrizione dell'immagine

Quindi nella Source Code Managementsezione aggiorna Branches to buildper utilizzare il parametro stringa che hai definitoinserisci qui la descrizione dell'immagine

Se vedi una casella di controllo etichettata Lightweight checkout, assicurati che sia deselezionata.

La configurazione indicata nelle immagini dirà al lavoro jenkins di utilizzare mastercome ramo predefinito e per le build manuali ti chiederà di inserire i dettagli del ramo (FYI: per impostazione predefinita è impostato su master)inserisci qui la descrizione dell'immagine


4
Il master di costruzione per impostazione predefinita non lo taglierà per una build di sviluppo generica che dovrebbe costruire tutti i rami di sviluppo.
static_rtti

9
Mio dio, è così schifoso. Perché Jenkins non mantiene la Branches to buildsezione con il maledetto repository Git a cui si applica? È una stupida PITA doverlo fare per specificare un ramo da costruire.
Alex Zavatone

9
Dong questo non funziona (per me). Finisco con Jenkins che cerca di controllare una filiale git.exe fetch --tags --progress origin +refs/heads/${BRANCH}:refs/remotes/origin/${BRANCH} --pruneche ovviamente non è valida.
Liam

1
questo è registrato come un bug su Jenkins quindi è difficile vedere come ha funzionato?
Liam

19
@Liam Come suggerito nel bug ticket, devi deselezionare "Checkout leggero" per farlo funzionare.
asmaier

10

Non penso che sia possibile entrambi all'interno dello stesso lavoro jenkins, quello che devi fare è configurare un nuovo lavoro jenkins che avrà accesso al tuo github per recuperare i rami e quindi puoi scegliere quale costruire manualmente.

È sufficiente contrassegnarlo come build con parametri, specificare un nome e un parametro configurato come git parameter

inserisci qui la descrizione dell'immagine

e ora puoi configurare le opzioni di git:

inserisci qui la descrizione dell'immagine


7
Quel parametro git è un plugin jenkins ?? Non vedo l'opzione per aggiungere quel tipo di prameter. Se è un plugin puoi indicarlo nella risposta?
Leandro David

@ LeandroDavid yes Git Parameter è un plugin che deve essere installato dopo di esso vedrai questa opzione sotto Aggiungi parametro.
gotosachin

9

Per eseguire il checkout del ramo tramite gli script Jenkins, utilizzare:

stage('Checkout SCM') {
    git branch: 'branchName', credentialsId: 'your_credentials', url: "giturlrepo"
}

1
So che non è esattamente di questo che si tratta, ma stavo cercando queste informazioni e Google ha continuato a suggerire questo sito come risposta.
Igor L.

lo stesso qui fratello. Sei riuscito a trovare la risposta alla risposta esatta
thinkingmonster

0

Questa è l'estensione della risposta fornita da Ranjith

Ti suggerisco di scegliere una build con parametri di scelta e di specificare i rami che vorresti costruire. Parametro di scelta attiva

Dopodiché, puoi specificare i rami da costruire. Ramo da costruire

Ora, quando creerai il tuo progetto, ti verrà fornito "Build with Parameters, dove puoi scegliere il ramo da costruire"

Puoi anche scrivere uno script groovy per recuperare tutti i tuoi rami nel parametro di scelta attivo.


Per favore approfondisci. TeamCity lo fa per impostazione predefinita, eppure Jenkins non può nemmeno allacciarsi le scarpe !!!
C Johnson,

0

inserisci qui la descrizione dell'immagine

Ci sarà un'opzione in configure sotto Build Triggers

Controlla i rami di GitHub

Verrà creato un hook e quindi potrai costruire qualsiasi ramo che ti piace da Jenkins quando selezioni github Branches inserisci qui la descrizione dell'immagine

Spero che sia d'aiuto :)


Sto cercando di utilizzare questo plugin con questa configurazione, ma non riesco a trovare un modo per avviare il lavoro. C'è un modo diverso per controllare se gli eventi provengono correttamente da gh?
Vito De Tullio

Hai la Run Branch Triggerpossibilità, scansiona il repository git per tutti i rami disponibili ... Controlla anche nei registri di jenkins -> in Gestisci Jenkins ... per vedere se si sono verificati errori
rohit thomas,

1
Si prega di elaborare, la descrizione è troppo piccola e breve.
C Johnson
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.