У меня есть некоторый опыт работы с Jenkins, и я начал использовать Jenkinsfiles в прошлом году, но я столкнулся с чем-то, что мне не удалось объяснить (или, может быть, я просто еще не сталкивался с этим в документах).).
У меня есть Jenkinsfile как часть многоотраслевого конвейера.В этом Jenkinsfile у меня в основном есть следующее:
pipeline {
agent any
stages {
stage('Checkout') {
checkout(...)
}
stage('Build') {
agent {
docker {
image 'maven:3-alpine'
args '...'
}
}
steps {
sh 'mvn -B clean package'
...
}
}
}
}
При выполнении этап «Сборка» вытягивает ветку на основе ветви, в которой я выполняю Jenkinsfile, и перезаписывает ранее извлеченную веткуиз этапа «Оформить заказ» (который является другой ветвью).
Теперь, если я перехожу шаги «Оформить заказ» в этап «Сборка» непосредственно перед командой Maven sh, это работает, но я замечаю, чтосначала этап все еще тянет ветку, как описано выше, а затем шаги «Оформить заказ» теперь перезаписывают эту ветвь.
Итак, я предполагаю, что в этом конкретном этапе «Сборка» есть что-то особенное, что яЯ пропустил, так как я использовал эту конкретную методологию ранее с другими проектами, единственное реальное отличие в том, что в других не было указано ни одного агента, и он не был основан на Java (не то, чтобы я думал, что это как-то связано с этим).
Любое понимание будет оценено, так как я хотел бы не просто применить этот «обходной путь», а сделать его правильно.
Заранее спасибо.