2014-10-17 5 views
1

У меня возникла странная проблема с чрезвычайно медленной загрузкой файла на моем slave-сервере. Например, загрузка файлов размером 60 МБ занимает почти 2 минуты, тогда как один и тот же почтовый индекс в той же сети занимает всего несколько секунд.Buildbot master.cfg условно в зависимости от свойства

Чтобы обойти это, я подумал о том, чтобы использовать старый добрый scp для загрузки файлов под Windows, но мне это не удалось, поскольку я не могу сделать условный выбор того, какую функцию использовать для загрузки файла учитывая свойство, которое я ранее задал.

Я пытаюсь сделать так, как этот

if(Interpolate("%(prop:osName)s")=='windows'): 
    uploadWindows(args) 
else: 
    upload_file(args) 

Но я не имею никакого успеха, делая это, даже если свойство OSNAME установлено правильно.

+0

Как этот код подходит в buildstep? Вы можете показать контекст? –

ответ

1

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

Я не уверен, что это ваша проблема или нет, но мне не удалось заставить Interpolate работать вообще. Я закончил использование функции рендеринга, чтобы убедиться, что я могу получить доступ к данным Property.

Проверьте документы и пример здесь: http://docs.buildbot.net/latest/manual/cfg-properties.html#renderer (обратите внимание на «реквизит» переменный, которая дает доступ к собственности)

5

Personnaly я использую doStepIf для моих conditionnals шагов. Вам просто нужно добавить аргумент doStepIf = yourfunctionName

def yourfunctionName(step): 
    if step.getProperty("buildslave") == "windows": 
     return True 
    return false 

f.addStep(ShellCommand(command=WithProperties("scp"), 
         description=[""], 
         descriptionDone=["do my scp"], 
         doStepIf=yourfunctionName)) 

В вашем случае вам потребуется 2 шага для того же действия.

Вы должны посмотреть здесь: http://docs.buildbot.net/latest/manual/cfg-buildsteps.html#buildstep-common-parameters

Надеется, что это может помочь

Смежные вопросы