#jenkins #jenkins-pipeline
#дженкинс #дженкинс-конвейер
Вопрос:
Я наблюдаю, что предыдущий этап вызывается при выполнении следующего этапа, не уверен, что здесь не так с моим jenkinsfile
Следовал этой документации :
https://jenkins.io/doc/book/pipeline/syntax/#declarative-pipeline
pipeline {
agent none
options {
gitLabConnection('MY_CONNECTION')
}
stages {
stage('scm_checkout') {
agent {
label 'win_64'
}
steps{
deleteDir()
checkout([$class: 'GitSCM',branches:[[name: '*/master']]
bat 'python -u repo/Jenkins_Scripts/createZip.py'
}
}
stage('scm_build') {
agent {
label 'win_64'
}
steps{
bat 'python -u repo/Jenkins_Scripts/build.py'
}
}
} // end of stages
}
Вывод
[Pipeline] stage
[Pipeline] { (scm_checkout)
[Pipeline] node
Running on xxxxxx in C:jennewworkspacePCQG-Pipeline
[Pipeline] {
[Pipeline] checkout
> git rev-parse --is-inside-work-tree # timeout=10
[Pipeline] withEnv
[Pipeline] {
[Pipeline] deleteDir
[Pipeline] checkout
Cloning the remote Git repository
[Pipeline] }
[Pipeline] // withEnv
[Pipeline] }
[Pipeline] // node
[Pipeline] }
[Pipeline] // stage
[Pipeline] stage
[Pipeline] { (scm_build)
[Pipeline] node
Running on xxxxxx in C:jennewworkspacePCQG-Pipeline
[Pipeline] {
[Pipeline] checkout
Cloning the remote Git repository
Аналогично, это клонирует репозиторий снова и снова с каждым этапом. Не уверен, где я совершаю ошибку.
Ответ №1:
Я думаю, что то, что вы здесь делаете, немного сбивает с толку. Это Jenkinsfile
правильно? Таким образом, агент по умолчанию будет выполнять проверку самостоятельно. Этапы не вызываются друг от друга.
Чтобы отключить это, вам нужно будет добавить это в свою часть агента:
options { skipDefaultCheckout() }
Комментарии:
1. Спасибо, это помогает!
2. Рад помочь. Не забудьте принять ответ, который подходит вам.