Как включить общую библиотеку в консоль сценариев Jenkins? - PullRequest
0 голосов
/ 05 декабря 2018

В Jenkinsfile, если у меня установлена ​​общая библиотека Jenkins , установленная под псевдонимом my-awesome-lib, я могу включить ее, используя синтаксис:

@Library('my-awesome-lib')
import ...

Но как я могу сослатьсяв библиотеку из консоли сценариев Jenkins ?

1 Ответ

0 голосов
/ 25 декабря 2018

Вы можете ссылаться на объект библиотеки из консоли сценария следующим образом:

// get Jenkins instance
Jenkins jenkins = Jenkins.getInstance()

// get Jenkins Global Libraries
def globalLibraries = jenkins.getDescriptor("org.jenkinsci.plugins.workflow.libs.GlobalLibraries")
globalLibraries.getLibraries()

, но использование кода совместно используемых библиотек не будет простым и даже невозможным.

В дальнейшем перейдите ккод выше, скажем, вы делаете:

def lib = globalLibraries[0]

получить ретривер:

def ret = lib.getRetriever()

тогда вам нужно получить исходный код, но для вызова retrieve () вам нужнонесколько объектов, которых у вас нет в консоли сценария:

/**
     * Obtains library sources.
     * @param name the {@link LibraryConfiguration#getName}
     * @param version the version of the library, such as from {@link LibraryConfiguration#getDefaultVersion} or an override
     * @param target a directory in which to check out sources; should create {@code src/**}{@code /*.groovy} and/or {@code vars/*.groovy}, and optionally also {@code resources/}
     * @param run a build which will use the library
     * @param listener a way to report progress
     * @throws Exception if there is any problem (use {@link AbortException} for user errors)
     */
    public abstract void retrieve(@Nonnull String name, @Nonnull String version, @Nonnull FilePath target, @Nonnull Run<?,?> run, @Nonnull TaskListener listener) throws Exception;

, так что может быть хакерский способ сделать это, но IMO это того не стоит.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...