Пример 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: