Пример MultibranchPipeline сборки и деплоя NodeJS при помощи Jenkins‘а, упаковывание собранного в контейнер с Nginx‘ом и обновлением образа в Kubernetes. В качестве хранилища образов используется AWS ECR, уведомления о сборке отправляются в SLACK канал. Jenkinsfile:
Задача следующая, удалять содержимое Persistent Storage для пода с Postgres базой данных при включенной опции при сборке в Jenkins.
Плагин Badge для Fastlane позволяет добавлять на иконки номера версий, тип релиза и т.д. На MacOS сборщике установим зависимости: Добавим строку в Gemfile проекта: В Fastfile добавим блок относящийся к badge и будем добавлять номер версию через переменную.
В репозитории, где будут храниться будущие groovy файлы создадим директорию с именем «utilities» и в нем создадим файл «GithubPipeline.groovy» со следующим содержимым: Теперь для создания Item‘а достаточно создать в корне репозитория файл с расширением groovy, для того, чтобы на Seed Job его обработал.
Пример Pipeline файла конфигурации для DSL модуля. Это параметризованная сборка. Jenkinsfile расположен в корне репозитория.
В репозитории, где будут храниться будущие groovy файлы создадим директорию с именем «utilities» и в нем создадим файл «BitbucketMultibranch.groovy» со следующим содержимым: Теперь для создания Item‘а достаточно создать в корне репозитория файл с расширением groovy, для того, чтобы на Seed Job его обработал.
Пример Multibranch Pipeline файла конфигурации для DSL модуля, с кастомным Bitbucket сервером. Который будет включать в себя ветки: «develop«, «staging» и «master«. Будет хранить последние 15 сборок. И искать Jenkins файл по пути: «.jenkins/Jenkinsfile» Имя репозитория: artem-dsl Владелец (имя проекта): dev Креды доступа Jenkins’а к Bitbucket: svn-bibucket
Для того, чтобы принудительно задать номер сборки, нужно перейти в домашнюю директорию пользователя «jenkins» -> «jobs» -> «Имя_проекта» -> «Имя_ветки» и открыть файл «nextBuildNumber«. И в нем указать номер следующей сборки. После этого, нужно чтобы Jenkins перечитал данные с диска, для этого переходим в настройки и находим пункт «Перезагрузка конфигурации с диска»
При помощи Jenkins и Fastlane будем собирать приложения на iOS и Android, будем отправлять артефакты в Slack, и так же автоматически приложение для iOS отправлять в Testflight. Сборка настроена с веток develop и release, и считывает с них версию релиза (major и minor), и добавляет номер сборки. К примеру: ветка — release/1.0 и номер Jenkins …
Продолжить читать "Jenkins — Fastlane build iOS and Android apps"
За основу берем Ubuntu 18.04, устанавливаем Android SDK, так же устанавливаем ruby, nodejs и yarn. И пробрасываем пользователя Jenkins в контейнер, для выполнения привилегированных команд. Dockerfile: