commit:     2fdb9d96df3c85cf79ed3189c3f71c18cf56f877
Author:     Magnus Granberg <zorry <AT> gentoo <DOT> org>
AuthorDate: Thu Oct 28 14:51:08 2021 +0000
Commit:     Magnus Granberg <zorry <AT> gentoo <DOT> org>
CommitDate: Thu Oct 28 14:51:08 2021 +0000
URL:        
https://gitweb.gentoo.org/proj/tinderbox-cluster.git/commit/?id=2fdb9d96

Add support for use test

Signed-off-by: Magnus Granberg <zorry <AT> gentoo.org>

 buildbot_gentoo_ci/db/model.py       |  1 +
 buildbot_gentoo_ci/db/projects.py    |  3 ++-
 buildbot_gentoo_ci/steps/portage.py  | 33 +++++++++++++++++++++++++++++++--
 buildbot_gentoo_ci/steps/version.py  | 10 ----------
 buildbot_gentoo_ci/utils/__init__.py |  0
 buildbot_gentoo_ci/utils/use.py      | 12 ++++++++++++
 6 files changed, 46 insertions(+), 13 deletions(-)

diff --git a/buildbot_gentoo_ci/db/model.py b/buildbot_gentoo_ci/db/model.py
index 9e380c8..b4efcf2 100644
--- a/buildbot_gentoo_ci/db/model.py
+++ b/buildbot_gentoo_ci/db/model.py
@@ -132,6 +132,7 @@ class Model(base.DBConnectorComponent):
         sa.Column('auto', sa.Boolean, default=False),
         sa.Column('pkgcheck', sa.Enum('package','full','none'), 
default='none'),
         sa.Column('build', sa.Boolean, default=False),
+        sa.Column('test', sa.Boolean, default=False),
     )
 
     # projects etc/portage settings

diff --git a/buildbot_gentoo_ci/db/projects.py 
b/buildbot_gentoo_ci/db/projects.py
index 48d4288..dc91ce1 100644
--- a/buildbot_gentoo_ci/db/projects.py
+++ b/buildbot_gentoo_ci/db/projects.py
@@ -238,7 +238,8 @@ class ProjectsConnectorComponent(base.DBConnectorComponent):
             repository_uuid=row.repository_uuid,
             auto=row.auto,
             pkgcheck=pkgcheck,
-            build=row.build
+            build=row.build,
+            test=row.test
             )
 
     def _row2dict_projects_workers(self, conn, row):

diff --git a/buildbot_gentoo_ci/steps/portage.py 
b/buildbot_gentoo_ci/steps/portage.py
index dcbf599..408c1e9 100644
--- a/buildbot_gentoo_ci/steps/portage.py
+++ b/buildbot_gentoo_ci/steps/portage.py
@@ -22,6 +22,7 @@ from buildbot.process.results import SKIPPED
 from buildbot.plugins import steps
 
 from buildbot_gentoo_ci.steps import master as master_steps
+from buildbot_gentoo_ci.utils.use import getIUseValue
 
 @defer.inlineCallbacks
 def WriteTextToFile(path, text_list):
@@ -255,7 +256,9 @@ class SetPackageDefault(BuildStep):
         separator1 = '\n'
         separator2 = ' '
         self.aftersteps_list = []
-        #FIXME: accept_keywords, env
+        package_use_dir = False
+        package_env_dir = False
+        #FIXME: accept_keywords
         # add the needed package.* settings from db
         package_conf_use_list = []
         package_settings = yield 
self.gentooci.db.projects.getProjectPortagePackageByUuid(self.getProperty('project_data')['uuid'])
@@ -263,6 +266,7 @@ class SetPackageDefault(BuildStep):
             if package_setting['directory'] == 'use':
                 
package_conf_use_list.append(separator2.join(package_setting['package'],package_setting['value']))
         if package_conf_use_list != []:
+            package_use_dir = True
             package_conf_use_string = separator1.join(package_conf_use_list)
             self.aftersteps_list.append(
                         steps.StringDownload(package_conf_use_string + 
separator1,
@@ -270,9 +274,34 @@ class SetPackageDefault(BuildStep):
                             workdir='/etc/portage/package.use/'
                             )
                         )
-            # create the dir
+        # for test we need to add env and use
+        #FIXME: check restrictions, test use mask and required use
+        if self.getProperty('projectrepository_data')['test']:
+            auxdb_iuses = yield 
self.gentooci.db.versions.getMetadataByUuidAndMatadata(self.getProperty("version_data")['uuid'],
 'iuse')
+            for auxdb_iuse in auxdb_iuses:
+                iuse, status = getIUseValue(auxdb_iuse)
+                if iuse == 'test':
+                    package_use_dir = True
+                    self.aftersteps_list.append(
+                        steps.StringDownload(separator2.join('='+ 
self.getProperty("cpv"),'test') + separator1,
+                            workerdest='test.conf',
+                            workdir='/etc/portage/package.use/'
+                            )
+                        )
+            package_env_dir = True
+            self.aftersteps_list.append(
+                        steps.StringDownload(separator2.join('='+ 
self.getProperty("cpv"),'test.conf') + separator1,
+                            workerdest='test.conf',
+                            workdir='/etc/portage/package.env/'
+                            )
+                        )
+        # add package.* dirs
+        if package_use_dir:
             aftersteps_list.append(steps.MakeDirectory(dir='package.use',
                                 workdir='/etc/portage/'))
+        if package_env_dir:
+            aftersteps_list.append(steps.MakeDirectory(dir='package.env',
+                                workdir='/etc/portage/'))
         yield self.build.addStepsAfterCurrentStep(self.aftersteps_list)
         return SUCCESS
 

diff --git a/buildbot_gentoo_ci/steps/version.py 
b/buildbot_gentoo_ci/steps/version.py
index bff1e57..2b0c1e1 100644
--- a/buildbot_gentoo_ci/steps/version.py
+++ b/buildbot_gentoo_ci/steps/version.py
@@ -21,16 +21,6 @@ from buildbot.plugins import steps
 
 from buildbot_gentoo_ci.steps import portage as portage_steps
 
-def getIUseValue(auxdb_iuse):
-    status = False
-    if auxdb_iuse[0] in ['+']:
-        status = True
-    if auxdb_iuse[0] in ['+'] or auxdb_iuse[0] in ['-']:
-        iuse = auxdb_iuse[1:]
-    else:
-        iuse = auxdb_iuse
-    return iuse, status
-
 class GetVData(BuildStep):
     
     name = 'GetVData'

diff --git a/buildbot_gentoo_ci/utils/__init__.py 
b/buildbot_gentoo_ci/utils/__init__.py
new file mode 100644
index 0000000..e69de29

diff --git a/buildbot_gentoo_ci/utils/use.py b/buildbot_gentoo_ci/utils/use.py
new file mode 100644
index 0000000..b0adb1c
--- /dev/null
+++ b/buildbot_gentoo_ci/utils/use.py
@@ -0,0 +1,12 @@
+# Copyright 2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+def getIUseValue(auxdb_iuse):
+    status = False
+    if auxdb_iuse[0] in ['+']:
+        status = True
+    if auxdb_iuse[0] in ['+'] or auxdb_iuse[0] in ['-']:
+        iuse = auxdb_iuse[1:]
+    else:
+        iuse = auxdb_iuse
+    return iuse, status

Reply via email to