commit: e09c9ab4e45d4a884ea6d2da386f5ea3c8f13c2c Author: Magnus Granberg <zorry <AT> gentoo <DOT> org> AuthorDate: Fri Apr 22 12:34:35 2022 +0000 Commit: Magnus Granberg <zorry <AT> gentoo <DOT> org> CommitDate: Fri Apr 22 12:34:35 2022 +0000 URL: https://gitweb.gentoo.org/proj/tinderbox-cluster.git/commit/?id=e09c9ab4
Add support rootworkdir Signed-off-by: Magnus Granberg <zorry <AT> gentoo.org> buildbot_gentoo_ci/steps/builders.py | 14 +++++++++----- buildbot_gentoo_ci/steps/portage.py | 29 ++++++++++++++++++++++------- 2 files changed, 31 insertions(+), 12 deletions(-) diff --git a/buildbot_gentoo_ci/steps/builders.py b/buildbot_gentoo_ci/steps/builders.py index 4ade33d..8ce6545 100644 --- a/buildbot_gentoo_ci/steps/builders.py +++ b/buildbot_gentoo_ci/steps/builders.py @@ -344,7 +344,8 @@ class UpdateRepos(BuildStep): haltOnFailure = True flunkOnFailure = True - def __init__(self, **kwargs): + def __init__(self, workdir=False, **kwargs): + self.rootworkdir = workdir super().__init__(**kwargs) @defer.inlineCallbacks @@ -356,14 +357,17 @@ class UpdateRepos(BuildStep): projects_repositorys_data = yield self.gentooci.db.projects.getRepositorysByProjectUuid(project_data['uuid']) for project_repository_data in projects_repositorys_data: repository_data = yield self.gentooci.db.repositorys.getRepositoryByUuid(project_repository_data['repository_uuid']) - repository_path = yield os.path.join(portage_repos_path, repository_data['name']) + if self.rootworkdir: + repository_path = os.path.join(self.rootworkdir, portage_repos_path[1:], repository_data['name']) + else: + repository_path = os.path.join(portage_repos_path, repository_data['name'], '') yield self.build.addStepsAfterCurrentStep([ steps.Git(repourl=repository_data['url'], name = 'Git pull ' + repository_data['name'], mode='full', submodules=True, alwaysUseLatest=True, - workdir=os.path.join(repository_path, '')) + workdir=repository_path) ]) return SUCCESS @@ -798,8 +802,8 @@ class CheckEmergeLogs(BuildStep): print(cpv_build_dir) self.setProperty('cpv_build_dir', cpv_build_dir, 'cpv_build_dir') cpv_build_work_dir = yield os.path.join(cpv_build_dir, 'work') - #FIXME: take find pattern from db or config - find_pattern_list = ['meson-log.txt', 'CMakeCache.txt'] + #FIXME: take find pattern from db + find_pattern_list = ['meson-log.txt', 'CMakeCache.txt', 'testlog.txt', '*.out', 'project-config.jam', 'testlog-x11.txt'] shell_commad_list = [] # we have *.log as default shell_commad_list.append('find') diff --git a/buildbot_gentoo_ci/steps/portage.py b/buildbot_gentoo_ci/steps/portage.py index 2332626..431fe9a 100644 --- a/buildbot_gentoo_ci/steps/portage.py +++ b/buildbot_gentoo_ci/steps/portage.py @@ -76,7 +76,8 @@ class SetMakeProfile(BuildStep): haltOnFailure = True flunkOnFailure = True - def __init__(self, **kwargs): + def __init__(self, workdir=False, **kwargs): + self.rootworkdir = workdir super().__init__(**kwargs) @defer.inlineCallbacks @@ -104,8 +105,12 @@ class SetMakeProfile(BuildStep): 'ln', '-s' ] + if self.rootworkdir: + symlink_makeprofile_path = yield os.path.join(self.rootworkdir, 'etc/portage/make.profile') + else: + symlink_makeprofile_path = '/etc/portage/make.profile' shell_commad_list.append(makeprofile_path) - shell_commad_list.append('/etc/portage/make.profile') + shell_commad_list.append(symlink_makeprofile_path) yield self.build.addStepsAfterCurrentStep([ steps.ShellCommand( command=shell_commad_list, @@ -125,7 +130,8 @@ class SetReposConf(BuildStep): haltOnFailure = True flunkOnFailure = True - def __init__(self, **kwargs): + def __init__(self, workdir=False, **kwargs): + self.rootworkdir = workdir super().__init__(**kwargs) @defer.inlineCallbacks @@ -133,6 +139,10 @@ class SetReposConf(BuildStep): self.gentooci = self.master.namedServices['services'].namedServices['gentooci'] portage_repos_path = self.getProperty('portage_repos_path') project_data = self.getProperty('project_data') + if self.rootworkdir: + portage_etc_path = yield os.path.join(self.rootworkdir, 'etc/portage/') + else: + portage_etc_path = '/etc/portage/' # setup the default.conf repos_conf_data = yield self.gentooci.db.projects.getProjectPortageByUuidAndDirectory(project_data['uuid'], 'repos.conf') if repos_conf_data is None: @@ -149,7 +159,7 @@ class SetReposConf(BuildStep): yield self.build.addStepsAfterCurrentStep([ steps.StringDownload(default_conf_string + separator, workerdest="repos.conf/default.conf", - workdir='/etc/portage/') + workdir=portage_etc_path) ]) # display the default.conf yield log.addStdout('File: ' + 'default.conf' + '\n') @@ -171,7 +181,7 @@ class SetReposConf(BuildStep): yield self.build.addStepsAfterCurrentStep([ steps.StringDownload(repository_conf_string + separator, workerdest='repos.conf/' + filename, - workdir='/etc/portage/') + workdir=portage_etc_path) ]) yield log.addStdout('File: ' + filename + '\n') for line in repository_conf: @@ -187,7 +197,8 @@ class SetMakeConf(BuildStep): haltOnFailure = True flunkOnFailure = True - def __init__(self, **kwargs): + def __init__(self, workdir=False, **kwargs): + self.rootworkdir = workdir super().__init__(**kwargs) @defer.inlineCallbacks @@ -196,6 +207,10 @@ class SetMakeConf(BuildStep): self.gentooci = self.master.namedServices['services'].namedServices['gentooci'] project_data = self.getProperty('project_data') makeconf_variables_data = yield self.gentooci.db.portages.getVariables() + if self.rootworkdir: + portage_etc_path = yield os.path.join(self.rootworkdir, 'etc/portage/') + else: + portage_etc_path = '/etc/portage/' separator1 = '\n' separator2 = ' ' makeconf_list = [] @@ -248,7 +263,7 @@ class SetMakeConf(BuildStep): yield self.build.addStepsAfterCurrentStep([ steps.StringDownload(makeconf_string + separator1, workerdest="make.conf", - workdir='/etc/portage/') + workdir=portage_etc_path) ]) # display the make.conf for line in makeconf_list: