代码之家  ›  专栏  ›  技术社区  ›  neves

Jenkins:如何静态检查使用共享库的管道?

  •  3
  • neves  · 技术社区  · 8 年前

    我在编码 Jenkins pipelines 但是我的开发过程非常低效。对于每一次修改,我必须提交和推送我的代码,并手动运行管道。一个简单的打字错误让我又做了一遍。我的版本控制日志乱七八糟。

    Pipeline Linter ,但由于无法识别 Shared Libraries 我正在用的。

    这是我的代码的一个简化版本,我将尝试删除它。当我从接口运行它时,此代码起作用:

    //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
    

    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)
    

    我也欢迎任何帮助,以简化我的发展过程!

    2 回复  |  直到 8 年前
        1
  •  0
  •   Mor Lajb    8 年前

    我找不到一个很好的解决方案,所以我创建了一个管道作业,其中包含来自共享库的所有相关函数。

    一旦我有了这个流程,我就可以不做任何承诺就开始了,直到它成功。。。

        2
  •  0
  •   neves    5 年前

    答案是,检查是不可能的,Jenkins管道开发人员注定会有一个非常低效的开发过程。

    我刚刚发现 an issue 在詹金斯的虫子数据库里。我试过一些解决办法,但都没用。