Дженкинс в линии декларативного закрытия трубопроводов? - PullRequest
0 голосов
/ 22 февраля 2019

Мое закрытое конвейерное поведение по-разному ведет себя точно так же, как код в хранилище совместно используемой библиотеки.Почему?


Подробности:

Я пишу метод извлечения pipeline {} в файл Vars, который может быть повторно использован несколькими заданиями.

Однако, чтобы протестировать вещи без необходимости выполнять каждую маленькую проверку синтаксиса, я сначала пытаюсь протестировать несколько встроенных вещей.Но все происходит по-другому ...

Это мой встроенный конвейер тестирования:

#!/usr/bin/env groovy

myPhpDelivery = { Map p = [:] ->
    echo "myPhpDelivery called"
    echo "${p}"

    pipeline {
        agent any

        options {
            buildDiscarder(logRotator(numToKeepStr: '3'))
        }
        environment {
            APP_NAME = "${p.appName}"
        }

        stages {
            stage("skip build?") {
                steps {
                    script {
                        // skipRemainingStages = checkSkipci()
                        skipRemainingStages = false
                        echo "${p}"
                    }
                }
            }
        }
    }
}


myPhpDelivery ( appName: "test-job",
    src: "src/",
    test: [
        test: "test"
    ]
)

Этот конвейер в файле phpDelivery.groovy, расположенный как общий плагин, действительно работает.Тем не менее, здесь в строке, это не так.Дженкинс выдает следующие ошибки:

groovy.lang.MissingPropertyException: No such property: any for class: WorkflowScript

Поскольку он не понимает any вызова agent (и многое другое, если я переместу агента на сцену).

Я пропалчто-то с этим?Как будто отсутствует контекст, который подразумевается при использовании общего плагина.

Есть ли способ заставить это работать в режиме реального времени, поэтому я продолжаю свое тестирование (и, честно говоря, изучение Groovy).

...