Ho appena riscontrato questo problema con Hudson v2.2.1 (sì, so che è una versione antica). Non sono sicuro di cosa abbia scatenato le build instabili, poiché nessuna modifica alla configurazione sembra allinearsi con l'inizio della fuga. Tuttavia, ho trovato un (aggiuntivo) work-around.
Nella pagina di configurazione del lavoro, è disponibile un'opzione (casella di controllo) per "Limita il punto in cui è possibile eseguire questo progetto", con due opzioni (pulsante di scelta) per selezionare il metodo di restrizione: "Menu Nodo e etichetta" o "Espressioni avanzate di nodi e etichette", una delle quali deve essere selezionata.
Quando viene selezionata la seconda di queste opzioni, "Nodo avanzata e Label espressioni",, un campo di testo in formato libero emerge che permette di inserire un'espressione logica che unisce i termini da
- l'insieme di nomi di nodi slave ("BUILDDEV3" nella risposta di @ Campey), unione
- l'insieme di tutti i valori di etichetta slave ("major-builders" nella risposta di @ Campey).
Ad esempio, major-builders && !BUILDDEV3
.
Quando la prima di queste opzioni, è selezionato "Node e il menu etichetta",, un elenco di selezione sembra che permette di scegliere un valore da un elenco che contiene i termini da:
- l'insieme di schiavi nomi dei nodi, sindacali
- l'elenco di tutti i valori di etichetta di schiavi, unione
- l'insieme di tutte le espressioni attualmente definiti in qualsiasi lavoro dal meccanismo di "Node avanzate e le espressioni Label".
Si noti che l'insieme di nomi di nodi slave sono intrinsecamente trattati come etichette slave. @ Il suggerimento di Campey è di non compromettere il meccanismo di selezione, ma di aggiungere esplicitamente il nome del nodo slave all'elenco delle etichette per ogni slave. Questo funzionerà, ma ha potenziali effetti collaterali, ad esempio, se si rinomina un nodo. Non l'ho provato, ma potrebbe persino causare la visualizzazione di duplicati nell'elenco dei termini di selezione per il selettore di invio. Preferisco evitare l'acquisizione di informazioni ridondanti.
La mia soluzione consiste nel non selezionare mai i nomi di nodi slave impliciti, ma utilizzare solo etichette o espressioni contenenti solo etichette nel meccanismo di selezione, indipendentemente o quale si scelga. Questo non sarà mai ridondante.
Ad esempio, per esprimere l'esempio dato in precedenza: major-builders && !BUILDDEV3
, dove "major-builders" è un'etichetta e "BUILDDEV3" è un nome nodo, si dovrebbe aggiungere un'etichetta nodo univoca al nodo "BUILDDEV3" tale come "NOTHERE", quindi utilizzare l'espressione major-builders && !NOTHERE
.
È possibile che lo slave specifico abbia un tempo diverso rispetto alla macchina che detiene il repository GIT? Ho visto problemi come questo che si verificano con un repository SVN a causa del fatto che lo slave e il computer del repository erano leggermente fuori sincrono (di circa 2 minuti circa). Non sono sicuro che GIT sia suscettibile al problema di fuori sincrono ma potrebbe valerne la pena. – Petrik