какая разница, здесь мы лишь задаем соответствие между названиями локальных тегов и удаленных. Или я не правильно понимаю назначение refspec?
почему? Сейчас у меня в параметрической сборке передается просто имя тега, например, qa_12345678 и все отлично собирается
попробовал ваш вариант, отрабатывает, только если тег указывает на HEAD, тогда в логе я вижу
19:14:09 Started by an SCM change
19:14:09 [EnvInject] - Loading node environment variables.
19:14:09 Building in workspace /var/jenkins_home/workspace/p1
19:14:09 > git rev-parse --is-inside-work-tree # timeout=10
19:14:09 Fetching changes from the remote Git repository
19:14:09 > git config remote.origin.url ssh://git@193.243.xxx.xxx:2222/test/p1.git # timeout=10
19:14:09 Fetching upstream changes from ssh://git@193.243.xxx.xxx:2222/test/p1.git
19:14:09 > git --version # timeout=10
19:14:09 using GIT_SSH to set credentials
19:14:09 > git -c core.askpass=true fetch --tags --progress ssh://git@193.243.xxx.xxx:2222/test/p1.git +refs/tags/*:refs/remotes/origin/tags/*
19:14:09 Seen branch in repository origin/api
19:14:09 Seen branch in repository origin/master
19:14:09 Seen branch in repository origin/tags/dev_1472738934
19:14:09 Seen branch in repository origin/tags/dev_1472841653
19:14:09 Seen branch in repository origin/tags/qa_1472735198
19:14:09 Seen branch in repository origin/tags/qa_1472737751
...
19:14:09 Checking out Revision 75c42ce06cbbff83e1640e4b7b28543ca6793167 (origin/tags/qa_1472930009)
19:14:09 > git config core.sparsecheckout # timeout=10
19:14:09 > git checkout -f 75c42ce06cbbff83e1640e4b7b28543ca6793167
19:14:09 First time build. Skipping changelog.
19:14:09 SSH: Connecting from host [9f68450a2695]
Если же я создаю тег, который указывает не на HEAD, то сборка просто игнорится, при этом в логах Git Polling Log новый тег появляется, но сборка не запускается, например,
# git rev-parse HEAD
75c42ce06cbbff83e1640e4b7b28543ca6793167
# git tag qa_$(date '+%s') 863c7607 && git push -u origin --tags
Total 0 (delta 0), reused 0 (delta 0)
To ssh://git@193.243.xxx.xxx:2222/test/p1.git
* [new tag] qa_1472930540 -> qa_1472930540
То в логах полинга мы видим появление нового тега, но при этом сама сборка не активируется
Seen branch in repository origin/tags/qa_1472930009
Seen branch in repository origin/tags/qa_1472930540
Seen 41 remote branches
Done. Took 0.37 sec
No changes
Если же я добавляю новый комит и тегирую его
$ UT=$(date '+%s'); echo ${UT} > 1 && git add . && git commit -m "${UT}" && git push -u origin api
[api 8f80708] 1472931220
1 file changed, 1 insertion(+), 1 deletion(-)
Counting objects: 3, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 268 bytes | 0 bytes/s, done.
Total 3 (delta 1), reused 0 (delta 0)
To ssh://git@193.243.xxx.xxx:2222/test/p1.git
75c42ce..8f80708 api -> api
Branch api set up to track remote branch api from origin.
$ git tag qa_$(date '+%s') 8f80708 && git push -u origin --tags
Total 0 (delta 0), reused 0 (delta 0)
To ssh://git@193.243.xxx.xxx:2222/test/p1.git
* [new tag] qa_1472931234 -> qa_1472931234
То все отрабатывает.
Seen branch in repository origin/tags/qa_1472930009
Seen branch in repository origin/tags/qa_1472930540
Seen branch in repository origin/tags/qa_1472931137
Seen branch in repository origin/tags/qa_1472931234
Seen 43 remote branches
> git log --full-history --no-abbrev --format=raw -M -m 75c42ce06cbbff83e1640e4b7b28543ca6793167..8f807082e7c7dc3c33ea46dc6146b2bc5d3be3a8 # timeout=10
Done. Took 0.68 sec
Changes found
Но мне надо иметь возможность собирать любой коммит, а не только head.
Мб такое поведение как то связано с тем, что после того, как Jenkins делает обновление кода в WORKSPACE, то мы получаем т.н. detached HEAD ?