LINUX.ORG.RU

Jenkins, бессердечная скотина, не достает последнюю ревизию

 , ,


0

2

Есть у меня несколько проектов, дженкинс для сборки rpm, запуска тестов и всяких других вещей. И он меня достал уже, кушать не могу.

Что происходит: шедуленные джобы, например CI в час ночи - работают как надо, скачивают код из меркуриала, запускают, тестят - все ок. Но если эти же джобы дернуть руками (как и остальные сосущие код из меркуриала) - вытаскивают не последнюю ревизию, а последнюю минус один. При чем, если запустить джобу, сразу же остановить (в логе дженкинса еще ничего про hg update нет) и запустить еще раз - вытаскивают последнюю. Что еще более забавно: если скормить ему ветку, из которой он никогда не забирал код - вытащит предыдущую ревизию, в смысле последний коммит перед отрезанием ветки, которую скормили дженкинсу.

Чо происходит блджад?

★★★☆

Последнее исправление: vostrik (всего исправлений: 1)

inb4: ошибок или чего-то неадекватного в логах нет, джоба обв настроена на доставание последней ревизии из ветки, переданной параметром запуска джобы

vostrik ★★★☆
() автор топика
Последнее исправление: vostrik (всего исправлений: 1)
Ответ на: комментарий от vostrik

Разработчики Retroshare там. А сабж исчез я вижу, но вижу его сертифицированный identity, однако я его не сообщу из уважения.

ados ★★★★★
()

Обновляешь дженкинс, обновляешь плагин, даунгрейдишь плагин, патчишь плагин, убираешь плагин, делаешь вместо него баш-скрипт, выкидываешь дженкинс, переходишь на Buildbot.

alpha ★★★★★
()
Ответ на: комментарий от alpha

все бы ок, но дженкинс не то чтобы совсем мой - там -десят разных команд, тч чтобы сделать какие-то изменения - нужно точно знать какие. вариант «развернуть весь этот бардак локально и ловить багу» рассматривается, но только в качестве крайней меры

vostrik ★★★☆
() автор топика
Ответ на: комментарий от alpha

только в варианте «плагин обосрался вот тут, вот тут и еще вот тут и наша толпа разработчиков не умеет его починить, вон, на тикет в жире посмотри, полгода висит». вариант «помогите выловить багу в дженкинсе|меркуриале и накидайте инфы у кого такое было» с последующим патчем приветствуется куда больше

vostrik ★★★☆
() автор топика
Ответ на: комментарий от vostrik

Ну тогда как минимум версию дженкинса, версию плагина, и кусок console log стоит привести

Создать временную таску, которая будет из какого-нибудь открытого репа чекаут делать, и в качестве build step печатать hg status или что-то там, и на ней воспроизвести.

alpha ★★★★★
()
Ответ на: комментарий от alpha

переходишь на Buildbot.

Оно того стоит? Я никогда не ставил дженкинс (по слухам какое-то говнище, по юзабили у меня схожие чувства были, но то было очень давно), но билдбот напоминает мне набор пионер-скриптов на питоне. Но я его не внедрил ещё, так, одним глазом посмотрел сырцы и хау-тушки.

true_admin ★★★★★
()
Ответ на: комментарий от true_admin

Если тебе ci нужен для трех скриптов - то можно дженкинс. Накликать две джобы с одним баш-скриптом и ок.

Если проектов несколько, если у них есть ветки, или сборки под разные платформы, если есть хитрые сценарии интеграции и версионирования, то buildbot лучше. Больше времени потратишь поначалу, но окупится потом на управлении, генерации сценариев, отладке и всем таком прочем.

Потому что любое управление дженкинсом приходит в итоге к написанию питон-оберток вокруг его api, и уж если все равно писать, то лучше писать на том, что было задумано расширяемым, и соответственно организовано и документировано.

И у buildbot замечательные доки, которые сами по себе являются учебником по организации CI. По сравнению с ними доки дженкинса - это уровень офисной скрепки.

alpha ★★★★★
()
Ответ на: комментарий от alpha

P.S. у меня сейчас 12 дженкисов

Но мы ими не управляем через web-интерфейс, а используем jenkins-job-builder: python-обертку для создания xml-конфигов из yaml-файлов.

И сейчас ещё пишем jenkins configuration manager чтобы и плагины и всякие глобальные настройки делать из yaml-ов тоже. Потому что дженкинс сам этого не умеет.

И вот лучше бы мы сразу использовали buildbot...

alpha ★★★★★
()
Ответ на: комментарий от alpha

Понял спасибо. Что-ж, питон мне гораздо ближе. Я хоть смогу посмотреть в сырцах если что не так.

true_admin ★★★★★
()
Ответ на: комментарий от alpha

версию дженкинса, версию плагина

да как нех, утром

кусок console log

ну я, каэшн могу попросить, но учитывая что на этом мастере овер 666 джоб - чем это тебе поможет?

Создать временную таску, которая будет из какого-нибудь открытого репа чекаут делать, и в качестве build step печатать hg status или что-то там, и на ней воспроизвести.

косорукодебажить я тоже умею, нафиг мне этот цирк в теме, где я хотел бы найти людей, которые на те же грабли натыкались?

vostrik ★★★☆
() автор топика

по многочисленным просьбам:

Jenkins ver. 1.609.3, Mercurial plugin 1.52

vostrik ★★★☆
() автор топика

судя по отсутсвию активности я один такой везучий? я к тому, что если у кого-то такая же грабля - есть смысл подебажить и починить дженкинс или плагин, если нет - посмотрю в первую очередь на наш меркуриал, мало ли что там с метками и ветками наворотили

vostrik ★★★☆
() автор топика
Ответ на: комментарий от vostrik

в гит (!) плагине женскинса был крыжик - скачивать сорцы с нуля (очищая рабочую папку), а не обновлять, там это решало подобную проблему, есть ли это для hg - не знаю

Deleted
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.