Compare commits

...

2 commits

Author SHA1 Message Date
Bart van der Braak
0f45b38432 Working setup using localhost
Some checks failed
/ checks (pull_request) Failing after 16s
2024-11-20 18:20:13 +01:00
Bart van der Braak
5cc9d7b0e9 Get back to original 2024-11-20 16:13:44 +01:00
68 changed files with 90 additions and 53 deletions

View file

@ -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
View file

@ -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

View file

View file

@ -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

View file

@ -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
View 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()

View file

@ -1,8 +0,0 @@
# -*- python -*-
# ex: set filetype=python:
import importlib
import os
import sys
import setup
importlib.reload(setup)
BuildmasterConfig = setup.setup()

View file

@ -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

View file

@ -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: {}