我正在尝试将OpenShift Jenkins管道设置为:
Dockerfile
我用BuildConfig
策略创建了一个Docker
策略,该策略实际上不需要管道。问题是我不知道如何运行测试
如果我尝试从管道开始构建,它不会触发构建。
我在正确的道路上吗?这样的项目最好的方法是什么?我应该继续依靠OpenShift专用工具吗?还是迁移到普通的Kubernetes?
我正在使用https://github.com/openshift/jenkins-client-plugin作为管道。
这是我的BuildConfig:
kind: "BuildConfig"
apiVersion: "v1"
metadata:
name: "front-end-build"
spec:
runPolicy: "Serial"
nodeSelector:
hostname: "vhkdld518"
source:
git:
uri: "https://kraporta@bitbucket/scm/~kraporta/test-kube.git"
strategy:
dockerStrategy:
from:
kind: "ImageStreamTag"
name: "nginx:alpine"
dockerfilePath: Dockerfile
output:
to:
kind: "ImageStreamTag"
name: "front-end:latest"
这是管道:
node {
stage('build') {
openshift.withCluster() {
openshift.withProject() {
echo "Using project: ${openshift.project()}"
def builds = openshift.selector("bc", "front-end-build").related('builds')
builds.describe()
timeout(5) {
builds.untilEach(1) {
it.describe()
echo "Inside loop: ${it}"
return (it.object().status.phase == "Complete")
}
}
}
}
}
}
非常感谢!
答案 0 :(得分:1)
我知道这是一个古老的问题,但我想保留作为参考。
问题: 缺少步骤,您尚未开始构建过程,因此没有构建!
解决方案: 我们需要在获取构建之前开始构建过程,这里:
def builds = openshift.selector("bc", "front-end-build").related('builds')
要做(有很多方法可以完成):
def buildConfig = openshift.selector("bc", "front-end-build")
openshift.startBuild("front-end-build") # we started the build process
def builds = buildConfig.related('builds')
检查:https://github.com/openshift/jenkins-client-plugin#watching-and-waiting-of-course