Jenkinsfile是否添加其他脚本?

时间:2018-10-12 10:00:29

标签: bash jenkins groovy jenkins-pipeline

我想将一个简单的if脚本集成到我的Jenkinsfile中,但是我有一个小问题:

我的Bash脚本:

#!/bin/bash
if [ -e /root/test/*.php ];then
echo "Found file"
else
echo "Did not find file"
fi

脚本工作得很好,但是如果我尝试将其集成到一个阶段中,它们将无法运行:

        stage('Test') {
        steps {
            script {
                    if [ -e "/root/test/*.php" ];then
                        echo found
                    else 
                        echo not found
                }
            }
    }

1 个答案:

答案 0 :(得分:1)

管道的script步骤要求使用Groovy脚本,而不是Bash脚本-https://jenkins.io/doc/book/pipeline/syntax/#script

您可以使用sh step which is designed to execute shell scripts来代替使用script步骤。这样的事情(这只是一个例子):

stage('Test') {
    steps {
        sh(returnStdout: true, script: '''#!/bin/bash
            if [ -e /root/test/*.php ];then
            echo "Found file"
            else
            echo "Did not find file"
            fi
        '''.stripIndent())
    }
}