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 管道的任何提示。