🐓
pypc-tlbx
  • py_poc_toolbox
  • pages
    • Sphinx
    • pre-commit
    • line_profiler
    • Postgres
    • Питон-пакеты и PyPI
    • ElasticSearch
    • Рандом
    • DDD
  • Devops
    • Supervisor
    • Jenkins
    • Docker
    • Jenkins + Docker
Powered by GitBook
On this page
  • Установка
  • Создание item’a

Was this helpful?

  1. Devops

Jenkins

PreviousSupervisorNextDocker

Last updated 5 years ago

Was this helpful?

- популярный CI-сервер.

CI - континиус интегрейшен, процесс сливания изменений в одну ветку и осуществление сборки, например, в случае питона - прогон тестов, сборка докер-контейнера, и т.д.

CI - это удобно, потому что разрабу достаточно сделать пуш в репу, CI-сервер при обнаружении коммита сам проведет сборку и деплой, а в случае неудачи пришлет письмо с ошибками.

Основы Jenkins можно посмотреть .

Установка

На офф сайте довольно , все без проблем встает.

После установки, Jenkins будет запушен на 8080 порту, и выглядит примерно так:

https://jenkins.io/images/post-images/2018-01-15-JENKINS-43786/JENKINS-43786_2.png

Плагины

Для Jenkins’а создано куча плагинов, например:

Приведенные выше плагины должны быть установлены для прохождения туториала, установить их и другие можно в {jenkins-host-url}/pluginManager/

Примечание

{jenkins-host-url} - адрес сервера, где запущен Jenkins, с указанием порта.

Создание item’a

Item - описание процесса сборки.

Создание Item’а осушестляется в {jenkins-host-url}/view/all/newJob/, тип можно оставить дефолтовым.

Конфигурация репозитория

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

В случае с публичным репозиторием достаточно указать адрес репозитория, для приватного репозитория необходимо также создать на сервере ssh-ключи для юзера jenkins:

sudo su jenkins
ssh-keygen

В результате выполнения команд, получаем публичный ключ, который необходимо скопировать:

cat /var/lib/jenkins/.ssh/id_rsa.pub

В настройках Bitbucket-репозитория в разделе Access Keys создаем новый ключ со скопированным содержимым.

Для того, чтобы уведомлять Jenkins о новых коммитах, в разделе Webhooks создаем хук на {jenkins-host-url}/bitbucket-hook/.

Аналогичное делаем в Jenkins, для этого переходим в {jenkins-host-url}/credentials/store/system/domain/_/, создаем Credentials с типом SSH Username with private key, и приватным ключом в ~/.ssh.

Возвращаемся в создание Item, созданную учетную запись добавляем в соответствующее поле в настройке репозитория.

Конфигурация сборки

Помимо указания репозитория, для сборки необходимо определить следующее:

  • Триггеры сборки - ставим флаг Build when a change is pushed to BitBucket для запуска сборки при коммите

  • Создание среды - здесь определяем настройки среды, такие как переменные окружения

  • Сборка - набор команд, успешное выполнение которых говорит об успешной сборке, примеры комманд - установка зависимостей, запуск тестов

  • Послесборочные операции - уведомление по почте, присвоение статуса сборки коммиту

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

- интеграция с Bitbucket, включая триггер сборки при пуше

- отправка писем с помощью сторонних сервисов, типа Google SMTP

- для работы с переменными среды

Bitbucket Plugin
Email-ext plugin
EnvInject Plugin
Jenkins
тут
адекватная инструкция