Jenkins Pipeline Groovy脚本未在工作区中执行

a0zr77ik  于 2022-12-22  发布在  Jenkins
关注(0)|答案(1)|浏览(201)

我有一个在容器中运行的Jenkins。我试图调试一个在Jenkins管道中运行的Groovy文件,发现由于某种原因它不能从工作区执行。

pipeline {
    agent any

    stages {
        stage('testing') {
            steps {
                script {
                    sh '''
                    ls
                    '''
                    def proc = [ "ls"].execute()
                    def output = proc.text
                    println(output)
                }
            }  
        }

    }
}

shell命令返回 checkout 的存储库列表,正如预期的那样。然而,在groovy脚本中执行的相同命令显示容器根文件系统。这不是我所期望的。这里发生了什么?

Pipeline] }
[Pipeline] // stage
[Pipeline] withEnv
[Pipeline] {
[Pipeline] stage
[Pipeline] { (testing)
[Pipeline] script
[Pipeline] {
[Pipeline] sh
+ ls
README.md
docs
jenkins
modules
scripts
[Pipeline] echo
aws
bin
boot
dev
etc
home
lib
lib64
media
mnt
opt
proc
root
run
sbin
srv
sys
tmp
usr
var
vault
iszxjhcz

iszxjhcz1#

sh节点是一个正确的Jenkins内置步骤,用于运行作业中的命令。
.execute()有点黑客:)
您正在通过Jenkins解释器运行Groovy脚本,Jenkins解释器不是很标准,它有自己的功能。
我会避免它,并保持与Jenkinssh,有一个标准的行为。

相关问题