[A Cloud Guru, Linux Academy] Внедрение полного конвейера CI/CD [RUS, 2020]


04. Непрерывная интеграция


15. Установка Jenkins

Устанавливаю Jenkins в ubuntu


Manange Jenkins -> Global Tool Configuration -> JDK -> 1.8


16. Настройка проектов Jenkins


Jenkins

New Item

Name: train-schedule
Type: Freestyle project

OK


Source Code Management

Git -> https://github.com/linuxacademy/cicd-pipeline-train-schedule-jenkins


Build -> Add build step -> Invoke Gradle script

Use Gradle Wrapper

Tasks -> build


Post-build Actions -> Archive the artifacts

Files to archive -> dist/trainSchedule.zip


Build Now


17. Запуск сборок с хуками в Git (Не заработало, т.к. Нужен публичный сервер jenkins)


GitHub


GitHub -> Settings -> Developer settings -> Personal access tokens -> Generate new token


Token description: jenkins

admin:repo_hook


Generate token


Copy Api Key


Jenkins


Manage Jenkins -> Configure System

Github -> GitHub Server

Name: GitHub


Credentials -> Add -> Jenkins

Kind: Secret Text


Secret: <API_KEY>
ID: github_api_key
Description: GitHub API Key


Add


Credentials -> GitHubKey


  • Manage hooks


Save


Выбираем созданные ранее проект train-schedule

Configure

Source Code Management


Git (Форкнутый репо) -> https://github.com/wildmakaka/cicd-pipeline-train-schedule-jenkins


Build Trigger

  • GitHub hook trigger for GITScm polling


SAVE


GitHub

Должен появиться Webhook.

App -> Settings -> Webhooks

Но он появится, только если использовать public ip.

С localhost будет вот такое:


{"resource":"Hook","code":"custom","message":"Sorry, the URL host localhost is not supported because it isn't reachable over the public Internet"}


Делаем коммит, изменив файл Readme.md


Jenkins должен автоматически пересобрать проект.