2017-02-20 5 views
3

Сценарий: У меня есть JenkinsFile в проекте, который ссылается на код в общей библиотеке конвейера, используя синтаксис @Library('my-lib'). Я хотел бы протестировать изменения в моей библиотечной функции без необходимости выполнять фиксацию в моем репо-библиотеке.Тестовые изменения в общей библиотеке Jenkins Pipeline без необходимости совершать

Я понимаю, что я могу настроить таргетинг на определенную версию или ветвь библиотеки в моей инструкции включения. Я также понимаю, что я могу изменить скрипт в своем JenkinsFile без необходимости совершать, используя функциональность «Replay» в пользовательском интерфейсе Jenkins. Как я могу проверить модификации кода разделяемой библиотеки без необходимости совершать фиксацию для моего филиала, в котором я тестирую? Прямо сейчас, нам нужно выполнить фиксацию с каждой настройкой в ​​нашем библиотечном коде, и мы предпочли бы не иметь супербуквенную историю транзакций. Другими словами, мы хотим только зафиксировать реплику нашей библиотеки для кода, который, как мы знаем, работает.

+1

У вас есть три варианта: 1. Повторить (лучше всего) или 2. Модифицировать код непосредственно в файловой системе рабочего пространства Дженкинса (плохо) или 3. выполнить свое тестирование и разработку, используя изображение Docker на основе Jenkins, которое контролируя ваш локальный клон, чтобы каждая команда LOCALLY запускала сборку, и когда вы будете готовы, вы можете сквозировать и нажимать. – rbellamy

ответ

2

Оказывается, что я либо слепой, либо Jenkins Pipeline теперь поддерживает редактирование библиотечного кода при использовании функциональности «Повтор». Вы должны делать фиксацию всякий раз, когда вы добавляете новый файл в свою библиотеку, чтобы отобразить его на экране воспроизведения. Как только он там, вы можете отредактировать его без необходимости совершать фиксацию каждый раз. Как только вы удовлетворены, он работает с использованием повтора, затем вы можете совершать и нажимать.

+0

Я не вижу свою общую библиотеку на экране воспроизведения. Вы используете плагин? – NicolasW

+0

@NicolasW Вы их не увидите, это глобальные библиотеки (по сравнению с библиотеками папок). – mkobit

3

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

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

Я еще не проверял, если есть «более чистый» способ сделать это. Это будет следующий шаг.

Вот мой обходной путь:

  1. Введите переигровку и комментировать @Library ('Имя_библиотеки') на скрипте (Jenkinsfile)

    //@Library('libname') 
    
  2. запустить сборку. Это приведет к сбою по назначению и очистке предыдущих переменных воспроизведения.

  3. Enter переигрывать снова, раскомментируйте и настроить тестовую ветвь библиотеки

    @Library('[email protected]') 
    
  4. сборка должна работать успешно и переигрывать переменные должны отражать изменения.

Смежные вопросы