Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

133 строки
3.0KB

  1. {{ansible_managed|comment}}
  2. from buildbot.plugins import *
  3. c = BuildmasterConfig = {}
  4. c['workers'] = []
  5. c['change_source'] = []
  6. c['schedulers'] = []
  7. c['builders'] = []
  8. c['services'] = []
  9. c['protocols'] = {
  10. 'pb': {
  11. 'port': "tcp:9989:interface=127.0.0.1"
  12. }
  13. }
  14. c['title'] = "buildbot title"
  15. c['titleURL'] = "https://github.com/covid-videoplattform"
  16. c['buildbotURL'] = "https://{{buildbot_server_name}}/"
  17. c['www'] = dict(
  18. port="unix:address=/run/buildbot/{{buildbot_server_name}}.www.sock",
  19. plugins = dict(
  20. waterfall_view={},
  21. console_view={},
  22. grid_view={},
  23. badges={"left_pad": 0, "right_pad": 0, "border_radius": 3, "style": "badgeio"},
  24. ),
  25. change_hook_dialects={
  26. 'github': {}
  27. },
  28. )
  29. c['db'] = {
  30. 'db_url' : "{{buildbot_database_url}}",
  31. }
  32. # Local Worker
  33. {% if buildbot_local_worker %}
  34. c['workers'].append(worker.LocalWorker("local-worker"))
  35. {% endif %}
  36. # Ansible Defined Workers
  37. {% for worker_name in buildbot_workers.keys() %}
  38. {% set worker = buildbot_workers[worker_name] %}
  39. c['workers'].append(worker.Worker('{{worker_name}}', '{{worker.password|default(ansible_local.buildbot.workers[worker_name].password)}}'))
  40. {% endfor %}
  41. # Hello World Example
  42. {% if buildbot_hello_world_example %}
  43. factory = util.BuildFactory()
  44. factory.addStep(steps.Git(repourl='git://github.com/buildbot/hello-world.git', mode='incremental'))
  45. factory.addStep(steps.ShellCommand(command=["trial", "hello"], env={"PYTHONPATH": "."}))
  46. c['builders'].append(
  47. util.BuilderConfig(
  48. name="hello-world",
  49. workernames=["local-worker"],
  50. factory=factory
  51. )
  52. )
  53. c['schedulers'].append(schedulers.ForceScheduler(
  54. name="force-hello-world",
  55. builderNames=["hello-world"],
  56. ))
  57. {% endif %}
  58. # Ansible Defined Builders
  59. {% for builder_name in buildbot_builders.keys() %}
  60. {% set builder = buildbot_builders[builder_name] %}
  61. factory = util.BuildFactory()
  62. {% for repo in builder.repos %}
  63. {% if repo.type | default('github') == 'github' %}
  64. factory.addStep(steps.GitHub(
  65. name='{{repo.name}}',
  66. repourl='{{repo.repourl}}',
  67. mode='incremental',
  68. workdir='{{repo.workdir}}',
  69. alwaysUseLatest=True,
  70. ))
  71. {% elif repo.type == 'gitea' %}
  72. factory.addStep(steps.Gitea(
  73. name='{{repo.name}}',
  74. repourl='{{repo.repourl}}',
  75. mode='incremental',
  76. workdir='{{repo.workdir}}',
  77. branch="master",
  78. progress=True,
  79. logEnviron=False,
  80. ))
  81. {% endif %}
  82. {% endfor %}
  83. {% for cmd in builder.shell_commands %}
  84. factory.addStep(steps.ShellCommand(
  85. name='{{cmd.name}}',
  86. command='{{cmd.command}}',
  87. workdir='{{cmd.workdir}}',
  88. ))
  89. {% endfor %}
  90. c['builders'].append(
  91. util.BuilderConfig(
  92. name="{{builder_name}}",
  93. workernames={{builder.worker_names|to_json}},
  94. factory=factory
  95. )
  96. )
  97. c['schedulers'].append(schedulers.SingleBranchScheduler(
  98. name="{{builder_name}}",
  99. change_filter=util.ChangeFilter(branch='master'),
  100. treeStableTimer=5,
  101. builderNames=['{{builder_name}}'],
  102. ))
  103. {% if builder.force_scheduler | default(false) %}
  104. c['schedulers'].append(schedulers.ForceScheduler(
  105. name="force-{{builder_name}}",
  106. builderNames=["{{builder_name}}"],
  107. ))
  108. {% endif %}
  109. {% endfor %}