Почему Hudson синхронизируется с последним или последним списком изменений с помощью плагина Perforce? - PullRequest
1 голос
/ 23 марта 2011

Мы используем Hudson (1.398) и плагин Perforce (1.1.14) для непрерывной интеграции.Сборка инициируется каждый раз, когда происходит повторная проверка с триггером Perforce, который вызывает:

  wget "http://username:password@hudsonserver:8080/job/hudson_projname_test/buildWithParameters?token=SECRETTOKEN&CHANGENUM=315311&SUBMITTER=username"

Косоль Гудзона выглядит следующим образом:

Started by remote host 169.169.69.69
Using master perforce client: projname_a0_username_hudson
[hudson] $ /eda/perforce_2010.1/x86_64/bin/p4 workspace -o projname_a0_username_hudson
Last sync'd change: 315267
[hudson] $ /eda/perforce_2010.1/x86_64/bin/p4 counter change
[hudson] $ /eda/perforce_2010.1/x86_64/bin/p4 -s changes //projname_a0_username_hudson/...@315268,@315311
Sync'ing workspace to changelist 315267.
[hudson] $ /eda/perforce_2010.1/x86_64/bin/p4 sync //projname_a0_username_hudson/...@315267
Sync complete, took 3956 ms
[hudson] $ /bin/sh -xe /tmp/hudson30156.sh
+ p4 sync @315311
+ runsim

Проблема в том, что Хадсон, похоже, небыть синхронизированным с последним списком изменений, но вместо этого с рядом с последним списком изменений, поэтому я должен "вручную" синхронизировать список изменений, который был передан через параметр.Но b / c этого Hudson использует неправильный список изменений, когда уведомляет отправителя о том, что он, возможно, нарушил сборку.

Кто-нибудь еще заметил такое поведение с Hudson / Perforce, и если да, то как вы это исправили?

1 Ответ

4 голосов
/ 23 марта 2011

Триггеры проверки выполняются до того, как изменение будет фактически зафиксировано (поэтому триггер может заблокировать его при необходимости). Так что, вероятно, происходит то, что сборка запускает и получает последние доступные изменения, которые не включают в себя то, которое в данный момент отправляется.

Вместо этого вы, возможно, захотите написать скрипт триггера регистрации, который перейдет в фоновый режим и подождет 10-20 секунд или около того, прежде чем вызывать wget.

...