在编写jenkins管道时,提交每个新更改以查看它是否有效似乎非常不方便。

是否有一种方法可以在本地执行这些而不提交代码?


当前回答

据我所知,这个管道插件是新的Jenkinsfile机制的“引擎”,所以我非常肯定你可以用它来本地测试你的脚本。

我不确定是否有任何额外的步骤,当你复制到一个Jenkinsfile,但语法等应该完全相同。

编辑:在“引擎”上找到了参考,检查这个功能描述,最后一段,第一个条目。

其他回答

除了其他人已经提到的重放功能(关于它的有用性也一样!),我发现以下功能也很有用:

创建一个测试管道作业,您可以在其中键入管道代码或指向Jenkinsfile的repo/分支来快速测试一些东西。为了更准确的测试,使用Multibranch Pipeline,它指向你自己的fork,在那里你可以快速做出改变并提交,而不影响proch。 由于Jenkinsfile是Groovy代码,只需使用“Groovy Jenkinsfile”调用它来验证基本语法。

有点晚了,但这就是为什么我写了jenny,一个小的重新实现一些核心的Jenkinsfile步骤。(https://github.com/bmustiata/jenny)

这是一个简短的解决方案,可以让我非常快速地测试管道代码:

pipeline {
    agent any
    options {
        skipDefaultCheckout true
        timestamps()
    }
    parameters {
        text(name: 'SCRIPT', defaultValue: params.SCRIPT,
            description: 'Groovy script')
    }
    stages {
        stage("main") {
            steps {
                script {
                    writeFile file: 'script.groovy', 
                        text: params.SCRIPT
                    def groovyScript = load 'script.groovy'
                    echo "Return value: " + groovyScript
                }
            } // steps
        } // stage
    } // stages
} // pipeline

skipDefaultCheckout为true,因为我们不需要这个工具git存储库中的文件。 defaultValue:参数。SCRIPT将默认值设置为最近一次执行。如果只有一个用户使用,它允许非常快速的短测试周期。 给定的脚本被写入一个文件,并加载和加载。

有了这个设置,我可以在其他jenkins文件中测试我能做的所有事情,包括使用共享库。

使用VS Code Jenkins Jack扩展,你可以在不使用git推送的情况下测试你的Jenkins文件,从你的本地文件到本地或远程运行的Jenkins。你将在VS Code中有作业的运行日志,能够在Jenkins中创建作业和更多的工作人员。我希望这有助于更多的人寻找一种方法来开发詹金斯档案。

据我所知,这个管道插件是新的Jenkinsfile机制的“引擎”,所以我非常肯定你可以用它来本地测试你的脚本。

我不确定是否有任何额外的步骤,当你复制到一个Jenkinsfile,但语法等应该完全相同。

编辑:在“引擎”上找到了参考,检查这个功能描述,最后一段,第一个条目。