commit: 8e0586a1bd9bf20f83ff21eff6349d263b621cd3 Author: Magnus Granberg <zorry <AT> gentoo <DOT> org> AuthorDate: Wed Oct 12 03:14:12 2022 +0000 Commit: Magnus Granberg <zorry <AT> gentoo <DOT> org> CommitDate: Wed Oct 12 03:14:12 2022 +0000 URL: https://gitweb.gentoo.org/proj/tinderbox-cluster.git/commit/?id=8e0586a1
Add config option for worker basedir Signed-off-by: Magnus Granberg <zorry <AT> gentoo.org> buildbot_gentoo_ci/config/config.py | 3 +++ buildbot_gentoo_ci/db/builds.py | 2 +- buildbot_gentoo_ci/steps/builders.py | 4 ++-- buildbot_gentoo_ci/steps/logs.py | 2 +- buildbot_gentoo_ci/steps/package.py | 11 +++++++++-- buildbot_gentoo_ci/steps/repos.py | 2 +- buildbot_gentoo_ci/steps/version.py | 11 ++++++++--- gentooci.cfg | 9 ++++++++- 8 files changed, 33 insertions(+), 11 deletions(-) diff --git a/buildbot_gentoo_ci/config/config.py b/buildbot_gentoo_ci/config/config.py index faf2058..e2f33be 100644 --- a/buildbot_gentoo_ci/config/config.py +++ b/buildbot_gentoo_ci/config/config.py @@ -92,6 +92,7 @@ class GentooCiConfig(util.ComparableMixin): _known_config_keys = set([ "db_url", "project", + "worker_config", "repository_basedir" ]) @@ -149,3 +150,5 @@ class GentooCiConfig(util.ComparableMixin): self.project['repository_basedir'] = config_dict['repository_basedir'] else: self.project['repository_basedir'] = DEFAULT_REPOSITORY_BASEDIR + if 'worker_config' in config_dict: + self.project['worker_config'] = config_dict['worker_config'] diff --git a/buildbot_gentoo_ci/db/builds.py b/buildbot_gentoo_ci/db/builds.py index 57302ef..1cf2439 100644 --- a/buildbot_gentoo_ci/db/builds.py +++ b/buildbot_gentoo_ci/db/builds.py @@ -54,7 +54,7 @@ class BuildsConnectorComponent(base.DBConnectorComponent): return self.db.pool.do(thd) @defer.inlineCallbacks - def setStausBuilds(self, id, status): + def setStatusBuilds(self, id, status): updated_at = int(self.master.reactor.seconds()) def thd(conn, no_recurse=False): diff --git a/buildbot_gentoo_ci/steps/builders.py b/buildbot_gentoo_ci/steps/builders.py index aed9edb..1746122 100644 --- a/buildbot_gentoo_ci/steps/builders.py +++ b/buildbot_gentoo_ci/steps/builders.py @@ -316,7 +316,7 @@ class SetupPropertys(BuildStep): def run(self): self.gentooci = self.master.namedServices['services'].namedServices['gentooci'] print('build this %s' % self.getProperty("cpv")) - self.setProperty('portage_repos_path', self.gentooci.config.project['project']['worker_portage_repos_path'], 'portage_repos_path') + self.setProperty('portage_repos_path', self.gentooci.config.project['worker_config']['portage_repos_path'], 'portage_repos_path') self.setProperty('rootworkdir', False, 'rootworkdir') projectrepository_data = self.getProperty('projectrepository_data') print(projectrepository_data) @@ -333,7 +333,7 @@ class SetupPropertys(BuildStep): project_build_data = self.getProperty('project_build_data') project_build_data['status'] = 'in-progress' project_build_data['buildbot_build_id'] = self.getProperty("buildnumber") - yield self.gentooci.db.builds.setStausBuilds( + yield self.gentooci.db.builds.setStatusBuilds( project_build_data['id'], project_build_data['status']) yield self.gentooci.db.builds.setBuildbotBuildIdBuilds( diff --git a/buildbot_gentoo_ci/steps/logs.py b/buildbot_gentoo_ci/steps/logs.py index becf7d1..67845e7 100644 --- a/buildbot_gentoo_ci/steps/logs.py +++ b/buildbot_gentoo_ci/steps/logs.py @@ -596,7 +596,7 @@ class setBuildStatus(BuildStep): def run(self): self.gentooci = self.master.namedServices['services'].namedServices['gentooci'] project_build_data = self.getProperty('project_build_data') - yield self.gentooci.db.builds.setStausBuilds( + yield self.gentooci.db.builds.setStatusBuilds( project_build_data['id'], self.getProperty('status') ) diff --git a/buildbot_gentoo_ci/steps/package.py b/buildbot_gentoo_ci/steps/package.py index 81b400d..9fc59e8 100644 --- a/buildbot_gentoo_ci/steps/package.py +++ b/buildbot_gentoo_ci/steps/package.py @@ -29,8 +29,15 @@ class SetupPropertys(BuildStep): #@defer.inlineCallbacks def run(self): - self.setProperty('portage_repos_path', '/repositorys', 'portage_repos_path') - self.setProperty('rootworkdir', '/var/lib/buildbot_worker', 'rootworkdir') + self.gentooci = self.master.namedServices['services'].namedServices['gentooci'] + if self.gentooci.config.project['worker_config']['basedir'] is None: + worker_basedir = self.getProperty('builddir').split('/builds')[0] + else: + worker_basedir = self.gentooci.config.project['worker_config']['basedir'] + self.setProperty('worker_basedir', worker_basedir, 'worker_basedir') + self.setProperty('rootworkdir', False, 'rootworkdir') + portage_repos_path = os.path.join(worker_basedir, self.gentooci.config.project['worker_config']['repository_basedir']) + self.setProperty('portage_repos_path', portage_repos_path, 'portage_repos_path') return SUCCESS class AddPackage(BuildStep): diff --git a/buildbot_gentoo_ci/steps/repos.py b/buildbot_gentoo_ci/steps/repos.py index 5b4b623..04b25d7 100644 --- a/buildbot_gentoo_ci/steps/repos.py +++ b/buildbot_gentoo_ci/steps/repos.py @@ -193,7 +193,7 @@ class UpdateRepos(BuildStep): print(repository_data) if repository_data['auto'] and repository_data['enabled']: if self.getProperty('rootworkdir'): - repository_path = os.path.join(self.getProperty('rootworkdir'), portage_repos_path[1:], repository_data['name']) + repository_path = os.path.join(self.getProperty('rootworkdir'), portage_repos_path, repository_data['name']) else: repository_path = os.path.join(portage_repos_path, repository_data['name'], '') if repository_data['branch']: diff --git a/buildbot_gentoo_ci/steps/version.py b/buildbot_gentoo_ci/steps/version.py index 26cf9fc..14d1d97 100644 --- a/buildbot_gentoo_ci/steps/version.py +++ b/buildbot_gentoo_ci/steps/version.py @@ -317,7 +317,7 @@ class CheckPath(BuildStep): @defer.inlineCallbacks def run(self): self.gentooci = self.master.namedServices['services'].namedServices['gentooci'] - self.repository_basedir = yield os.path.join(self.getProperty("rootworkdir"), self.getProperty('portage_repos_path')[1:]) + self.repository_basedir = yield os.path.join(self.getProperty("worker_basedir"), self.getProperty('portage_repos_path')) self.repository_path = yield os.path.join(self.repository_basedir, self.getProperty("repository_data")['name']) self.cp_path = yield pkgsplit(self.getProperty("cpv"))[0] self.file_name = yield self.getProperty("package_data")['name'] + '-' + self.getProperty("version") + '.ebuild' @@ -392,9 +392,14 @@ class SetupPropertys(BuildStep): @defer.inlineCallbacks def run(self): - self.setProperty('portage_repos_path', '/repositorys', 'portage_repos_path') - self.setProperty('rootworkdir', '/var/lib/buildbot_worker', 'rootworkdir') self.gentooci = self.master.namedServices['services'].namedServices['gentooci'] + if self.gentooci.config.project['worker_config']['basedir'] is None: + worker_basedir = self.getProperty('builddir').split('/builds')[0] + else: + worker_basedir = self.gentooci.config.project['worker_config']['basedir'] + self.setProperty('worker_basedir', worker_basedir, 'worker_basedir') + portage_repos_path = os.path.join(worker_basedir, self.gentooci.config.project['worker_config']['repository_basedir']) + self.setProperty('portage_repos_path', portage_repos_path, 'portage_repos_path') print(self.getProperty("cpv")) self.version = yield cpv_getversion(self.getProperty("cpv")) print(self.version) diff --git a/gentooci.cfg b/gentooci.cfg index ca3afe3..cd4bfda 100644 --- a/gentooci.cfg +++ b/gentooci.cfg @@ -30,9 +30,16 @@ makeconf_list.append('PORTAGE_LOG_FILTER_FILE_CMD="bash -c \'ansifilter --ignore # This specifies what project buildbot uses for Gentoo Ci as default c['project'] = { 'update_db' : 'gosbsbase', - 'worker_portage_repos_path' : '/var/db/repos/', + 'worker_portage_repos_path' : '/var/db/repos', 'config_makeconfig' : makeconf_list, } # This specifies what the repository base dir is c['repository_basedir'] = "repositorys" + +# This specifies worker configs +c['worker_config'] = { + 'basedir' : None, + 'repository_basedir' : 'repositorys', + 'portage_repos_path' : '/var/db/repos', +}