Openshift Jenkins Build Pipeline - дождитесь завершения сборки
У меня сейчас проблема. Я устанавливаю конвейер сборки для openshift, используя jenkins.
Теперь моя проблема заключается в следующем. Openshift начнет развертывание до того, как моя сборка будет фактически завершена. Я действительно не хочу использовать какой-то фиксированный период ожидания для запуска развертывания, поскольку это может привести к ошибкам, если сборка займет больше времени или потратит время, если она будет завершена быстрее.
Есть ли способ, чтобы Дженкинс ждал завершения сборки, прежде чем перейти к следующему этапу?
На данный момент мой трубопровод выглядит так. Я также открыт для других решений.
Jenkinsfile
pipeline {
agent any
stages {
stage('Prerequisites'){
steps {
sh 'node --version'
sh 'npm cache verify'
sh "npm config set strict-ssl false"
sh "npm config set registry https://private.registry/repository/npm-registry/"
sh "npm config set proxy http://user:pw@proxy.int:port/"
sh "npm config set https-proxy http://http://user:pw@proxy.int:port/"
sh "npm config set no_proxy=private.registry"
}
}
stage('Build'){
steps {
sh 'npm install'
sh 'npm run tsc -v'
sh 'npm run tsc -- --p ./tsconfig-prod.json'
}
}
stage('Unit Testing'){
steps {
sh 'npm test'
}
}
stage('Login to OpenShift'){
steps {
sh 'oc login https://openshift.cluster -u user -p pw'
sh 'oc project my-project'
}
}
stage('Build on INT'){
steps {
sh 'oc replace -f ./openshift/is.yaml || oc create -f ./openshift/is.yaml'
sh 'oc replace -f ./openshift/build.yaml || oc create -f ./openshift/build.yaml'
sh 'oc start-build my-app'
}
}
stage('Deploy on INT'){
steps {
echo 'Deploying on INT'
sh 'oc replace -f ./openshift/deploy.yaml || oc create -f ./openshift/deploy.yaml'
}
}
stage('Creating Service and Route'){
steps {
sh 'oc replace -f ./openshift/service.yaml || oc create -f ./openshift/service.yaml'
sh 'oc replace -f ./openshift/route.yaml || oc create -f ./openshift/route.yaml'
}
}
}
}
1 ответ
Вместо использования oc
Инструмент, вы можете использовать плагин Jenkins Client, который имеет встроенную функциональность для просмотра и ожидания.
В зависимости от версии oc
вы используете, вы можете иметь доступ к экспериментальной wait
команда. Бежать oc wait --help
для руководства по использованию этого.