如何为詹金斯管道声明方法定义工作区体积

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何为詹金斯管道声明方法定义工作区体积相关的知识,希望对你有一定的参考价值。

我正在尝试建立声明性管道,在该管道中我想将工作空间作为卷声明保留,因此较大的git checkout可以更快。基于doc,有选项workspaceVolumepersistentVolumeClaimWorkspaceVolume,但我无法使其工作-jenkins始终执行以下操作:

volumeMounts:
 - mountPath: "/home/jenkins/agent"
   name: "workspace-volume"
   readOnly: false
volumes:
  - emptyDir: {}
    name: "workspace-volume"
答案

尝试类似的东西

script {
        def pvcWorkspaceName = parameters.get('workspaceClaimName', null)

        def podYaml = ""
        def workspaceVolume = emptyDirWorkspaceVolume(memory: false)
        if (pvcWorkspaceName) {
        podYaml = """
apiVersion: v1
kind: Pod
spec:
    initContainers:
    - name: init-workspace
    image: busybox
    command: ['sh', '-c', 'chmod -R 777 /home/jenkins']
    volumeMounts:
    - mountPath: /home/jenkins/agent
        name: workspace-volume
        """
        workspaceVolume = persistentVolumeClaimWorkspaceVolume(claimName: pvcWorkspaceName, readOnly: false)
        }
   ....

   podTemplate(name: "${name}", label: label, serviceAccount: "${serviceAccount}",
        idleMinutesStr: "${idleMinutes}",
        containers: containerTemplates,
        workspaceVolume: workspaceVolume,
        volumes: volumes,
        imagePullSecrets: imagePullSecrets,
        yaml: podYaml)
}

以上是关于如何为詹金斯管道声明方法定义工作区体积的主要内容,如果未能解决你的问题,请参考以下文章

詹金斯管道:代理与节点?

如何为 GraphQLObjectType 的 GraphQLList 定义 Relay 片段?

如何为 XSLT 代码片段配置 CruiseControl 的 C# 版本?

如何为 .cpp 文件中定义的所有类成员方法声明范围? [复制]

如何为詹金斯参数化远程触发插件设置远程主机

如何为管道中的异常值删除实现 Python 自定义类?