Subversion сообщение зацепить за Дженкинс - PullRequest
0 голосов
/ 15 мая 2019

Я только что провел день, изучая десятилетие SO вопросов , сообщений на форуме и плагина Jenkins Subversion wiki и документации .

Вопрос, на который я пытался ответить:

  • Какая текущая минимальная настройка требуется для запуска заданий коммитами Subversion?

Вопросы, на которые я не смог ответить:

  • Какие плюсы / минусы использования wget против curl?
  • Каков эффект от передачи параметра REV?

Работа с Jenkins 2.164.3 и Subversion 1.9.7, каждая из которых настроена на свой собственный сервер Ubuntu 18.04, и у каждого свой собственный HTTP-сервер Apache с SSL-сертификатами LetsEncrypt для HTTPS.

1 Ответ

0 голосов
/ 15 мая 2019

Это минимальный svn post-commit hook, который работал для меня:

#!/bin/sh
REPO="$1"
REV="$2"
UUID="$(/usr/bin/svnlook uuid ${REPO})"
CHANGED="$(/usr/bin/svnlook changed -r ${REV} ${REPO})"    
SERVER_URL="https://<redacted>/jenkins"
USER="<redacted>"
API_TOKEN="<redacted>" # not the password

/usr/bin/curl -X POST -s -u "${USER}:${API_TOKEN}" -d "${CHANGED}" ${SERVER_URL}/subversion/${UUID}/notifyCommit

Примечания:

  • CSRF включен, но USER:API_TOKEN кажется достаточным (нет необходимости в крошках).
  • Не указывать какие-либо Content-Type заголовки - это нормально
  • Не отправлять ?rev=${REV} вроде бы нормально (какая разница?)
  • Нет необходимости настраивать специальные токены триггера сборки (см. Скриншот)

Вывод журнала Дженкинса с (8,706) и без (-1) параметра оборота:

May 15, 2019 8:04:28 PM INFO jenkins.scm.impl.subversion.SubversionSCMSource$ListenerImpl onNotify
Received post-commit hook from f9.... for revision [8,706 vs -1] on paths [project1/pom.xml, ...]
May 15, 2019 8:04:28 PM INFO jenkins.scm.impl.subversion.SubversionSCMSource$ListenerImpl onNotify
No subversion consumers for UUID f9....
May 15, 2019 8:04:28 PM INFO hudson.triggers.SCMTrigger$Runner run
SCM changes detected in project1. Triggering  #20

Конфигурация задания:

enter image description here

...