Jenkins Pipeline 未创建工作区目录

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

这是一个“为什么要这样做”的问题并寻求解释。我有一个 Jenkins 管道维护工作,它是其他工作的委托,然后应将其结果以文本文件形式复制回委托。

委托调用的作业失败,因为 cp 命令表示目标目录不存在。我看了,是的,它不存在。

我的解决方案是回显“hello, world”> txt.txt,现在委托目录存在。所以我的问题是,为什么 Jenkins 不为这项工作创建工作空间。我在各地都使用代表,他们似乎工作得很好。我能说的唯一真正的区别是这个特定委托的代理是“内置的”而不是节点。要回答为什么我要做内置,是因为维护任务必须在主节点和节点上运行。

任何帮助将不胜感激。

jenkins jenkins-pipeline
1个回答
0
投票

Jenkins 不会自动为管道作业创建工作区目录,直到作业显式执行需要工作区的操作(例如签出代码或创建文件)。这是在“内置”代理(Jenkins 控制器)或任何代理上运行的作业的预期行为。

以下示例说明了如何在 Jenkins Pipeline 中添加执行 Shell 步骤来执行简单操作:打印工作区环境变量并列出工作区中的所有文件:

pipeline {
    agent any
    stages {
        stage('Prepare Workspace') {
            steps {
                // Execute a shell command to print the workspace and list files
                sh '''
                echo "Workspace Directory: ${WORKSPACE}"
                ls -la ${WORKSPACE}
                '''
            }
        }
    }
}

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