Se questo progetto dovrebbe essere sempre compilato su un agente specifico,
o sul nodo master Jenkins, allora si dovrebbe immettere semplicemente,
rispettivamente, il nome dell'agente o master
.
Ciò nonostante, si dovrebbe generalmente evitare di usare il nome di
un agente in questo campo, preferendo le etichette di un agente.
Come documentato sulla pagina di configurazione di ogni agente e sulla
pagina Configura sistema del nodo master, è possibile utilizzare
etichette per rappresentare il sistema operativo su cui è in esecuzione
l'agente, la sua architettura CPU o un qualunque numero di altre
caratteristiche.
L'utilizzo delle etichette fa venir meno la necessità di riconfigurare
l'espressione etichetta immessa in questo campo ogni volta che si aggiungono,
rimuovono o ridenominano agenti.
Un'espressione etichetta può essere semplicemente una singola
etichetta o nome agente, ad esempio
android-builder
o linux-machine-42
.
È possibile inoltre utilizzare svariati operatori per creare
espressioni più complesse.
(espressione)
!espressione
espressione
non
dev'essere vero
a && b
a
e b
devono
essere vere
a || b
a
o b
può essere vera
a -> b
!a || b
.windows -> x64
può essere interpretato come "se
viene utilizzato un agente Windows, allora tale agente deve
essere a 64 bit", consentendo comunque l'esecuzione su qualunque agente
che non abbia l'etichetta windows
, a prescindere dal
fatto che abbia l'etichetta x64
a <-> b
a && b ||
!a && !b
windows <-> dc2
può essere interpretato come
"se viene utilizzato un agente Windows, allora tale agente deve
essere nel datacenter 2, ma se viene utilizzato un agente non Windows,
allora non deve essere nel datacenter 2"
a -> b -> c
è equivalente ad (a -> b) -> c
.
"osx (10.11)" || "Windows Server"
.
built-in
linux-machine-42
linux-machine-42
(o su qualunque sistema
che abbia un'etichetta denominata linux-machine-42
)
windows && jdk9
jdk9
)
postgres && !vm && (linux || freebsd)
vm
affinché quest'esempio funzioni come atteso)