jenkins 2.0: Организуем тестирование в составе continuous delivery

59
© 2016 CloudBees, Inc. All Rights Reserved © 2015 CloudBees, Inc. All Rights Reserved Jenkins 2.0: Организуем тестирование в составе Continuous Delivery Олег Ненашев, CloudBees, Inc.

Upload: sqalab

Post on 16-Apr-2017

2.964 views

Category:

Education


7 download

TRANSCRIPT

Page 1: Jenkins 2.0: Организуем тестирование в составе Continuous Delivery

© 2

016

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

201

5 Cl

oudB

ees,

Inc.

All

Righ

ts R

eser

ved

Jenkins 2.0: Организуем тестирование в составе Continuous DeliveryОлег Ненашев,CloudBees, Inc.

Page 2: Jenkins 2.0: Организуем тестирование в составе Continuous Delivery

© 2

016

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

•~10 лет в R&D и автоматизации•Фокус: электроника и встраиваемое ПО– Intel, Sitronics, Synopsys

• Развертывание и поддержка больших систем автоматизации•Автоматизация тестирования и QA

2

О себе. Бэкграунд

@oleg_nenashev

oleg-nenashev

onenashev

Page 3: Jenkins 2.0: Организуем тестирование в составе Continuous Delivery

© 2

016

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

3

О себе. Jenkins

@oleg_nenashev

oleg-nenashev

onenashev

•Проект Jenkins, Core team– Развитие ядра– Поддержка плагинов– Организатор митапов– Контакт для прессы в СНГ

• Jenkins Developer в CloudBees– CloudBees – контрибьютор Jenkins– Помогаем строить enterprise-системы на

базе Jenkins – CloudBees Jenkins Platform– Поддержка 24/7

Page 4: Jenkins 2.0: Организуем тестирование в составе Continuous Delivery

© 2

016

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

Кто такой Jenkins?

4

• Сервер автоматизации• Continuous Integration• Continuous Delivery• DevOps• …

• Веб-интерфейс• Распределенная система

• Open-source (MIT)

https://jenkins.io

Сборка

Тестиро-вание

Создание пакетов

Установка, развер-тывание

Построе-ние

отчетов, аналитика

и другое

Page 5: Jenkins 2.0: Организуем тестирование в составе Continuous Delivery

© 2

016

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

5

Кто такой Jenkins• 2005: Появился как Hudson• 2008: Duke's Choice Award

• 2011: Переименование в Jenkins

• 2012: Самый популярный сервер непрерывной интеграции

• 2015: >100к активных инсталляций

• 2015: 1200 плагинов

Page 6: Jenkins 2.0: Организуем тестирование в составе Continuous Delivery

© 2

016

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

Jenkins 2.0Выпущен 20 апреля 2016https://jenkins-ci.org/2.0/

6

Page 7: Jenkins 2.0: Организуем тестирование в составе Continuous Delivery

© 2

016

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

7

Jenkins 2.0. А зачем?•Смена фокуса с CI в разработке софта– Continuous Delivery/Deployment– DevOps– Everything as Code

•Проблемы User Experience в Jenkins– Сложность настройки системы и задач– Неполная документация– Интеграционные проблемы

Page 8: Jenkins 2.0: Организуем тестирование в составе Continuous Delivery

© 2

016

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

•Новый вебсайт•Изменение базового набора плагинов •Security-опции включены по-умолчанию•Улучшения UX:– Новый мастер установки– Улучшение страниц конфигурации

задач– Категоризация задач

•Pipeline as Code8

Jenkins 2.0. Что внутри? http://bit.ly/jenkins20

Page 9: Jenkins 2.0: Организуем тестирование в составе Continuous Delivery

© 2

016

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

9

Предыдущие доклады о Jenkins 2.0•Митапы по Jenkins в Санкт-Петербурге–Инсайды по статусу разработки

Jenkins 2.0–О Jenkins в целом

•QA: Conference– Jenkins 2.0 Что внутри?

•Другие…

St. Petersburg Jenkins Meetup@jenkins_spb

Page 10: Jenkins 2.0: Организуем тестирование в составе Continuous Delivery

© 2

016

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

Сегодня…

Continuous Delivery

10

Disclaimer:• Презентация не является тренингом• Презентация отражает личное мнение докладчика• Личное мнение докладчика может не совпадать с

позицией компании или сообщества Jenkins• Ссылки на картинки – в бэкапе

Page 11: Jenkins 2.0: Организуем тестирование в составе Continuous Delivery

© 2

016

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

11

Было. Непрерывная Интеграция

http://www.osp.ru/os/2008/06/5344965/

Page 12: Jenkins 2.0: Организуем тестирование в составе Continuous Delivery

© 2

016

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

Было. Непрерывная Интеграция

12

РелизРелиз-

кандидатОсновная ветка

Изменение 1

Изменение 2

Изменение 3

QA

мало QA

мало QA

мало QA

Page 13: Jenkins 2.0: Организуем тестирование в составе Continuous Delivery

© 2

016

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

13

Page 14: Jenkins 2.0: Организуем тестирование в составе Continuous Delivery

© 2

016

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

•Они начинают раньше «работать»•Финансовый эффект достигается раньше

Зачем доставлять изменения раньше?

14

Page 15: Jenkins 2.0: Организуем тестирование в составе Continuous Delivery

© 2

016

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

Как не надо делать

15

РелизОсновная ветка

Изменение 1

Изменение 2

Изменение 3

мало QA

мало QA

мало QA

“Тяп-ляп и в продакшн”

Исправляем…Исправляем…

Page 16: Jenkins 2.0: Организуем тестирование в составе Continuous Delivery

© 2

016

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

Continuous Delivery

16

РелизОсновная ветка

Изменение 1

Изменение 2

Изменение 3

больше QA

больше QA

Больше QA

Быстрый откат

Page 17: Jenkins 2.0: Организуем тестирование в составе Continuous Delivery

© 2

016

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

17

CD для инфраструктуры…

•Инфраструктура:– критична для проектов– меняется вместе с кодом– должна тестироваться

• Infrastructure As Code•DevOps

Page 18: Jenkins 2.0: Организуем тестирование в составе Continuous Delivery

© 2

016

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

•Короткие циклы разработки•Всегда дедлайн•Нет времени на юнит-тесты•Разбиение систем на модули

CD для разработчиков…

18

Page 19: Jenkins 2.0: Организуем тестирование в составе Continuous Delivery

© 2

016

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

19

CD для контроля качества…•Короткие циклы верификации•Автоматизация всего:– Тестирование (все типы)– Статический анализ кода– Контроль совместимости модулей (N-

1)–…

•Надежность контроля– False negative опасны

Page 20: Jenkins 2.0: Организуем тестирование в составе Continuous Delivery

© 2

016

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

20

Что нам нужно для CD?•Параллелизация (что можно)•Версионирование кода и процедур сборки•Воспроизводимость тестов и сборок– Чистое окружение для каждого

прогона– Тесты сами подготавливают

окружение•Тестирование на реальном релизе– Staging-репозитории релизов

Page 21: Jenkins 2.0: Организуем тестирование в составе Continuous Delivery

© 2

016

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

21

Что нужно?Системы автоматизации!

Page 22: Jenkins 2.0: Организуем тестирование в составе Continuous Delivery

© 2

016

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

22

Почему Jenkins?

Jenkins – Система

Непрерывной Интеграции

ФреймворкАвтоматизации

Page 23: Jenkins 2.0: Организуем тестирование в составе Continuous Delivery

© 2

016

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

23

Интеграции

>1200 плагинов

Интеграция с сотнями тулов

Управление процессами автоматизации

Автоматизация любых задач

Code & Commit Build & Config Scan & Test Release Deploy

Page 24: Jenkins 2.0: Организуем тестирование в составе Continuous Delivery

© 2

016

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

24

Строим Delivery Pipeline. “Классический” подход

•Failover– Naginator-плагин

•Воспроизводимость– Чистое

окружение– Одноразовые

виртуальные машины

•Параллелизация– Matrix Project– Parameterized

Trigger•Цепочки задач:– MultiJob plugin– Build Pipeline Plugin

•Шаблонизация:– Template project– Inheritance plugin

Page 25: Jenkins 2.0: Организуем тестирование в составе Continuous Delivery

© 2

016

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

Классические подходы

Спагетти-автоматизация

• Зависимости между задачами

• Трекинг компонентов

• Сложные конфигурации

• Дупликация

• Сложность поддержки

• Ошибки

Page 26: Jenkins 2.0: Организуем тестирование в составе Continuous Delivery

© 2

016

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

26

Что делать?

Page 27: Jenkins 2.0: Организуем тестирование в составе Continuous Delivery

© 2

016

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

27

Pipeline as CodeОписание процесса сборки в виде кода

Page 28: Jenkins 2.0: Организуем тестирование в составе Continuous Delivery

© 2

016

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

28

•Хранение [X] вместе с проектом•Отслеживание изменений•Тестирование [X] вместе с проектом

[X] as code – часть Continuous DeliveryЗачем оно нужно?

[X] – Configuration, Documentation, Pipeline… Everything!

Page 29: Jenkins 2.0: Организуем тестирование в составе Continuous Delivery

© 2

016

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

29

Automation as Code

Job DSL

Pipeline (бывш. Workflow)По-умолчанию предлагается в Jenkins 2.0

Jenkins Job Builder

Groovy

Groovy

YAML

Ещё несколько плагинов…

Page 30: Jenkins 2.0: Организуем тестирование в составе Continuous Delivery

© 2

016

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

30

•Groovy DSL для описания задач•Тип задачи в Jenkins (Pipeline Job)•Open-source экосистема для X-as-code

Что такое Jenkins Pipeline?

Page 31: Jenkins 2.0: Организуем тестирование в составе Continuous Delivery

© 2

016

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

31

Pipeline. Запуск скрипта из SCM

• Синтаксис на базе Groovy• Шаги для типовых операций• Описания задач можно хранить в SCM• Jenkinsfile – описание задачи в корне репозитория• Шаг git() заменяется на “checkout scm”

• http://bit.ly/pipeline-tutorial

Page 32: Jenkins 2.0: Организуем тестирование в составе Continuous Delivery

© 2

016

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

Pipeline Multibranch. Пример• Автоматическое создание задач для веток и pull-request’ов• Независимые репортинг и история сборок• Работает на уровне организаций

Page 33: Jenkins 2.0: Организуем тестирование в составе Continuous Delivery

© 2

016

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

• Генератор шаблонов в UI– Пользователь настраивает шаг сборки в UI– Jenkins генерирует код для Pipeline

33

Фичи Pipeline

Page 34: Jenkins 2.0: Организуем тестирование в составе Continuous Delivery

© 2

016

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

•Отображение последовательного Pipeline •CloudBees перевела проект в OSS

34

Фичи. Pipeline Stage View

• Шаг stage()• Логи для отдельных

стадий задачи• Интерактивные шаги

интегрированы в UI

Page 35: Jenkins 2.0: Организуем тестирование в составе Continuous Delivery

© 2

016

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

35

Фичи: Pipeline View Plugin•Другое представление Pipeline•Сейчас–релиз вне основного центра апдейтов

Page 36: Jenkins 2.0: Организуем тестирование в составе Continuous Delivery

© 2

016

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

•Pipeline не привязан к конкретной ноде

•Параллелизация– Команда parallel() – не нужны связки

джобов•Множественные node() в одной задаче–=> + parallel() – запуск тестов на

разных машинах тестов на машинах•Множественные scm() в одной задаче•Интерактивные шаги

36

Специфика Pipeline

Page 37: Jenkins 2.0: Организуем тестирование в составе Continuous Delivery

© 2

016

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

37

Пример. Параллельные тесты…stage ‘test' parallel 'unit' : {       node {             unstash 'source'             sh "./gradlew :test"             stash includes: 'build/jacoco/*.exec', name: 'unitCodeCoverage'     step([$class:'JUnitResultArchiver', testResults:'**/build/test-results/*.xml'])       } }, 'integration': {       node {             unstash 'source'             sh "./gradlew -PhappyPath :integration-test:test"    step([$class:'JUnitResultArchiver', testResults:'**/build/test-results/*.xml'])       } }

Page 38: Jenkins 2.0: Организуем тестирование в составе Continuous Delivery

© 2

016

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

• Устойчивость к рестарту мастера– Pipeline хранит контекст и продолжает

задачу после рестарта•Шаг sh() – Durable Task Plugin– Устойчивость к разрывам сети

• Failover в случае инфраструктурных проблем

38

Pipeline. Надежность инфраструктуры

Page 39: Jenkins 2.0: Организуем тестирование в составе Continuous Delivery

© 2

016

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

Pipeline. Надежность инфраструктуры

•Почти любая ошибка может быть перехвачена и отработана

Переход на другую ноду

Node #1 Node #2. . .

. . .

for (def board : boards) { echo "trying board " + board; try { node(board) { checkout scm sh ‘./bin/run.sh’ // Call passed => DONE break; } } catch (Exception ex) { if (ex.message.contains ("exit code 255")) { // Fatal error fail("Test run failed") } } }

Пример кода

Page 40: Jenkins 2.0: Организуем тестирование в составе Continuous Delivery

© 2

016

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

•Команда load() –загрузка Pipeline из файла

•Pipeline Global Library Plugin– Входит в состав ядра Pipeline plugin– Создает Git-репозиторий в Jenkins– Предоставляет глобальные классы и

переменные

•Pipeline Remote Loader Plugin– Загрузка кода Pipeline из Git/GitHub 40

Фичи. Шаблонизация

Page 41: Jenkins 2.0: Организуем тестирование в составе Continuous Delivery

© 2

016

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

41

Pipeline. Воспроизводимость•Staging-репозитории– Плагины/CLI для Nexus, Artifactory, TFS, …

•«Чистые» окружения– Нативная поддержка виртуальных машин– Поддержка Cloud API Jenkins

o AWS, EC2, Azure, Mesos, vSphere, Docker, …– Docker Pipeline Plugin

Page 42: Jenkins 2.0: Организуем тестирование в составе Continuous Delivery

© 2

016

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

42

Docker Pipeline Plugin. Пример• Запуск задачи внутри контейнера:

• Сборка и публикация образов:

Page 43: Jenkins 2.0: Организуем тестирование в составе Continuous Delivery

© 2

016

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

43

Пример. CD Jenkins-бота  #!groovy  def imageName = 'jenkinsciinfra/ircbot’  node('docker') {        checkout scm        // Немного магии для получения тэга Docker-образа    sh 'git rev-parse HEAD > GIT_COMMIT'        shortCommit = readFile('GIT_COMMIT').take(6)        def imageTag = "build${shortCommit}"         stage 'Build ircbot'        withMavenEnv (["BUILD_NUMBER=${env.BUILD_NUMBER}:${shortCommit}"]) {      sh 'make bot' // Make вызывает Maven    }           stage 'Build container'        def whale = docker.build("${imageName}:${imageTag}”)       stage 'Deploy container'        whale.push()  }

https://github.com/jenkins-infra/ircbot

Page 44: Jenkins 2.0: Организуем тестирование в составе Continuous Delivery

© 2

016

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

44

ЕСТЬ ЛИ РУЧНОЕ ТЕСТИРОВАНИЕВ CONTINUOUS DELIVERY?

Page 45: Jenkins 2.0: Организуем тестирование в составе Continuous Delivery

© 2

016

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

45

Ручное тестирование•На критическом пути – в идеале НЕТ•Но: – Прототипирование автотестов– Исследовательское тестирование

•При CD тесты…– выполняются после автоматического

QA– встраиваются в Delivery Pipeline– максимально автоматизированы

Page 46: Jenkins 2.0: Организуем тестирование в составе Continuous Delivery

© 2

016

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

46

Пример. Интерактивные шаги// Сборка проекта из репозитория // Инициализация тестового прогона в TestRail для QA // Автотесты, репортинг, деплой на staging-сервер

// Отправить уведомления ручным тестировщикам echo ’Automatic tests passed’ hipchatSend('@QATeam The build ' + buildVersion + ' has been staged: ' + stagingURL + '. Please Test it and report back to ' + build.url + '. TestRail run is here: ' + testRailRunURL)

// Подождать, пока QA подтвердят релиз input message: 'Have manual spot-checks passed? Ready to release?'

// Релиз и нотификации

mail to: "[email protected]", subject: "Dream Product - build is released", body: "Hi there, The new build of the product has been released. Link:» + artifactoryLink

~~~~~~Много кода~~~~~~

~~~~~~Много кода~~~~~~

Page 47: Jenkins 2.0: Организуем тестирование в составе Continuous Delivery

© 2

016

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

47

Pipeline в CloudBees Jenkins Platform•Частичный Continuous Delivery•Около 100 внутренних модулей + open-source•Тысячи сборок в день•У нас нет тестировщиков (только SDET)

•Что мы автоматизируем?– Проверка pull-request’ов, validated Merge– Релизы (компоненты, инсталляторы)– CD документации на сайты– Интеграция компонентов (ночные сборки)– Деплой на staging

Page 48: Jenkins 2.0: Организуем тестирование в составе Continuous Delivery

© 2

016

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

48

Pipeline в CloudBees Jenkins Platform•Что сделали?– Весь код в SCM, минимальные настройки

проектов– Внутренняя библиотека Pipeline– Pipeline Utility Steps

•Чего добились?– Релиз и staging одной кнопкой– Легко тестируем изменения в Build Flow– Более эффективная параллелизация UI-

тестовoUI-тесты: 8 часов (на N машинах) => 1 часoРелиз основного модуля– 3 часа

Page 49: Jenkins 2.0: Организуем тестирование в составе Continuous Delivery

© 2

016

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

• Jenkins 2.0 – … частично решает проблемы с UI/UX– … будет развиваться дальше

•Pipeline as Code – … снижает затраты на поддержку

автоматизации– … может быть применен для CD– … может быть применен для задач QA

49

Заключение

Page 50: Jenkins 2.0: Организуем тестирование в составе Continuous Delivery

© 2

016

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

• Twitter: @jenkins_ru•Gitter: http://gitter.im/jenkinsci-ru

– QA: использование и разработка Jenkins

•Митапы:– Санкт-Петербург

o http://www.meetup.com/St-Petersburg-Jenkins-Meetup/

– Москва – in progresso http://www.meetup.com/Moscow-Jenkins-Meetu

p/

– Минск (@KostyaSha, привет!)– CloudBees спонсирует митапы 50

Русскоязычное комьюнити

Здесь может быть Ваше лого

Page 51: Jenkins 2.0: Организуем тестирование в составе Continuous Delivery

© 2

016

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

• Jenkins: – Вебсайт: http://jenkins.io – Jenkins 2.0: https://jenkins-ci.org/2.0/ – Jenkins и CD: https://jenkins.io/solutions/pipeline/

• Pipeline-as-Code:– Документация: https://jenkins.io/doc/pipeline/ – Примеры: https://github.com/jenkinsci/pipeline-examples

• CloudBees: – Вебсайт: https://www.cloudbees.com/ – CloudBees Jenkins Platform: https://

www.cloudbees.com/products/cloudbees-jenkins-platform

51

Ссылки

Page 52: Jenkins 2.0: Организуем тестирование в составе Continuous Delivery

© 2

016

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

201

5 Cl

oudB

ees,

Inc.

All

Righ

ts R

eser

ved

52

Page 53: Jenkins 2.0: Организуем тестирование в составе Continuous Delivery

© 2

016

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

53

Почему “автоматизации”?

Непрерывной Интеграции

Continuous IntegrationContinuous Delivery

DevOps

Автоматизация бухучётаHome Automation

CRON с WebUI

Page 54: Jenkins 2.0: Организуем тестирование в составе Continuous Delivery

© 2

016

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

54

Почему “фреймворк”? Система

Гибок и расширяем

Минимален «из коробки»

Требует настройки

Page 55: Jenkins 2.0: Организуем тестирование в составе Continuous Delivery

© 2

016

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

55

Система

Инфра-структура

Доку-мен-тация

Инфра-структура

Плагины Конфиги

Инфра-структура

Бэке

нд

Шаб-лоны

Система на базе Jenkins

Page 56: Jenkins 2.0: Организуем тестирование в составе Continuous Delivery

© 2

016

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

• Multibranch Pipeline – тип задачи– В конфигурации – ссылка на репозиторий  

o Git/GitHub, BitBucket, …– Описание проекта - Jenkinsfile– Для всех веток – ОТДЕЛЬНЫЕ задачи в Jenkins

o Сборки при коммитахo Независимые отчеты и Build History

– [СКОРО] – Сборка pull-request’ов

• (+) Multi-branch работает на уровне организаций в GitHub и BitBucket

56

Фичи Pipeline. Multibranch

Page 57: Jenkins 2.0: Организуем тестирование в составе Continuous Delivery

© 2

016

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

57

Multibranch Pipeline. Пример

Page 58: Jenkins 2.0: Организуем тестирование в составе Continuous Delivery

© 2

016

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

58

Pipeline. Шаги

>100 шагов:• Интеграции с плагинами• Системные шаги• Дополнительные библиотеки

Page 59: Jenkins 2.0: Организуем тестирование в составе Continuous Delivery

© 2

016

Clou

dBee

s, In

c. A

ll Ri

ghts

Res

erve

d

59

Pipeline Remote Loader. Пример

stage 'Load files from GitHub' def environment, helloworld fileLoader.withGit ('https://github.com/jenkinsci/workflow-

remote-loader-plugin.git', 'master', null, '') {

helloworld = fileLoader.load('examples/fileLoader/helloworld'); environment = fileLoader.load('examples/fileLoader/environment');

}

stage 'Run methods from the loaded content' helloworld.printHello() environment.dumpEnvVars()