我有一个在 k8s 从属 Pod 上运行的 Jenkins 自由式项目。现在主项目有另一个子项目,它本质上是从github克隆/拉取文件,这意味着子项目拉取的文件是主项目所需要的。 我面临的问题是,当我运行构建时,项目和子项目都在不同的 pod 中运行,因此主项目无法访问子项目下载的文件。
job('main-project') {
steps {
downstreamParameterized {
trigger('upstrea_job1') { ----> pull/clone a git repo into the workspace of the main project
parameters {
predefinedProp('customWorkspace', '${WORKSPACE}/${BUILD_NUMBER}/survey_vm_conf')
}
}
}
我可以采取任何解决方法吗?
为要在单个 Pod 中运行的阶段定义代理。我建议使用 Kubernetes 代理使用单个 pod 文件。
pipeline {
agent {
kubernetes {
yaml '''
apiVersion: v1
kind: Pod
spec:
containers:
- name: docker
image: ci:latest
tty: true
'''
}
}
stages {
stage('Stage name') {
steps {
downstreamParameterized {
trigger('upstrea_job1') { ----> pull/clone a git repo into the workspace of the main project
parameters {
predefinedProp('customWorkspace', '${WORKSPACE}/${BUILD_NUMBER}/survey_vm_conf')
}
}
}
}
}
每当新管道运行时,它都会创建一个 pod,并且您的所有步骤/作业都可以使用单个 pod 来管理工作区。