Changeset View
Changeset View
Standalone View
Standalone View
lilybuild/lilybuild/config.py
| Show All 20 Lines | |||||
| result_relative = 'result' | result_relative = 'result' | ||||
| result_dir = util.Interpolate('repos/%(prop:lilybuild_repo_id)s/result') | result_dir = util.Interpolate('repos/%(prop:lilybuild_repo_id)s/result') | ||||
| artifact_stage_relative = 'stage' | artifact_stage_relative = 'stage' | ||||
| artifact_stage_dir = util.Interpolate('repos/%(prop:lilybuild_repo_id)s/stage') | artifact_stage_dir = util.Interpolate('repos/%(prop:lilybuild_repo_id)s/stage') | ||||
| default_storage_dir = '/buildbot/storage' | default_storage_dir = '/buildbot/storage' | ||||
| report_phorge = 'phorge' | report_phorge = 'phorge' | ||||
| report_forgejo = 'forgejo' | report_forgejo = 'forgejo' | ||||
| default_artifact_uncompressed_limit = 200 * 1024 * 1024 | |||||
| default_artifact_compressed_limit = 200 * 1024 * 1024 | |||||
| class LilyBuildConfig: | class LilyBuildConfig: | ||||
| builder_name = 'lilybuild' | builder_name = 'lilybuild' | ||||
| builder_name_run_job = 'lilybuild-job' | builder_name_run_job = 'lilybuild-job' | ||||
| builder_name_force = 'lilybuild-force' | builder_name_force = 'lilybuild-force' | ||||
| main_builder_tag = 'lilybuild-pipeline' | main_builder_tag = 'lilybuild-pipeline' | ||||
| triggerable_scheduler_name = 'lilybuild-triggerable' | triggerable_scheduler_name = 'lilybuild-triggerable' | ||||
| force_triggerable_scheduler_name = 'lilybuild-force-triggerable' | force_triggerable_scheduler_name = 'lilybuild-force-triggerable' | ||||
| def __init__(self, c, workernames, reports=None, phorge_base_url=None, phorge_token=None, ssh_priv_key=None, ssh_known_hosts=None, storage_dir=default_storage_dir, artifact_link_base=None): | def __init__(self, c, workernames, reports=None, phorge_base_url=None, phorge_token=None, ssh_priv_key=None, ssh_known_hosts=None, storage_dir=default_storage_dir, artifact_link_base=None, artifact_uncompressed_limit=None, artifact_compressed_limit=None): | ||||
| self.c = c | self.c = c | ||||
| self.poll_interval = 300 | self.poll_interval = 300 | ||||
| self.workernames = workernames | self.workernames = workernames | ||||
| if reports is None: | if reports is None: | ||||
| reports = [report_phorge, report_forgejo] | reports = [report_phorge, report_forgejo] | ||||
| self.reports = reports | self.reports = reports | ||||
| self.repos = {} | self.repos = {} | ||||
| self.repo_id_by_url = {} | self.repo_id_by_url = {} | ||||
| self.branch_skip_re = '^phabricator/' | self.branch_skip_re = '^phabricator/' | ||||
| self.phorge_base_url = normalize_base_url(phorge_base_url) | self.phorge_base_url = normalize_base_url(phorge_base_url) | ||||
| self.phorge_token = phorge_token | self.phorge_token = phorge_token | ||||
| self.ssh_priv_key = ssh_priv_key | self.ssh_priv_key = ssh_priv_key | ||||
| self.ssh_known_hosts = ssh_known_hosts | self.ssh_known_hosts = ssh_known_hosts | ||||
| self.storage_dir = storage_dir | self.storage_dir = storage_dir | ||||
| self.artifact_link_base = normalize_base_url(artifact_link_base) | self.artifact_link_base = normalize_base_url(artifact_link_base) | ||||
| self.artifact_uncompressed_limit = artifact_uncompressed_limit or default_artifact_uncompressed_limit | |||||
| self.artifact_compressed_limit = artifact_compressed_limit or default_artifact_compressed_limit | |||||
| def configure_factory_and_builder(self): | def configure_factory_and_builder(self): | ||||
| self.add_lilybuild_builder() | self.add_lilybuild_builder() | ||||
| self.add_lilybuild_job_builder() | self.add_lilybuild_job_builder() | ||||
| def create_source_step(self): | def create_source_step(self): | ||||
| return CheckoutSourceFromPhorge( | return CheckoutSourceFromPhorge( | ||||
| lbc=self, | lbc=self, | ||||
| ▲ Show 20 Lines • Show All 82 Lines • ▼ Show 20 Lines | def add_repo( | ||||
| repo_id, | repo_id, | ||||
| repo_url, | repo_url, | ||||
| do_poll=False, | do_poll=False, | ||||
| alternative_urls=None, | alternative_urls=None, | ||||
| phorge_base_url=None, | phorge_base_url=None, | ||||
| phorge_token=None, | phorge_token=None, | ||||
| # Function(build -> dict(str -> str | renderable<str>)) | # Function(build -> dict(str -> str | renderable<str>)) | ||||
| variables_getter=None, | variables_getter=None, | ||||
| artifact_compressed_limit=None, | |||||
| artifact_uncompressed_limit=None, | |||||
| ): | ): | ||||
| if not alternative_urls: | if not alternative_urls: | ||||
| alternative_urls = [] | alternative_urls = [] | ||||
| self.repos[repo_id] = { | self.repos[repo_id] = { | ||||
| 'repo_id': repo_id, | 'repo_id': repo_id, | ||||
| 'repo_url': repo_url, | 'repo_url': repo_url, | ||||
| 'do_poll': do_poll, | 'do_poll': do_poll, | ||||
| 'alternative_urls': alternative_urls, | 'alternative_urls': alternative_urls, | ||||
| 'phorge_base_url': normalize_base_url(phorge_base_url) or self.phorge_base_url, | 'phorge_base_url': normalize_base_url(phorge_base_url) or self.phorge_base_url, | ||||
| 'phorge_token': phorge_token or self.phorge_token, | 'phorge_token': phorge_token or self.phorge_token, | ||||
| 'variables_getter': variables_getter or (lambda _build: {}), | 'variables_getter': variables_getter or (lambda _build: {}), | ||||
| 'artifact_compressed_limit': artifact_compressed_limit or self.artifact_compressed_limit, | |||||
| 'artifact_uncompressed_limit': artifact_uncompressed_limit or self.artifact_uncompressed_limit, | |||||
| } | } | ||||
| self.record_url(repo_id, repo_url) | self.record_url(repo_id, repo_url) | ||||
| for u in alternative_urls: | for u in alternative_urls: | ||||
| self.record_url(repo_id, u) | self.record_url(repo_id, u) | ||||
| def get_builder_name_for_repo(self, repo_def): | def get_builder_name_for_repo(self, repo_def): | ||||
| main_repo_url = repo_def['repo_url'] | main_repo_url = repo_def['repo_url'] | ||||
| return f'lilybuild - {main_repo_url}' | return f'lilybuild - {main_repo_url}' | ||||
| ▲ Show 20 Lines • Show All 87 Lines • Show Last 20 Lines | |||||