Jenkins GitHub Authentication
Настройка авторизации для доступа Jenkins к приватному репозиторию на GitHub'e.
Для доступа может использоваться логин и пароль пользователя либо personal access token и именно его будем использовать.
Установить plugin
Установить GitHub Authentication plugin в Jenkins'e
Создать personal access token
Используем инструкцию: https://help.github.com/en/github/authenticating-to-github/creating-a-personal-access-token-for-the-command-line
- Переходим в настройки профиля Settings -> Developer settings -> Personal access tokens -> Generate new token
- Заполняем имя token'a (Note), выбираем роли с предустановленными правами (Scopes)
- Нажимаем Generate token
- Копируем токен, т.к. посмотреть его уже будет невозможно, только перегенерировать.
Проверим доступ к репозиторию по token'y
git clone https://github.com/user/repo.git Клонирование в «repo»… Username for 'https://github.com': <TOKEN> Password for 'https://******@github.com': <ПАРОЛЬ ПУСТОЙ> remote: Enumerating objects: 608, done. remote: Counting objects: 100% (608/608), done. remote: Compressing objects: 100% (310/310), done. remote: Total 608 (delta 304), reused 512 (delta 220), pack-reused 0 Получение объектов: 100% (608/608), 90.63 KiB | 591.00 KiB/s, готово. Определение изменений: 100% (304/304), готово.
Добавить Credentials в Jenkins
Jenkins Pipeline GitHub+Maven
pipeline { agent any stages { stage('Build') { agent { docker { image 'maven:3-alpine' reuseNode true } } steps { // Get some code from a GitHub repository git url: 'https://github.com/user/repo.git', branch: 'master', credentialsId: 'github_token' // Run Maven on a Unix agent. sh "mvn clean -Dtest=CucumberAllTest test" } post { // If Maven was able to run the tests, even if some of the test // failed, record the test results and archive the jar file. success { junit '**/target/surefire-reports/TEST-*.xml' archiveArtifacts 'target/*.jar' } } } } }
Обсуждение