Я понимаю, что этот вопрос задавался раньше здесь, здесь и здесь, но ни одно из этих решений не работает для моего Настройка Дженкинса, и я не могу понять, почему.
Моя цель — инициировать сборку Jenkins, когда либо делается новая фиксация в ветке master
, либо когда какой-либо тег (или в GitHub — выпуск) добавляется в репозиторий. Вот моя текущая установка:
Когда я делаю новую фиксацию в ветке master
, запускается новая сборка. Но когда я добавляю новую версию GitHub, ничего не происходит.
Глядя на мой «Журнал опроса Git», вы видите следующий вывод:
Started on Jun 20, 2017 1:25:00 AM
Polling SCM changes on master
Using strategy: Default
[poll] Last Built Revision: Revision 035c0f46422616b1862376b79c43b2562dc66f93 (origin/master)
> git rev-parse --is-inside-work-tree # timeout=10
Fetching changes from the remote Git repositories
> git config remote.origin.url [email protected]:some-org/sample-app-frontend.git # timeout=10
Fetching upstream changes from [email protected]:some-org/sample-app-frontend.git
> git --version # timeout=10
using GIT_SSH to set credentials GitHub SSH Key
> git fetch --tags --progress [email protected]:some-org/sample-app-frontend.git +refs/heads/*:refs/remotes/origin/* +refs/tags/*:refs/remotes/origin/tags/*
Polling for changes in
Seen branch in repository origin/master
Seen branch in repository origin/tags/stage-v0.0.1
Seen branch in repository origin/tags/stage-v0.0.2
Seen branch in repository origin/tags/stage-v0.0.3
Seen branch in repository origin/tags/v0.0.4
Seen branch in repository origin/tags/v0.0.5
Seen branch in repository origin/tags/v0.0.6
Seen branch in repository origin/tags/v0.0.7
Seen 8 remote branches
> git tag -l # timeout=10
> git rev-parse refs/tags/stage-v0.0.2^{commit} # timeout=10
> git rev-parse refs/tags/v0.0.7^{commit} # timeout=10
> git rev-parse refs/tags/stage-v0.0.1^{commit} # timeout=10
> git rev-parse refs/tags/v0.0.6^{commit} # timeout=10
> git rev-parse refs/tags/v0.0.5^{commit} # timeout=10
> git rev-parse refs/tags/v0.0.4^{commit} # timeout=10
> git rev-parse refs/tags/stage-v0.0.3^{commit} # timeout=10
Done. Took 0.2 sec
No changes
Обратите внимание, что я использую git polling раз в минуту. Таким образом, похоже, что git правильно обнаруживает новые ветки, но каким-то образом опрос git, который делает Дженкинс, не считает, что новая ветвь квалифицируется как «изменение», поскольку она продолжает сообщать «Нет изменений» внизу.