Дженкинс: как статически проверить конвейер, который использует общие библиотеки? - PullRequest
0 голосов
/ 19 октября 2018

Я кодирую Трубопроводы Jenkins , но мой процесс разработки крайне неэффективен.Для каждой модификации я должен зафиксировать и отправить свой код и вручную запустить конвейер.Простая опечатка заставляет меня делать все это снова.Мой журнал контроля версий - беспорядок.

Я пытаюсь использовать 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)
                }
            }
        }
    }
}

Я запускаю конвейерную трассировку с помощью этой команды:

 ssh -p 8222 jenkins declarative-linter < myPipeline.groovy

И, хотя он прекрасно работает, когда я запускаю конвейер вДженкинс, я получаю следующую ошибку проверки 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)

Как использовать конвейерный линтер с общими библиотеками?

Я также приветствую любую помощь для оптимизации моего процесса разработки!

Ответы [ 2 ]

0 голосов
/ 22 октября 2018

Я только что обнаружил, что проблема по этому поводу в базе данных ошибок Jenkins.Я попробовал некоторые решения, но ничего не помогло.

Мне все еще хотелось бы получить советы о том, как эффективно кодировать конвейеры Jenkins.

Ответ: проверка невозможна, и вы обречены на очень неэффективный процесс разработки.

0 голосов
/ 21 октября 2018

Я не смог найти хорошего решения для этого, поэтому я создал конвейерное задание, которое содержит все соответствующие функции из общей библиотеки.

Как только у меня есть этот поток, я могу с ним справиться без фиксациичто-нибудь, пока это не работает ...

...