Compare commits
2 commits
77ae214d24
...
0f45b38432
Author | SHA1 | Date | |
---|---|---|---|
|
0f45b38432 | ||
|
5cc9d7b0e9 |
68 changed files with 90 additions and 53 deletions
|
@ -1,4 +0,0 @@
|
|||
SERVICE_USER_POSTGRESQL=buildbot
|
||||
SERVICE_PASSWORD_POSTGRESQL=changeme!
|
||||
GITEA_URL=https://projects.blender.org
|
||||
BUILDBOT_WEB_URL=http://localhost:8010/
|
28
.gitignore
vendored
28
.gitignore
vendored
|
@ -1,3 +1,29 @@
|
|||
# Hidden files
|
||||
.venv
|
||||
.env.staging
|
||||
.env.production
|
||||
.env.staging
|
||||
|
||||
# Python
|
||||
__pycache__
|
||||
*.py[cod]
|
||||
Pipfile
|
||||
Pipfile.lock
|
||||
|
||||
# Editors
|
||||
*~
|
||||
*.swp
|
||||
*.swo
|
||||
*#
|
||||
TAGS
|
||||
tags
|
||||
|
||||
# Thumbnails
|
||||
Thumbs.db
|
||||
ehthumbs.db
|
||||
Desktop.ini
|
||||
.DS_Store
|
||||
|
||||
# Local patches and logs
|
||||
*.patch
|
||||
*.diff
|
||||
*.log
|
|
@ -27,5 +27,5 @@ def get_worker_password(worker_name: str) -> str:
|
|||
return "localhost"
|
||||
|
||||
|
||||
def get_worker_names(ENVIRONMENT: str):
|
||||
def get_worker_names(environment: str):
|
||||
return _worker_names
|
|
@ -31,7 +31,7 @@ importlib.reload(conf.worker)
|
|||
importlib.reload(gitea.blender)
|
||||
importlib.reload(pipeline)
|
||||
|
||||
ENVIRONMENT = os.environ.get("ENVIRONMENT", default="LOCAL")
|
||||
environment = os.environ.get("BUILDBOT_environment", default="LOCAL")
|
||||
|
||||
|
||||
def setup() -> Dict[str, Any]:
|
||||
|
@ -43,7 +43,7 @@ def setup() -> Dict[str, Any]:
|
|||
|
||||
# Workers
|
||||
print("*** Creating platform workers")
|
||||
platform_worker_names = conf.machines.fetch_platform_worker_names(ENVIRONMENT)
|
||||
platform_worker_names = conf.machines.fetch_platform_worker_names(environment)
|
||||
workers: List[buildbot.plugins.worker.Worker] = []
|
||||
configured_worker_names = set()
|
||||
for worker_names in platform_worker_names.values():
|
||||
|
@ -55,7 +55,7 @@ def setup() -> Dict[str, Any]:
|
|||
workers += [
|
||||
buildbot.plugins.worker.Worker(
|
||||
worker_name,
|
||||
conf.machines.get_worker_password(ENVIRONMENT, worker_name),
|
||||
conf.machines.get_worker_password(environment, worker_name),
|
||||
max_builds=1,
|
||||
keepalive_interval=3600,
|
||||
)
|
||||
|
@ -69,7 +69,7 @@ def setup() -> Dict[str, Any]:
|
|||
c["workers"] = workers
|
||||
|
||||
# Builders and Schedulers
|
||||
builders, schedulers = pipeline.populate(ENVIRONMENT)
|
||||
builders, schedulers = pipeline.populate(environment)
|
||||
c["builders"] = builders
|
||||
c["schedulers"] = schedulers
|
||||
|
||||
|
@ -79,7 +79,7 @@ def setup() -> Dict[str, Any]:
|
|||
# status of each build will be pushed to these targets. buildbot/reporters/*.py
|
||||
# has a variety to choose from, like IRC bots.
|
||||
|
||||
gitea_status_service = gitea.blender.setup_service(ENVIRONMENT)
|
||||
gitea_status_service = gitea.blender.setup_service(environment)
|
||||
if gitea_status_service:
|
||||
c["services"] = [gitea_status_service]
|
||||
else:
|
||||
|
@ -90,7 +90,7 @@ def setup() -> Dict[str, Any]:
|
|||
# the 'title' string will appear at the top of this buildbot installation's
|
||||
# home pages (linked to the 'titleURL').
|
||||
|
||||
c["title"] = f"Blender Buildbot - {ENVIRONMENT}"
|
||||
c["title"] = f"Blender Buildbot - {environment}"
|
||||
c["titleURL"] = "https://projects.blender.org"
|
||||
|
||||
# the 'buildbotURL' string should point to the location where the buildbot's
|
||||
|
@ -113,10 +113,10 @@ def setup() -> Dict[str, Any]:
|
|||
c["buildbotNetUsageData"] = None
|
||||
|
||||
# Authentication
|
||||
c["www"]["auth"] = conf.auth.fetch_authentication(ENVIRONMENT)
|
||||
c["www"]["auth"] = conf.auth.fetch_authentication(environment)
|
||||
|
||||
# Authorization
|
||||
c["www"]["authz"] = conf.auth.fetch_authorization(ENVIRONMENT)
|
||||
c["www"]["authz"] = conf.auth.fetch_authorization(environment)
|
||||
|
||||
# Disable UI - does not work
|
||||
c["www"]["plugins"] = {
|
15
buildbot/master.cfg
Normal file
15
buildbot/master.cfg
Normal file
|
@ -0,0 +1,15 @@
|
|||
# -*- python -*-
|
||||
# ex: set filetype=python:
|
||||
import importlib
|
||||
import os
|
||||
import sys
|
||||
|
||||
# Add the "config" directory to the Python path
|
||||
sys.path.insert(0, os.path.join(os.path.dirname(__file__), "config"))
|
||||
|
||||
# Import the setup module from the "config" directory
|
||||
import setup
|
||||
importlib.reload(setup)
|
||||
|
||||
# Use the setup module as intended
|
||||
BuildmasterConfig = setup.setup()
|
|
@ -1,8 +0,0 @@
|
|||
# -*- python -*-
|
||||
# ex: set filetype=python:
|
||||
import importlib
|
||||
import os
|
||||
import sys
|
||||
import setup
|
||||
importlib.reload(setup)
|
||||
BuildmasterConfig = setup.setup()
|
|
@ -1,24 +0,0 @@
|
|||
services:
|
||||
buildbot-master:
|
||||
env_file: .env.local
|
||||
volumes:
|
||||
- ./config:/buildbot/config
|
||||
|
||||
buildbot-worker:
|
||||
image: 'buildbot/buildbot-worker:${BUILDBOT_IMAGE_TAG:-v4.1.0}'
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
- 'BUILDMASTER=${BUILDMASTER:-buildbot-master}'
|
||||
- 'BUILDMASTER_PORT=${BUILDBOT_WORKER_PORT:-9989}'
|
||||
- 'WORKERNAME=${WORKERNAME:-example-worker}'
|
||||
- 'WORKERPASS=${WORKERPASS:-pass}'
|
||||
- 'WORKER_ENVIRONMENT_BLACKLIST=${WORKER_ENVIRONMENT_BLACKLIST:-DOCKER_BUILDBOT* BUILDBOT_ENV_* BUILDBOT_1* WORKER_ENVIRONMENT_BLACKLIST}'
|
||||
healthcheck:
|
||||
test:
|
||||
- CMD
|
||||
- curl
|
||||
- '-f'
|
||||
- 'http://$${BUILDMASTER}:$${BUILDMASTER_PORT}'
|
||||
interval: 5s
|
||||
timeout: 20s
|
||||
retries: 10
|
|
@ -1,16 +1,18 @@
|
|||
services:
|
||||
buildbot-master:
|
||||
image: 'buildbot/buildbot-master:${BUILDBOT_IMAGE_TAG:-v4.1.0}'
|
||||
hostname: buildbot-master
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- 8010:8010
|
||||
environment:
|
||||
- 'HOSTNAME=${MASTER_HOSTNAME:-buildbot-master-1}'
|
||||
- 'BUILDBOT_CONFIG_DIR=${BUILDBOT_CONFIG_DIR:-config}'
|
||||
- 'BUILDBOT_CONFIG_URL=${BUILDBOT_CONFIG_URL:-https://git.braak.pro/api/packages/bartvdbraak/generic/builder.braak.pro/main/config.tar.gz}'
|
||||
- 'BUILDBOT_ENVIRONMENT=${BUILDBOT_ENVIRONMENT:-LOCAL}'
|
||||
- 'BUILDBOT_WORKER_PORT=${BUILDBOT_WORKER_PORT:-9989}'
|
||||
- 'BUILDBOT_WEB_URL=${BUILDBOT_WEB_URL:-http://localhost:8010/}'
|
||||
- 'BUILDBOT_WEB_PORT=${BUILDBOT_WEB_PORT:-tcp:port=8010}'
|
||||
- 'POSTGRES_PASSWORD=${SERVICE_PASSWORD_POSTGRESQL}'
|
||||
- 'POSTGRES_USER=${SERVICE_USER_POSTGRESQL}'
|
||||
- 'POSTGRES_PASSWORD=${POSTGRES_PASSWORD:-changeme123}'
|
||||
- 'POSTGRES_USER=${POSTGRES_USER:-buildbot}'
|
||||
- 'POSTGRES_DB=${POSTGRES_DB:-buildbot}'
|
||||
- 'BUILDBOT_DB_URL=postgresql+psycopg2://{POSTGRES_USER}:{POSTGRES_PASSWORD}@postgresql/{POSTGRES_DB}'
|
||||
healthcheck:
|
||||
|
@ -25,6 +27,11 @@ services:
|
|||
depends_on:
|
||||
postgresql:
|
||||
condition: service_healthy
|
||||
volumes:
|
||||
- ./buildbot/config:/buildbot/config
|
||||
- ./buildbot/master.cfg:/buildbot/master.cfg
|
||||
networks:
|
||||
buildbot: null
|
||||
postgresql:
|
||||
image: 'postgres:${POSTGRES_IMAGE_TAG:-16-alpine}'
|
||||
restart: unless-stopped
|
||||
|
@ -38,8 +45,33 @@ services:
|
|||
volumes:
|
||||
- 'buildbot-db:/var/lib/postgresql/data'
|
||||
environment:
|
||||
- 'POSTGRES_PASSWORD=${SERVICE_PASSWORD_POSTGRESQL}'
|
||||
- 'POSTGRES_USER=${SERVICE_USER_POSTGRESQL}'
|
||||
- 'POSTGRES_PASSWORD=${POSTGRES_PASSWORD:-changeme123}'
|
||||
- 'POSTGRES_USER=${POSTGRES_USER:-buildbot}'
|
||||
- 'POSTGRES_DB=${POSTGRES_DB:-buildbot}'
|
||||
networks:
|
||||
buildbot: null
|
||||
buildbot-worker:
|
||||
image: 'buildbot/buildbot-worker:${BUILDBOT_IMAGE_TAG:-v4.1.0}'
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
- 'BUILDMASTER=${BUILDMASTER:-buildbot-master}'
|
||||
- 'BUILDMASTER_PORT=${BUILDBOT_WORKER_PORT:-9989}'
|
||||
- 'BUILDBOT_ENVIRONMENT=${BUILDBOT_ENVIRONMENT:-LOCAL}'
|
||||
- 'WORKERNAME=${WORKERNAME:-localhost}'
|
||||
- 'WORKERPASS=${WORKERPASS:-localhost}'
|
||||
- 'WORKER_ENVIRONMENT_BLACKLIST=${WORKER_ENVIRONMENT_BLACKLIST:-DOCKER_BUILDBOT* BUILDBOT_ENV_* BUILDBOT_1* WORKER_ENVIRONMENT_BLACKLIST}'
|
||||
healthcheck:
|
||||
test:
|
||||
- CMD
|
||||
- curl
|
||||
- '-f'
|
||||
- 'http://$${BUILDMASTER}:$${BUILDMASTER_PORT}'
|
||||
interval: 5s
|
||||
timeout: 20s
|
||||
retries: 10
|
||||
networks:
|
||||
buildbot: null
|
||||
volumes:
|
||||
buildbot-db: {}
|
||||
networks:
|
||||
buildbot: {}
|
Loading…
Reference in a new issue