Podczas korzystania z rurociągu Jenkins gdzie każdy etap działa na innym środkiem, to good practice używać agent none
na początku:Jak korzystać z kroków postu z potokiem Jenkinsa dla wielu agentów?
pipeline {
agent none
stages {
stage('Checkout') {
agent { label 'master' }
steps { script { currentBuild.result = 'SUCCESS' } }
}
stage('Build') {
agent { label 'someagent' }
steps { bat "exit 1" }
}
}
post {
always {
step([$class: 'Mailer', notifyEveryUnstableBuild: true, recipients: "[email protected]", sendToIndividuals: true])
}
}
}
Ale robi to prowadzi do Required context class hudson.FilePath is missing
komunikatu o błędzie, gdy e-mail powinien wyjść:
[Pipeline] { (Declarative: Post Actions)
[Pipeline] step
Required context class hudson.FilePath is missing
Perhaps you forgot to surround the code with a step that provides this, such as: node
[Pipeline] error
[Pipeline] }
Po zmianie z agent none
na agent any
, działa poprawnie.
W jaki sposób można uzyskać krok post
do pracy bez korzystania z agent any
?
użyłem 'węzła ('mistrz')' i teraz działa. Dziękuję Ci. Jeśli pominę etykietę, pojawia się błąd 'WorkflowScript: 15: Brakujący wymagany parametr:" etykieta "'. Czy potrafisz dostosować swoją odpowiedź? –
pewnie, dzięki! – burnettk
Zanim zadałem to pytanie, spróbowałem użyć 'węzła' zaraz po' post', co nie jest dozwolone, ale nigdy nie przyszło mi do głowy, że zawijam tylko 'krok'. Dzięki za pomoc. –