SpecialistOff.NET / Вопросы / Статьи / Фрагменты кода / Резюме / Метки / Помощь / Файлы

Назад

Краткий справочник по buildbot


Метки: buildbot python

Проверка корректности конфигурационного файла

buildbot checkconfig master.cfg

или

buildbot checkconfig /home/USERNAME/masterdir

Перечитать конфигурационный файл

buildbot reconfig BASEDIR

Настройка подключения к БД

Примечание: формат и параметры подключения описаны здесь http://www.sqlalchemy.org/docs/dialects/

SQLite

c['db_url'] = "sqlite:///state.sqlite"

MySQL

c['db_url'] = "mysql://username:password@example.com/database_name?max_idle=300"

PostgreSQL

c['db_url'] = "postgresql://username:password@hostname/dbname"

Использование секретов

Создать каталог /home/USERNAME/secrets

Создать внутри файлы с секретными данными. Имя файла является идентификатором переменной в конфигурационном файле

####### SECRETS
c['secretsProviders'] = [secrets.SecretInAFile(dirname="/home/USERNAME/secrets")]

...

factory = util.BuildFactory()
factory.addStep(
    steps.Git(
        repourl=util.Interpolate("https://%(secret:USERNAME)s:%(secret:PASSWORD)s@gitlab.specialistoff.net/remizoffalex/devops.git"),
        mode='full',
        method='fresh',
        submodules=True
    )
)
factory.addStep(
    ShellCommand(
        ["wget", "-u", "user", "-p", util.Secret("USERNAME"), util.Interpolate("%(prop:urltofetch)s")]
    )
)

Установить на все файлы секретов права 600

chmod 600 secrets/*

Особенности

При задании параметров для ShellCommand не задавать переменный Env и не использовать символы подстановки типа ~ или ${param}

factory = util.BuildFactory()
factory.addStep(
    steps.ShellCommand(
        command=["ls", "--la", "/home/USERNAME/workdir/dir1"],
        workdir='/home/USERNAME/hobbydir'
    )
)