如何在与主项目相同的 pod 中运行 jenkins 子项目?

问题描述 投票:0回答:1

我有一个在 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')
                }
            }

        }

我可以采取任何解决方法吗?

jenkins jenkins-plugins jenkins-groovy jenkins-job-dsl jenkins-kubernetes
1个回答
0
投票

为要在单个 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 来管理工作区。

© www.soinside.com 2019 - 2024. All rights reserved.