Jenkins. Робота з GIT.

Для роботи з репозиторієм на початку необхідно додати користувача та його приватні ключі, які використовуються в git.

start page

Потім можна створити таку задачу типу Pipeline.

node('pi') {
    stage('Git clone') {
        dir('/home/zdimon/project01') {
            git credentialsId: '0acbc9ab-ca88-4fbd-a13e-59c3c81c1722', url: 'git@github.com:zdimon/web-starter.git', branch: 'master'

            script {
                def stdOut = sh(script: "pwd && ls -alh",
                    returnStdout: true)
                echo stdOut
            }
        }
    }
}

node(‘pi’) - вказуємо в якій ноді (на якому сервері) працювати.

stage(‘Git clone’) - позначаємо статію.

dir(‘/home/zdimon/project01’) {…} - говоримо в якій директорії працювати.

Якщо директорію не вказувати, то jenkins для кожного завдання буде створювати окремий каталог усередині папки workspace.

При формуванні команди клону я користувався помічником.

start page

start page

Далі в блоці script ми виконуємо bash команду, заносимо її виведення у файл та виводимо його у консоль.

    script {
        def stdOut = sh(script: "pwd && ls -alh",
            returnStdout: true)
        echo stdOut
    }

Результат.

start page

start page

Прив’язуємо запит на збирання до git хуку.

У папці .git є каталог hooks з шаблонами bash скриптів, що спрацьовують у різних ситуаціях.

Створюємо новий файл post-commit

#!/bin/sh
echo "Post commit"

Додаємо права на виконання

chmod +x ./git/hooks/post-commit

Тепер цей скрипт буде виконуватись при кожному коміті.

Можна до нього додати запит на сервер із jenkins.

curl http://yourserver/jenkins/git/notifyCommit?url=<URL of the Git repository>

Цей запит просканує всі завдання, які налаштовані з перевіркою специфічного URL.

Ще один варіант запуску.

#!/bin/bash
/usr/bin/curl --user USERNAME:PASS -s \

http://jenkinsci/job/PROJECTNAME/build?token=1qaz2wsx

Для цього запиту необхідно налаштувати завдання віддаленим тригером з токеном.

Запуск певного завдання на її ім’я.

curl http://localhost:8080/job/someJob/build?delay=0sec

curl -X POST http://:/job/job-name-in-jenkins/build?delay=0sec --user user:password