2015-03-25 12 views
5

Esiste un'opzione per monitorare un repository git in Jenkins, ma non eseguire pull/clone/fetch su commit?Monitora un repository in Jenkins, ma non tirare

  • Il codice sorgente Mangement insieme a "Git"
  • Il URL Repository è impostato su [email protected]: Nome/branch.git
  • La Filiale di costruire è impostato su origine/1.0

Voglio l'attivazione di un processo di compilazione in base a un commit al ramo specificato nel repository, ma non voglio che il lavoro di compilazione di Jenkins esegua il pull automatico/clone/fetch.

+0

Non riesco a capire la domanda. Perché dovresti monitorare un repository ma non vuoi recuperarlo quando viene aggiornato? Cosa stai cercando di realizzare? – Chris

+0

Ci sono alcune modifiche e configurazioni che voglio fare prima di clonare il repository. Quindi, viene effettuato un cambiamento al repository, viene avviato un processo di creazione di Jenkins, si verificano le mie modifiche, quindi avviene la clonazione del repository. – user2569618

+0

Possiamo solo aiutarti se spieghi chiaramente cosa stai cercando di fare. "select changes and setups" non è chiaro. Non riesco ancora a capire quale sia il tuo vero obiettivo. – Chris

risposta

2

Apparentemente, non è possibile eseguire il polling di un repository github per avviare un'attività di Jenkins e non scaricare il repository github di cui sopra.

-1

Fammi capire il tuo requisito qui.

Si desidera monitorare il repository ma non estrarre nulla, ogni volta che qualcuno esegue il commit sul repository, si desidera verificare l'integrità del repository anziché la clonazione.

Non vedo alcun senso per il requisito di cui sopra, invece di jenkins è possibile avere il monitoraggio in atto per lo stesso.

Ancora vuoi farlo. Puoi impostare il lavoro senza specificare alcun URL di git nella sezione SCM, Puoi aggiungere i seguenti nella tua sezione shell di esecuzione.

git ls-remote <GIT-URL> 

(Assicurarsi di disporre dell'autorizzazione appropriata per eseguire questa operazione tramite shell).

Se tutto va bene, otterrete tutti i rami, i tag e le informazioni sulla richiesta di pull e quindi potrete decidere lo stato esistente.

Home questo aiuta.

+0

Siamo spiacenti, no, non è stato utile. Sto cercando di far controllare a Jenkins uno specifico repo github e avviare un'attività di build basata su un commit al ramo del repository, ma non voglio che l'attività di compilazione faccia automaticamente il clone. – user2569618

+0

Ho provato sopra, potreste voler cambiare la strategia in modo che corrisponda alle vostre esigenze. –

+0

Sfortunatamente, non esegue il polling del repository github, che è la mia esigenza. Grazie. – user2569618

-1

Supponendo che si configuri il proprio lavoro in polling ogni minuto, eseguendo ciò si raggiunge il proprio obiettivo?

git log --since="1 minute ago" | wc -l 

Si dovrà tirare il repository quando si imposta l'area di lavoro Jenkins, ma si potrebbe disattivare la connessione SCM in seguito.

3

Mentre non è possibile eseguire il polling di un repository github per avviare un lavoro senza aver prima inserito il codice per quel lavoro, è possibile aggirare questo problema utilizzando lo jenkins multijob plugin per impostare un processo multifase, configurato come segue :

  • Configurare un processo principale che risiede in WORKSPACE-A. Questo lavoro sarà eseguire il polling del repository git che stai monitorando. Quando viene apportata una modifica, il lavoro estrae le modifiche (che non verranno utilizzate) e quindi procede con la compilazione, i cui passaggi saranno di avviare altri due processi in serie.
  • Configurare un secondo lavoro da attivare come prima fase di creazione da il lavoro principale. Questo lavoro risiederà nello WORKSPACE-B e non tiene traccia del repository di git .Questo lavoro può eseguire qualsiasi pre-configurazione che desideri. Poiché esiste in uno spazio di lavoro diverso da quello del lavoro principale , non verrà inquinato dal codice sorgente da git.
  • Configurare un terzo lavoro da attivare come seconda e ultima fase di costruzione da il lavoro principale. Questo lavoro può risiedere ovunque tu ne abbia bisogno - incluso WORKSPACE-A o WORKSPACE-B se è quello che vuoi. È possibile che le modifiche vengano trasferite automaticamente nello spazio di lavoro oppure copiare i file già clonati dal repository git dallo WORKSPACE-A nello spazio di lavoro di questo lavoro.

Nota: solo il lavoro principale deve avere un trigger di build, quello legato alle modifiche al repository git. Gli altri due lavori verranno attivati ​​esternamente dal lavoro principale.

Problemi correlati