Jenkins:如何静态检查使用共享库的管道?
Jenkins: how to statically check a pipeline that uses shared libraries?
我正在编码 Jenkins pipelines,但我的开发过程效率极低。对于每次修改,我必须提交并推送我的代码,并手动 运行 管道。一个简单的错字让我重新做一遍。我的版本控制日志一团糟。
我正在尝试使用我正在使用的 Pipeline Linter, but it fails since it doesn't recognize the Shared Libraries。
这是我的代码的简化版本,我将尝试对其进行 lint。当我从界面 运行 时,此代码有效:
//importing class MyClass defined in src/com/company/MyClass.groovy
import com.company.MyClass.*
//importing src/com/company/helper/Log.groovy
import com.company.helper.Log;
def call(String env) {
def mud
pipeline {
agent none
stages{
stage('Checkout') {
agent any
steps {
mud = new MyClass(script: this)
}
}
}
}
}
我 运行 使用此命令的管道 linter:
ssh -p 8222 jenkins declarative-linter < myPipeline.groovy
而且,虽然我在 Jenkins 中 运行 管道时工作正常,但我收到以下 lint 验证错误:
Errors encountered validating Jenkinsfile:
WorkflowScript: 2: unable to resolve class com.company.helper.Log
@ line 2, column 1.
import com.company.helper.Log;
^
WorkflowScript: 25: unable to resolve class MyClass
@ line 25, column 35.
mud = new MyClass(script: this)
如何将管道 linter 与共享库一起使用?
我也欢迎任何有助于简化我的开发过程的帮助!
我找不到好的解决方案,所以我创建了一个管道作业,其中包含共享库中的所有相关函数。
一旦我有了这个流程,我就可以在它工作之前不做任何事情地使用它......
答案是无法检查,Jenkins pipeline 开发人员注定会有一个非常低效的开发过程。
我刚发现 Jenkins 错误数据库中有关于此的 an issue。我已经尝试了一些解决方案,但没有任何效果。
我仍然想要有关如何高效地编写 Jenkins 管道的任何提示。
我正在编码 Jenkins pipelines,但我的开发过程效率极低。对于每次修改,我必须提交并推送我的代码,并手动 运行 管道。一个简单的错字让我重新做一遍。我的版本控制日志一团糟。
我正在尝试使用我正在使用的 Pipeline Linter, but it fails since it doesn't recognize the Shared Libraries。
这是我的代码的简化版本,我将尝试对其进行 lint。当我从界面 运行 时,此代码有效:
//importing class MyClass defined in src/com/company/MyClass.groovy
import com.company.MyClass.*
//importing src/com/company/helper/Log.groovy
import com.company.helper.Log;
def call(String env) {
def mud
pipeline {
agent none
stages{
stage('Checkout') {
agent any
steps {
mud = new MyClass(script: this)
}
}
}
}
}
我 运行 使用此命令的管道 linter:
ssh -p 8222 jenkins declarative-linter < myPipeline.groovy
而且,虽然我在 Jenkins 中 运行 管道时工作正常,但我收到以下 lint 验证错误:
Errors encountered validating Jenkinsfile:
WorkflowScript: 2: unable to resolve class com.company.helper.Log
@ line 2, column 1.
import com.company.helper.Log;
^
WorkflowScript: 25: unable to resolve class MyClass
@ line 25, column 35.
mud = new MyClass(script: this)
如何将管道 linter 与共享库一起使用?
我也欢迎任何有助于简化我的开发过程的帮助!
我找不到好的解决方案,所以我创建了一个管道作业,其中包含共享库中的所有相关函数。
一旦我有了这个流程,我就可以在它工作之前不做任何事情地使用它......
答案是无法检查,Jenkins pipeline 开发人员注定会有一个非常低效的开发过程。
我刚发现 Jenkins 错误数据库中有关于此的 an issue。我已经尝试了一些解决方案,但没有任何效果。
我仍然想要有关如何高效地编写 Jenkins 管道的任何提示。