Как использовать режим копирования при проверке нескольких git-репозиториев в buildbot - PullRequest
2 голосов
/ 28 февраля 2012

У меня есть несколько репозиториев Git, чтобы иметь некоторые взаимозависимости между ними.Мне нужно проверить их все при полной сборке системы.
С помощью buildbot я могу использовать параметр mode='clobber' для конструктора исходного класса Git, но это приводит к тому, что каждый репозиторий проверяется каждый раз:

factory.addStep(Git(repourl='ssh://build@build/repo1', mode='clobber', workdir='build/repo1'))
factory.addStep(Git(repourl='ssh://build@build/repo2', mode='clobber', workdir='build/repo2'))
factory.addStep(Git(repourl='ssh://build@build/repo3', mode='clobber', workdir='build/repo3'))

Я хотел бы использовать mode='copy', но когда я это сделаю, источник для всех трех репозиториев будет извлечен в одном месте, например..../source/ вместо .../source/repo1 .../source/repo2 .../source/repo3

Есть ли способ указать buildbot хранить чистые копии каждого репозитория отдельно?

Заранее спасибо!

Ответы [ 2 ]

1 голос
/ 31 марта 2012

С buildbot 0.8.5 и выше, вы можете использовать новые шаги источника на стороне мастера (которые живут в buildbot.steps.source.git.Git вместо builbot.steps.source.Git), а затем Git(..., mode='full', ...) сделает извлечение плюс git clean -xfd.

Также ведется работа по правильной поддержке использования кода для нескольких источников, который будет включен в buildbot 0.8.7, когда он будет выпущен.

1 голос
/ 29 февраля 2012

Вы должны рассмотреть возможность использования родительского репо, которое будет проверено в source/ buildbot.
За исключением того, что родительское репо будет ссылаться на все остальные ваши репо как подмодули .
А когда субмодуль извлекается из родительского репо, он извлекается в своем собственном (repo1, repo2, ...) каталоге.

Вам просто нужно настроить buildbot Git-параметры , чтобы учесть подмодули.

submodules

(необязательно): при инициализации / обновлении Git-репозитория решается, следует ли buildbot учитывать подмодули git.
По умолчанию: False.

...