Definierar ett logiskt uttryck som bestämmer vilka agenter som får köra byggen i detta projekt. Detta uttryck, när det testas mot namnet och etiketterna för varje tillgänglig agent, kommer att vara antingen true eller false . Om uttrycket utvärderas som true kommer denna agent tillåtas att köra byggen av detta projekt.

Om detta projekt alltid ska byggas på en specifik agent eller på den inbyggda \ noden behöver du bara ange agentens namn respektive built-in .

Du bör dock generellt undvika att använda namnet på en agent här och hellre använda agentens etiketter . Enligt dokumentationen på konfigurationssidan för varje agent och sidan Konfigurera system för huvudnoden kan etiketter användas för att representera vilket operativsystem agenten körs på, dess processorarkitektur eller någon annan egenskap.
Med hjälp av etiketter försvinner behovet att omkonfigurera etikettuttrycket som anges här varje gång du lägger till, tar bort eller byter namn på agenter.

Ett etikettuttryck kan vara så enkelt som att ange en etikett eller ett agentnamn , t.ex. android-builder eller linux-machine-42 .
Du kan också använda olika operatörer för att skapa mer komplexa uttryck.

Operatörer som stöds

Följande operatorer stöds, i fallande prioritetsordning:
(uttryck)
parenteser — används för att uttryckligen definiera ett uttrycks associativitet
!uttryck
NOT — negation; resultatet av att uttryck får inte vara sant
a && b
AND — båda uttrycken a och b måste vara sanna
a || b
OR — antingen uttrycket a eller b får vara sant
a -> b
"implicerande" operatör — motsvarar !a || b .
Till exempel kan windows -> x64 ses som "om en Windows-agent används måste agenten vara 64-bitar" samtidigt som projektet tillåts köras på alla agenter som inte har etiketten windows oavsett om de också har etiketten x64
a <-> b
operatören "om och endast om" — motsvarar a && b || !a && !b
Till exempel kan windows <-> dc2 ses som "om en Windows-agent används, så måste agenten finnas i datacenter 2, men om en agent utan Windows används får den inte finnas i datacenter 2"

Anteckningar

Exempel

built-in
Byggen av detta projekt får endast köras på den inbyggda noden
linux-machine-42
Byggen av detta projekt får endast köras på agenten med namnet linux-machine-42 (eller på vilken dator som helst som råkar ha etiketten linux-machine-42 )
windows && jdk9
Byggen av detta projekt får endast köras på en Windows-agent som har version 9 av Java Development Kit installerat (förutsatt att agenter med JDK 9 har fått etiketten jdk9 )
postgres && !vm && (linux || freebsd)
Byggen av det här projektet får endast köras på en Linux- eller FreeBSD-agent så länge den inte är en virtuell dator och att den har PostgreSQL installerat (förutsatt att varje agent har lämpliga etiketter – i synnerhet varje agent som körs i en virtuell dator måste ha etiketten vm för att detta exempel ska fungera som förväntat)