aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMagnus Granberg <zorry@gentoo.org>2022-04-22 14:34:35 +0200
committerMagnus Granberg <zorry@gentoo.org>2022-04-22 14:34:35 +0200
commite09c9ab4e45d4a884ea6d2da386f5ea3c8f13c2c (patch)
tree7ff361c3d804bbfaa347ae6df5e087b4829aaba7
parentAdd support for node workers (diff)
downloadtinderbox-cluster-e09c9ab4e45d4a884ea6d2da386f5ea3c8f13c2c.tar.gz
tinderbox-cluster-e09c9ab4e45d4a884ea6d2da386f5ea3c8f13c2c.tar.bz2
tinderbox-cluster-e09c9ab4e45d4a884ea6d2da386f5ea3c8f13c2c.zip
Add support rootworkdir
Signed-off-by: Magnus Granberg <zorry@gentoo.org>
-rw-r--r--buildbot_gentoo_ci/steps/builders.py14
-rw-r--r--buildbot_gentoo_ci/steps/portage.py29
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: