public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] proj/tinderbox-cluster:master commit in: buildbot_gentoo_ci/steps/, buildbot_gentoo_ci/db/
@ 2021-04-10  1:03 Magnus Granberg
  0 siblings, 0 replies; 5+ messages in thread
From: Magnus Granberg @ 2021-04-10  1:03 UTC (permalink / raw
  To: gentoo-commits

commit:     550ae33d23ae93d7d779922a0b8e07710458c1a7
Author:     Magnus Granberg <zorry <AT> gentoo <DOT> org>
AuthorDate: Sat Apr 10 01:02:38 2021 +0000
Commit:     Magnus Granberg <zorry <AT> gentoo <DOT> org>
CommitDate: Sat Apr 10 01:02:38 2021 +0000
URL:        https://gitweb.gentoo.org/proj/tinderbox-cluster.git/commit/?id=550ae33d

Add support for Failed to XX in emerge build

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

 buildbot_gentoo_ci/db/packages.py    |  4 +-
 buildbot_gentoo_ci/db/versions.py    |  3 +-
 buildbot_gentoo_ci/steps/builders.py | 90 ++++++++++++++++++++++++++++--------
 buildbot_gentoo_ci/steps/logs.py     |  7 ++-
 buildbot_gentoo_ci/steps/package.py  |  4 +-
 buildbot_gentoo_ci/steps/version.py  |  2 +-
 6 files changed, 85 insertions(+), 25 deletions(-)

diff --git a/buildbot_gentoo_ci/db/packages.py b/buildbot_gentoo_ci/db/packages.py
index 13cc267..a22b9d8 100644
--- a/buildbot_gentoo_ci/db/packages.py
+++ b/buildbot_gentoo_ci/db/packages.py
@@ -27,11 +27,13 @@ from buildbot.db import base
 class PackagesConnectorComponent(base.DBConnectorComponent):
 
     @defer.inlineCallbacks
-    def getPackageByName(self, name):
+    def getPackageByName(self, name, c_uuid, repo_uuid):
         def thd(conn):
             tbl = self.db.model.packages
             q = tbl.select()
             q = q.where(tbl.c.name == name)
+            q = q.where(tbl.c.category_uuid == c_uuid)
+            q = q.where(tbl.c.repository_uuid == repo_uuid)
             res = conn.execute(q)
             row = res.fetchone()
             if not row:

diff --git a/buildbot_gentoo_ci/db/versions.py b/buildbot_gentoo_ci/db/versions.py
index 85bd105..768c1dc 100644
--- a/buildbot_gentoo_ci/db/versions.py
+++ b/buildbot_gentoo_ci/db/versions.py
@@ -28,11 +28,12 @@ from buildbot.util import datetime2epoch
 class VersionsConnectorComponent(base.DBConnectorComponent):
 
     @defer.inlineCallbacks
-    def getVersionByName(self, name):
+    def getVersionByName(self, name, p_uuid):
         def thd(conn):
             tbl = self.db.model.versions
             q = tbl.select()
             q = q.where(tbl.c.name == name)
+            q = q.where(tbl.c.package_uuid == p_uuid)
             res = conn.execute(q)
             row = res.fetchone()
             if not row:

diff --git a/buildbot_gentoo_ci/steps/builders.py b/buildbot_gentoo_ci/steps/builders.py
index af3be9d..e51576f 100644
--- a/buildbot_gentoo_ci/steps/builders.py
+++ b/buildbot_gentoo_ci/steps/builders.py
@@ -4,7 +4,7 @@
 import os
 import re
 
-from portage.versions import catpkgsplit
+from portage.versions import catpkgsplit, cpv_getversion
 
 from twisted.internet import defer
 from twisted.python import log
@@ -19,10 +19,10 @@ def PersOutputOfEmerge(rc, stdout, stderr):
     emerge_output['rc'] = rc
     emerge_output['preserved_libs'] = False
     emerge_output['change_use'] = False
+    emerge_output['failed'] = False
     package_dict = {}
     log_path_list = []
     print(stderr)
-    emerge_output['stderr'] = stderr
     # split the lines
     for line in stdout.split('\n'):
         # package list
@@ -67,6 +67,10 @@ def PersOutputOfEmerge(rc, stdout, stderr):
             # CPU_FLAGS_X86 list
             package_dict[cpv] = subdict
         if line.startswith('>>>'):
+            if line.startswith('>>> Failed to'):
+                emerge_output['failed'] = line.split(' ')[4][:-1]
+            if line.endswith('.log.gz') and emerge_output['failed']:
+                log_path_list.append(line.split(' ')[2])
             #FIXME: Handling of >>> output
             pass
         if line.startswith('!!!'):
@@ -78,9 +82,10 @@ def PersOutputOfEmerge(rc, stdout, stderr):
                 log_path_list.append(line.split(' ')[4])
         #FIXME: Handling of depclean output dict of packages that get removed or saved
     emerge_output['package'] = package_dict
-    emerge_output['log_paths'] = log_path_list
+
     # split the lines
     #FIXME: Handling of stderr output
+    stderr_line_list = []
     for line in stderr.split('\n'):
         if 'Change USE:' in line:
             line_list = line.split(' ')
@@ -96,6 +101,16 @@ def PersOutputOfEmerge(rc, stdout, stderr):
                 else:
                     change_use_list = False
             emerge_output['change_use'] = change_use_list
+        err_line_list = []
+        if line.startswith(' * '):
+            if line.endswith('.log.gz'):
+                log_path = line.split(' ')[3]
+                if log_path not in inlog_path_list:
+                    log_path_list.append(log_path)
+            stderr_line_list.append(line)
+    emerge_output['stderr'] = stderr_line_list
+    emerge_output['log_paths'] = log_path_list
+
     return {
         'emerge_output' : emerge_output
         }
@@ -484,6 +499,30 @@ class CheckEmergeLogs(BuildStep):
         self.step = step
         super().__init__(**kwargs)
         self.descriptionSuffix = self.step
+        self.aftersteps_list = []
+        self.log_data = {}
+
+    @defer.inlineCallbacks
+    def getVersionData(self, cpv):
+        c = yield catpkgsplit(cpv)[0]
+        p = yield catpkgsplit(cpv)[1]
+        category_data = yield self.gentooci.db.categorys.getCategoryByName(c)
+        package_data = yield self.gentooci.db.packages.getPackageByName(p,
+                                                                        category_data['uuid'],
+                                                                        self.getProperty('repository_data')['uuid'])
+        if package_data is None:
+            return None
+        version = yield cpv_getversion(cpv)
+        version_data = yield self.gentooci.db.versions.getVersionByName(version, package_data['uuid'])
+        return version_data
+
+    @defer.inlineCallbacks
+    def getLogFile(self, cpv, log_dict):
+        masterdest = yield os.path.join(self.master.basedir, 'cpv_logs', log_dict[cpv]['full_logname'])
+        self.aftersteps_list.append(steps.FileUpload(
+            workersrc=log_dict[cpv]['log_path'],
+            masterdest=masterdest
+        ))
 
     @defer.inlineCallbacks
     def run(self):
@@ -495,7 +534,6 @@ class CheckEmergeLogs(BuildStep):
                     'emerge',
                     '-v'
                     ]
-        aftersteps_list = []
 
         #FIXME: Prosees the logs and do stuff
         # preserved-libs
@@ -533,13 +571,13 @@ class CheckEmergeLogs(BuildStep):
                     else:
                         change_use_list.append(use_flag)
                     change_use_string = separator2.join(change_use_list)
-                    aftersteps_list.append(
+                    self.aftersteps_list.append(
                         steps.StringDownload(change_use_string + separator,
                                 workerdest='zz_autouse' + str(self.getProperty('rerun')),
                                 workdir='/etc/portage/package.use/')
                         )
                     # rerun
-                    aftersteps_list.append(RunEmerge(step='pre-build'))
+                    self.aftersteps_list.append(RunEmerge(step='pre-build'))
                     self.setProperty('rerun', self.getProperty('rerun') + 1, 'rerun')
             else:
                 # trigger parse_build_log with info about pre-build and it fail
@@ -564,31 +602,43 @@ class CheckEmergeLogs(BuildStep):
                                 full_logname = full_logname
                                 )
             print(log_dict)
-            # Find log for cpv that was requested or did faild
+            # Find log for cpv that was requested or did failed
             if not log_dict == {}:
                 # requested cpv
-                if self.getProperty('cpv') in log_dict:
-                    log_data = log_dict[self.getProperty('cpv')]
-                    masterdest = yield os.path.join(self.master.basedir, 'cpv_logs', log_data['full_logname'])
-                    aftersteps_list.append(steps.FileUpload(
-                        workersrc=log_data['log_path'],
-                        masterdest=masterdest
-                        ))
-                    aftersteps_list.append(steps.Trigger(
+                print(log_dict)
+                cpv = self.getProperty('cpv')
+                faild_cpv = emerge_output['failed']
+                if cpv in log_dict or faild_cpv in log_dict:
+                    if cpv in log_dict:
+                        self.log_data[cpv] = log_dict[cpv]
+                        yield self.getLogFile(cpv, log_dict)
+                        faild_version_data = False
+                    if faild_cpv:
+                        # failed and build requested cpv
+                        if cpv == faild_cpv:
+                            faild_version_data = self.getProperty("version_data")
+                        else:
+                            # failed but not build requested cpv
+                            self.log_data[faild_cpv] = log_dict[faild_cpv]
+                            yield self.getLogFile(faild_cpv, log_dict)
+                            faild_version_data = yield self.getVersionData(faild_cpv)
+                    self.aftersteps_list.append(steps.Trigger(
                         schedulerNames=['parse_build_log'],
                         waitForFinish=False,
                         updateSourceStamp=False,
                         set_properties={
                             'cpv' : self.getProperty("cpv"),
-                            'faild_version_data' : self.getProperty('faild_version_data'),
+                            'faild_version_data' : faild_version_data,
                             'project_build_data' : self.getProperty('project_build_data'),
-                            'log_build_data' : log_data,
+                            'log_build_data' : self.log_data,
                             'pkg_check_log_data' : self.getProperty("pkg_check_log_data"),
-                            'repository_data' : self.getProperty('repository_data')
+                            'repository_data' : self.getProperty('repository_data'),
+                            'faild_cpv' : faild_cpv,
+                            'step' : self.step
                         }
                     ))
-        if not self.step is None and aftersteps_list != []:
-            yield self.build.addStepsAfterCurrentStep(aftersteps_list)
+        if not self.step is None and self.aftersteps_list != []:
+            yield self.build.addStepsAfterCurrentStep(self.aftersteps_list)
         return SUCCESS
 
 class CheckDepcleanLogs(BuildStep):

diff --git a/buildbot_gentoo_ci/steps/logs.py b/buildbot_gentoo_ci/steps/logs.py
index 767fdd4..4c3bf01 100644
--- a/buildbot_gentoo_ci/steps/logs.py
+++ b/buildbot_gentoo_ci/steps/logs.py
@@ -157,7 +157,12 @@ class ParserBuildLog(BuildStep):
         # read it to a buffer
         # make a dict of the buffer
         # maby use mulitiprocces to speed up the search
-        file_path = yield os.path.join(self.master.basedir, 'cpv_logs', self.getProperty('log_build_data')['full_logname'])
+        print(self.getProperty('log_build_data'))
+        if self.getProperty('faild_cpv'):
+            log_cpv = self.getProperty('log_build_data')[self.getProperty('faild_cpv')]
+        else:
+            log_cpv = self.getProperty('log_build_data')[self.getProperty('cpv')]
+        file_path = yield os.path.join(self.master.basedir, 'cpv_logs', log_cpv['full_logname'])
         with io.TextIOWrapper(io.BufferedReader(gzip.open(file_path, 'rb'))) as f:
             for text_line in f:
                 self.logfile_text_dict[self.index] = text_line.strip('\n')

diff --git a/buildbot_gentoo_ci/steps/package.py b/buildbot_gentoo_ci/steps/package.py
index ea5ab23..b4e06b7 100644
--- a/buildbot_gentoo_ci/steps/package.py
+++ b/buildbot_gentoo_ci/steps/package.py
@@ -59,7 +59,9 @@ class CheckP(BuildStep):
         self.gentooci = self.master.namedServices['services'].namedServices['gentooci']
         self.package = yield catpkgsplit(self.getProperty("cpv"))[1]
         print(self.package)
-        self.package_data = yield self.gentooci.db.packages.getPackageByName(self.package)
+        self.package_data = yield self.gentooci.db.packages.getPackageByName(self.package,
+                                                                            self.getProperty("category_data")['uuid'],
+                                                                            self.getProperty("repository_data")['uuid'])
         print(self.package_data)
         if self.package_data is None:
             self.setProperty("package", self.package, 'package')

diff --git a/buildbot_gentoo_ci/steps/version.py b/buildbot_gentoo_ci/steps/version.py
index 426ddd4..e6a927a 100644
--- a/buildbot_gentoo_ci/steps/version.py
+++ b/buildbot_gentoo_ci/steps/version.py
@@ -38,7 +38,7 @@ class GetVData(BuildStep):
         self.gentooci = self.master.namedServices['services'].namedServices['gentooci']
         self.version = yield cpv_getversion(self.getProperty("cpv"))
         print(self.version)
-        self.old_version_data = yield self.gentooci.db.versions.getVersionByName(self.version)
+        self.old_version_data = yield self.gentooci.db.versions.getVersionByName(self.version, self.getProperty("package_data")['uuid'])
         print(self.old_version_data)
         self.setProperty("old_version_data", self.old_version_data, 'old_version_data')
         self.setProperty("version", self.version, 'version')


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [gentoo-commits] proj/tinderbox-cluster:master commit in: buildbot_gentoo_ci/steps/, buildbot_gentoo_ci/db/
@ 2021-04-13 14:24 Magnus Granberg
  0 siblings, 0 replies; 5+ messages in thread
From: Magnus Granberg @ 2021-04-13 14:24 UTC (permalink / raw
  To: gentoo-commits

commit:     409167eb42b9fbacf05f00a36621e897361138bd
Author:     Magnus Granberg <zorry <AT> gentoo <DOT> org>
AuthorDate: Tue Apr 13 14:24:15 2021 +0000
Commit:     Magnus Granberg <zorry <AT> gentoo <DOT> org>
CommitDate: Tue Apr 13 14:24:15 2021 +0000
URL:        https://gitweb.gentoo.org/proj/tinderbox-cluster.git/commit/?id=409167eb

Remove project_repository_uuid from db. use int for datetime in db. change mirror_url to url

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

 buildbot_gentoo_ci/db/builds.py      |  7 +++----
 buildbot_gentoo_ci/db/model.py       | 32 ++++++++++++--------------------
 buildbot_gentoo_ci/db/projects.py    |  1 -
 buildbot_gentoo_ci/db/repositorys.py |  2 +-
 buildbot_gentoo_ci/db/versions.py    |  6 ++----
 buildbot_gentoo_ci/steps/builders.py |  2 +-
 buildbot_gentoo_ci/steps/portage.py  |  4 ++--
 buildbot_gentoo_ci/steps/repos.py    |  2 +-
 8 files changed, 22 insertions(+), 34 deletions(-)

diff --git a/buildbot_gentoo_ci/db/builds.py b/buildbot_gentoo_ci/db/builds.py
index 79814b7..2ad67b8 100644
--- a/buildbot_gentoo_ci/db/builds.py
+++ b/buildbot_gentoo_ci/db/builds.py
@@ -23,13 +23,12 @@ import sqlalchemy as sa
 from twisted.internet import defer
 
 from buildbot.db import base
-from buildbot.util import epoch2datetime
 
 class BuildsConnectorComponent(base.DBConnectorComponent):
 
     #@defer.inlineCallbacks
     def addBuild(self, project_build_data):
-        created_at = epoch2datetime(int(self.master.reactor.seconds()))
+        created_at = int(self.master.reactor.seconds())
         def thd(conn, no_recurse=False):
             tbl = self.db.model.projects_builds
             # get the highest current number
@@ -56,7 +55,7 @@ class BuildsConnectorComponent(base.DBConnectorComponent):
 
     @defer.inlineCallbacks
     def setSatusBuilds(self, build_id, project_uuid, status):
-        updated_at = epoch2datetime(int(self.master.reactor.seconds()))
+        updated_at = int(self.master.reactor.seconds())
         def thd(conn, no_recurse=False):
         
                 tbl = self.db.model.projects_builds
@@ -69,7 +68,7 @@ class BuildsConnectorComponent(base.DBConnectorComponent):
 
     @defer.inlineCallbacks
     def setBuildbotBuildIdBuilds(self, build_id, project_uuid, buildbot_build_id):
-        updated_at = epoch2datetime(int(self.master.reactor.seconds()))
+        updated_at = int(self.master.reactor.seconds())
         def thd(conn, no_recurse=False):
         
                 tbl = self.db.model.projects_builds

diff --git a/buildbot_gentoo_ci/db/model.py b/buildbot_gentoo_ci/db/model.py
index 54c964f..ede5cb7 100644
--- a/buildbot_gentoo_ci/db/model.py
+++ b/buildbot_gentoo_ci/db/model.py
@@ -70,7 +70,7 @@ class Model(base.DBConnectorComponent):
         sa.Column('name', sa.String(255), nullable=False),
         # description of the repository
         sa.Column('description', sa.Text, nullable=True),
-        sa.Column('mirror_url', sa.String(255), nullable=True),
+        sa.Column('url', sa.String(255), nullable=True),
         sa.Column('type', sa.Enum('gitpuller'), nullable=False, default='gitpuller'),
         sa.Column('auto', sa.Boolean, default=False),
         sa.Column('enabled', sa.Boolean, default=False),
@@ -98,15 +98,11 @@ class Model(base.DBConnectorComponent):
         "projects", metadata,
         # unique id per project
         sa.Column('uuid', sa.String(36), primary_key=True,
-                  default=lambda: str(uuid.uuid4()),
-                  ),
+                  default=lambda: str(uuid.uuid4())),
         # project's name
         sa.Column('name', sa.String(255), nullable=False),
         # description of the project
         sa.Column('description', sa.Text, nullable=True),
-        sa.Column('project_repository_uuid', sa.String(36),
-                  sa.ForeignKey('repositorys.uuid', ondelete='CASCADE'),
-                  nullable=False),
         sa.Column('profile', sa.String(255), nullable=False),
         sa.Column('profile_repository_uuid', sa.String(36),
                   sa.ForeignKey('repositorys.uuid', ondelete='CASCADE'),
@@ -216,10 +212,10 @@ class Model(base.DBConnectorComponent):
         sa.Column('buildbot_build_id', sa.Integer),
         sa.Column('status', sa.Enum('failed','completed','in-progress','waiting', 'warning'), nullable=False),
         sa.Column('requested', sa.Boolean, default=False),
-        sa.Column('created_at', sa.DateTime, nullable=True),
-        sa.Column('updated_at', sa.DateTime, nullable=True),
+        sa.Column('created_at', sa.Integer, nullable=True),
+        sa.Column('updated_at', sa.Integer, nullable=True),
         sa.Column('deleted', sa.Boolean, default=False),
-        sa.Column('deleted_at', sa.DateTime, nullable=True),
+        sa.Column('deleted_at', sa.Integer, nullable=True),
     )
 
     projects_pattern = sautils.Table(
@@ -247,16 +243,14 @@ class Model(base.DBConnectorComponent):
     categorys = sautils.Table(
         "categorys", metadata,
         sa.Column('uuid', sa.String(36), primary_key=True,
-                  default=lambda: str(uuid.uuid4())
-                  ),
+                  default=lambda: str(uuid.uuid4())),
         sa.Column('name', sa.String(255), nullable=False),
     )
 
     packages = sautils.Table(
         "packages", metadata,
         sa.Column('uuid', sa.String(36), primary_key=True,
-                  default=lambda: str(uuid.uuid4()),
-                  ),
+                  default=lambda: str(uuid.uuid4())),
         sa.Column('name', sa.String(255), nullable=False),
         sa.Column('category_uuid', sa.String(36),
                   sa.ForeignKey('categorys.uuid', ondelete='CASCADE'),
@@ -265,14 +259,13 @@ class Model(base.DBConnectorComponent):
                   sa.ForeignKey('repositorys.uuid', ondelete='CASCADE'),
                   nullable=False),
         sa.Column('deleted', sa.Boolean, default=False),
-        sa.Column('deleted_at', sa.DateTime, nullable=True),
+        sa.Column('deleted_at', sa.Integer, nullable=True),
     )
 
     versions = sautils.Table(
         "versions", metadata,
         sa.Column('uuid', sa.String(36), primary_key=True,
-                  default=lambda: str(uuid.uuid4()),
-                  ),
+                  default=lambda: str(uuid.uuid4())),
         sa.Column('name', sa.String(255), nullable=False),
         sa.Column('package_uuid', sa.String(36),
                   sa.ForeignKey('packages.uuid', ondelete='CASCADE'),
@@ -280,15 +273,14 @@ class Model(base.DBConnectorComponent):
         sa.Column('file_hash', sa.String(255), nullable=False),
         sa.Column('commit_id', sa.String(255), nullable=False),
         sa.Column('deleted', sa.Boolean, default=False),
-        sa.Column('deleted_at', sa.DateTime, nullable=True),
+        sa.Column('deleted_at', sa.Integer, nullable=True),
     )
 
     versions_keywords = sautils.Table(
         "versions_keywords", metadata,
         # unique id per project
         sa.Column('uuid', sa.String(36), primary_key=True,
-                  default=lambda: str(uuid.uuid4()),
-                  ),
+                  default=lambda: str(uuid.uuid4())),
         # project's name
         sa.Column('keyword_id', sa.Integer,
                   sa.ForeignKey('keywords.id', ondelete='CASCADE')),
@@ -308,7 +300,7 @@ class Model(base.DBConnectorComponent):
         sa.Column("uid", sa.Integer, primary_key=True),
 
         # identifier (nickname) for this user; used for display
-        sa.Column("identifier", sa.String(255), nullable=False),
+        sa.Column("email", sa.String(255), nullable=False),
 
         # username portion of user credentials for authentication
         sa.Column("bb_username", sa.String(128)),

diff --git a/buildbot_gentoo_ci/db/projects.py b/buildbot_gentoo_ci/db/projects.py
index 2edc14a..2393011 100644
--- a/buildbot_gentoo_ci/db/projects.py
+++ b/buildbot_gentoo_ci/db/projects.py
@@ -194,7 +194,6 @@ class ProjectsConnectorComponent(base.DBConnectorComponent):
             uuid=row.uuid,
             name=row.name,
             description=row.description,
-            project_repository_uuid=row.project_repository_uuid,
             profile=row.profile,
             profile_repository_uuid=row.profile_repository_uuid,
             keyword_id=row.keyword_id,

diff --git a/buildbot_gentoo_ci/db/repositorys.py b/buildbot_gentoo_ci/db/repositorys.py
index 8806dd1..8bac1a1 100644
--- a/buildbot_gentoo_ci/db/repositorys.py
+++ b/buildbot_gentoo_ci/db/repositorys.py
@@ -95,7 +95,7 @@ class RepositorysConnectorComponent(base.DBConnectorComponent):
             uuid=row.uuid,
             name=row.name,
             description=row.description,
-            mirror_url=row.mirror_url,
+            url=row.url,
             auto=row.auto,
             enabled=row.enabled,
             ebuild=row.ebuild,

diff --git a/buildbot_gentoo_ci/db/versions.py b/buildbot_gentoo_ci/db/versions.py
index 768c1dc..fcc19ee 100644
--- a/buildbot_gentoo_ci/db/versions.py
+++ b/buildbot_gentoo_ci/db/versions.py
@@ -23,8 +23,6 @@ import sqlalchemy as sa
 from twisted.internet import defer
 
 from buildbot.db import base
-from buildbot.util import epoch2datetime
-from buildbot.util import datetime2epoch
 class VersionsConnectorComponent(base.DBConnectorComponent):
 
     @defer.inlineCallbacks
@@ -76,7 +74,7 @@ class VersionsConnectorComponent(base.DBConnectorComponent):
 
     @defer.inlineCallbacks
     def delVersion(self, uuid):
-        deleted_at = epoch2datetime(int(self.master.reactor.seconds()))
+        deleted_at = int(self.master.reactor.seconds())
         def thd(conn, no_recurse=False):
         
                 tbl = self.db.model.versions
@@ -111,5 +109,5 @@ class VersionsConnectorComponent(base.DBConnectorComponent):
             file_hash=row.file_hash,
             commit_id=row.commit_id,
             deleted=row.deleted,
-            deleted_at=datetime2epoch(row.deleted_at)
+            deleted_at=row.deleted_at
             )

diff --git a/buildbot_gentoo_ci/steps/builders.py b/buildbot_gentoo_ci/steps/builders.py
index e51576f..d9817d8 100644
--- a/buildbot_gentoo_ci/steps/builders.py
+++ b/buildbot_gentoo_ci/steps/builders.py
@@ -300,7 +300,7 @@ class UpdateRepos(BuildStep):
             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'])
             yield self.build.addStepsAfterCurrentStep([
-            steps.Git(repourl=repository_data['mirror_url'],
+            steps.Git(repourl=repository_data['url'],
                             mode='incremental',
                             submodules=True,
                             workdir=os.path.join(repository_path, ''))

diff --git a/buildbot_gentoo_ci/steps/portage.py b/buildbot_gentoo_ci/steps/portage.py
index 2308617..c1a4d90 100644
--- a/buildbot_gentoo_ci/steps/portage.py
+++ b/buildbot_gentoo_ci/steps/portage.py
@@ -153,7 +153,7 @@ class SetReposConf(BuildStep):
             repository_conf = []
             repository_conf.append('[' + repository_data['name'] + ']')
             repository_conf.append('location = ' + repository_path)
-            repository_conf.append('sync-uri = ' + repository_data['mirror_url'])
+            repository_conf.append('sync-uri = ' + repository_data['url'])
             repository_conf.append('sync-type = git')
             repository_conf.append('auto-sync = no')
             repository_conf_string = separator.join(repository_conf)
@@ -446,7 +446,7 @@ class SetReposConfLocal(BuildStep):
             repository_conf = []
             repository_conf.append('[' + self.getProperty("repository_data")['name'] + ']')
             repository_conf.append('location = ' + repository_path)
-            repository_conf.append('sync-uri = ' + self.getProperty("repository_data")['mirror_url'])
+            repository_conf.append('sync-uri = ' + self.getProperty("repository_data")['url'])
             repository_conf.append('sync-type = git')
             repository_conf.append('auto-sync = no')
             yield WriteTextToFile(repos_conf_repository_path, repository_conf)

diff --git a/buildbot_gentoo_ci/steps/repos.py b/buildbot_gentoo_ci/steps/repos.py
index bc06e45..5b6b621 100644
--- a/buildbot_gentoo_ci/steps/repos.py
+++ b/buildbot_gentoo_ci/steps/repos.py
@@ -108,7 +108,7 @@ class CheckRepository(BuildStep):
         repo_path = yield pygit2.discover_repository(repository_path)
         print(repo_path)
         if repo_path is None:
-            yield pygit2.clone_repository(repository_data['mirror_url'], repository_path)
+            yield pygit2.clone_repository(repository_data['url'], repository_path)
             success = True
         else:
             repo = yield pygit2.Repository(repo_path)


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [gentoo-commits] proj/tinderbox-cluster:master commit in: buildbot_gentoo_ci/steps/, buildbot_gentoo_ci/db/
@ 2021-07-09 15:49 Magnus Granberg
  0 siblings, 0 replies; 5+ messages in thread
From: Magnus Granberg @ 2021-07-09 15:49 UTC (permalink / raw
  To: gentoo-commits

commit:     c479075032be16a23ebbecf06d5f17bd8881e938
Author:     Magnus Granberg <zorry <AT> gentoo <DOT> org>
AuthorDate: Fri Jul  9 15:49:39 2021 +0000
Commit:     Magnus Granberg <zorry <AT> gentoo <DOT> org>
CommitDate: Fri Jul  9 15:49:39 2021 +0000
URL:        https://gitweb.gentoo.org/proj/tinderbox-cluster.git/commit/?id=c4790750

Move setting of project_build_data

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

 buildbot_gentoo_ci/db/builds.py      |  1 -
 buildbot_gentoo_ci/steps/builders.py | 30 ++++++++++++++++--------------
 2 files changed, 16 insertions(+), 15 deletions(-)

diff --git a/buildbot_gentoo_ci/db/builds.py b/buildbot_gentoo_ci/db/builds.py
index 2ad67b8..2cd52bc 100644
--- a/buildbot_gentoo_ci/db/builds.py
+++ b/buildbot_gentoo_ci/db/builds.py
@@ -40,7 +40,6 @@ class BuildsConnectorComponent(base.DBConnectorComponent):
                 q = tbl.insert()
                 r = conn.execute(q, dict(project_uuid=project_build_data['project_uuid'],
                                          version_uuid=project_build_data['version_uuid'],
-                                         buildbot_build_id=project_build_data['buildbot_build_id'],
                                          status=project_build_data['status'],
                                          requested=project_build_data['requested'],
                                          created_at=created_at,

diff --git a/buildbot_gentoo_ci/steps/builders.py b/buildbot_gentoo_ci/steps/builders.py
index 0bed647..63a1ae9 100644
--- a/buildbot_gentoo_ci/steps/builders.py
+++ b/buildbot_gentoo_ci/steps/builders.py
@@ -189,6 +189,17 @@ class TriggerRunBuildRequest(BuildStep):
 
     @defer.inlineCallbacks
     def run(self):
+        self.gentooci = self.master.namedServices['services'].namedServices['gentooci']
+        if self.getProperty('project_build_data') is None:
+            project_build_data = {}
+            project_build_data['project_uuid'] = self.getProperty('project_data')['uuid']
+            project_build_data['version_uuid'] = self.getProperty("version_data")['uuid']
+            project_build_data['status'] = 'waiting'
+            project_build_data['requested'] = False
+            project_build_data['id'], project_build_data['build_id'] = yield self.gentooci.db.builds.addBuild(
+                                                                                            project_build_data)
+        else:
+            project_build_data = self.getProperty('project_build_data')
         yield self.build.addStepsAfterCurrentStep([
                 steps.Trigger(
                     schedulerNames=['run_build_request'],
@@ -200,7 +211,7 @@ class TriggerRunBuildRequest(BuildStep):
                             'projectrepository_data' : self.getProperty('projectrepository_data'),
                             'use_data' : self.getProperty("use_data"),
                             'fullcheck' : self.getProperty("fullcheck"),
-                            'project_build_data' : None
+                            'project_build_data' : project_build_data
                         }
                 )])
         return SUCCESS
@@ -233,6 +244,7 @@ class GetProjectRepositoryData(BuildStep):
                 # set Property projectrepository_data so we can use it in the trigger
                 self.setProperty('projectrepository_data', projectrepository_data, 'projectrepository_data')
                 self.setProperty('use_data', None, 'use_data')
+                self.setProperty('project_data', project_data, 'project_data')
                 # get name o project keyword
                 project_keyword_data = yield self.gentooci.db.keywords.getKeywordById(project_data['keyword_id'])
                 # if not * (all keywords)
@@ -280,22 +292,12 @@ class SetupPropertys(BuildStep):
         self.setProperty('faild_version_data', None, 'faild_version_data')
         self.setProperty('rerun', 0, 'rerun')
         print(self.getProperty("buildnumber"))
-        if self.getProperty('project_build_data') is None:
-            project_build_data = {}
-            project_build_data['project_uuid'] = project_data['uuid']
-            project_build_data['version_uuid'] = self.getProperty("version_data")['uuid']
-            project_build_data['status'] = 'in-progress'
-            project_build_data['requested'] = False
-            project_build_data['buildbot_build_id'] = self.getProperty("buildnumber")
-            project_build_data['id'], project_build_data['build_id'] = yield self.gentooci.db.builds.addBuild(
-                                                                                            project_build_data)
-        else:
-            project_build_data = self.getProperty('project_build_data')
-            yield self.gentooci.db.builds.setSatusBuilds(
+        project_build_data = self.getProperty('project_build_data')
+        yield self.gentooci.db.builds.setSatusBuilds(
                                                     project_build_data['build_id'],
                                                     project_build_data['project_uuid'],
                                                     'in-progress')
-            yield self.gentooci.db.builds.setBuildbotBuildIdBuilds(
+        yield self.gentooci.db.builds.setBuildbotBuildIdBuilds(
                                                     project_build_data['build_id'],
                                                     project_build_data['project_uuid'],
                                                     self.getProperty("buildnumber"))


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [gentoo-commits] proj/tinderbox-cluster:master commit in: buildbot_gentoo_ci/steps/, buildbot_gentoo_ci/db/
@ 2021-09-20 23:28 Magnus Granberg
  0 siblings, 0 replies; 5+ messages in thread
From: Magnus Granberg @ 2021-09-20 23:28 UTC (permalink / raw
  To: gentoo-commits

commit:     a54c33a5119cb5528bb83ab73b86068dd749b970
Author:     Magnus Granberg <zorry <AT> gentoo <DOT> org>
AuthorDate: Mon Sep 20 23:29:24 2021 +0000
Commit:     Magnus Granberg <zorry <AT> gentoo <DOT> org>
CommitDate: Mon Sep 20 23:29:24 2021 +0000
URL:        https://gitweb.gentoo.org/proj/tinderbox-cluster.git/commit/?id=a54c33a5

Support fore more make.conf options from the db

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

 buildbot_gentoo_ci/db/model.py      |  1 +
 buildbot_gentoo_ci/db/projects.py   |  1 +
 buildbot_gentoo_ci/steps/portage.py | 59 +++++++++----------------------------
 3 files changed, 16 insertions(+), 45 deletions(-)

diff --git a/buildbot_gentoo_ci/db/model.py b/buildbot_gentoo_ci/db/model.py
index d9a3972..e2cbc8d 100644
--- a/buildbot_gentoo_ci/db/model.py
+++ b/buildbot_gentoo_ci/db/model.py
@@ -113,6 +113,7 @@ class Model(base.DBConnectorComponent):
         sa.Column('status', sa.Enum('stable','unstable','all'), nullable=False),
         sa.Column('auto', sa.Boolean, default=False),
         sa.Column('enabled', sa.Boolean, default=False),
+        sa.Column('use_default', sa.Boolean, default=True),
         sa.Column('created_by', sa.Integer,
                   sa.ForeignKey('users.uid', ondelete='CASCADE'),
                   nullable=False),

diff --git a/buildbot_gentoo_ci/db/projects.py b/buildbot_gentoo_ci/db/projects.py
index fbef435..408450e 100644
--- a/buildbot_gentoo_ci/db/projects.py
+++ b/buildbot_gentoo_ci/db/projects.py
@@ -211,6 +211,7 @@ class ProjectsConnectorComponent(base.DBConnectorComponent):
             status=row.status,
             auto=row.auto,
             enabled=row.enabled,
+            use_default=row.use_default,
             created_by=row.created_by
             )
 

diff --git a/buildbot_gentoo_ci/steps/portage.py b/buildbot_gentoo_ci/steps/portage.py
index 0a131d7..03552b6 100644
--- a/buildbot_gentoo_ci/steps/portage.py
+++ b/buildbot_gentoo_ci/steps/portage.py
@@ -179,7 +179,7 @@ class SetMakeConf(BuildStep):
 
     @defer.inlineCallbacks
     def run(self):
-        #FIXME: Make a dict before we pass it to the make.conf
+        #FIXME: Make a dict before we pass it to the log
         self.gentooci = self.master.namedServices['services'].namedServices['gentooci']
         project_data = self.getProperty('project_data')
         makeconf_variables_data = yield self.gentooci.db.portages.getVariables()
@@ -189,46 +189,25 @@ class SetMakeConf(BuildStep):
         for k in makeconf_variables_data:
             makeconf_variables_values_data = yield self.gentooci.db.projects.getProjectMakeConfById(project_data['uuid'], k['id'])
             makeconf_variable_list = []
-            # we add some default values
-            #FIXME:
-            # we could set them in a config variables
-            # FEATURES
-            if k['variable'] == 'FEATURES':
-                makeconf_variable_list.append('xattr')
-                makeconf_variable_list.append('cgroup')
-                makeconf_variable_list.append('-news')
-                makeconf_variable_list.append('-collision-protect')
-                makeconf_variable_list.append('split-log')
-                makeconf_variable_list.append('compress-build-logs')
-            # EMERGE_DEFAULT_OPTS
-            if k['variable'] == 'EMERGE_DEFAULT_OPTS':
-                makeconf_variable_list.append('--buildpkg=y')
-                makeconf_variable_list.append('--rebuild-if-new-rev=y')
-                makeconf_variable_list.append('--rebuilt-binaries=y')
-                makeconf_variable_list.append('--usepkg=y')
-                makeconf_variable_list.append('--binpkg-respect-use=y')
-                makeconf_variable_list.append('--binpkg-changed-deps=y')
-                makeconf_variable_list.append('--nospinner')
-                makeconf_variable_list.append('--color=n')
-                makeconf_variable_list.append('--ask=n')
-                makeconf_variable_list.append('--quiet-build=y')
-                makeconf_variable_list.append('--quiet-fail=y')
             # CFLAGS
             if k['variable'] == 'CFLAGS' or k['variable'] == 'FCFLAGS':
                 makeconf_variable_list.append('-O2')
                 makeconf_variable_list.append('-pipe')
-                makeconf_variable_list.append('-march=native')
                 makeconf_variable_list.append('-fno-diagnostics-color')
                 #FIXME:
                 # Depend on worker we may have to add a diffrent march
+                makeconf_variable_list.append('-march=native')
             if k['variable'] == 'CXXFLAGS':
                 makeconf_variable_list.append('${CFLAGS}')
             if k['variable'] == 'FFLAGS':
                 makeconf_variable_list.append('${FCFLAGS}')
-            if k['variable'] == 'ACCEPT_PROPERTIES':
-                makeconf_variable_list.append('-interactive')
-            if k['variable'] == 'ACCEPT_RESTRICT':
-                makeconf_variable_list.append('-fetch')
+            # Add default setting if use_default
+            if project_data['use_default']:
+                default_project_data = yield self.gentooci.db.projects.getProjectByName(self.gentooci.config.project['project']['update_db'])
+                default_makeconf_variables_values_data = yield self.gentooci.db.projects.getProjectMakeConfById(default_project_data['uuid'], k['id'])
+                for v in default_makeconf_variables_values_data:
+                    if v['build_id'] == 0:
+                        makeconf_variable_list.append(v['value'])
             for v in makeconf_variables_values_data:
                 if v['build_id'] == 0:
                     makeconf_variable_list.append(v['value'])
@@ -237,21 +216,10 @@ class SetMakeConf(BuildStep):
             if makeconf_variable_list != []:
                 makeconf_variable_string = k['variable'] + '="' + separator2.join(makeconf_variable_list) + '"'
                 makeconf_list.append(makeconf_variable_string)
-        # add hardcoded variables and values
-        #FIXME:
-        # we could set them in a config variables
-        makeconf_list.append('LC_MESSAGES=C')
-        makeconf_list.append('NOCOLOR="true"')
-        makeconf_list.append('GCC_COLORS=""')
-        makeconf_list.append('PORTAGE_TMPFS="/dev/shm"')
-        makeconf_list.append('CLEAN_DELAY=0')
-        makeconf_list.append('NOCOLOR=true')
-        makeconf_list.append('PORT_LOGDIR="/var/cache/portage/logs"')
-        makeconf_list.append('PKGDIR="/var/cache/portage/packages"')
-        makeconf_list.append('DISTDIR="/var/cache/portage/distfiles"')
-        makeconf_list.append('PORTAGE_ELOG_CLASSES="*"')
-        # We need echo:info to get the logfile name
-        makeconf_list.append('PORTAGE_ELOG_SYSTEM="save:* echo:info"')
+        # add hardcoded variables from config file
+        config_makeconfig = self.gentooci.config.project['project']['config_makeconfig']
+        for v in config_makeconfig:
+            makeconf_list.append(v)
         # add ACCEPT_KEYWORDS from the project_data info
         keyword_data = yield self.gentooci.db.keywords.getKeywordById(project_data['keyword_id'])
         if project_data['status'] == 'unstable':
@@ -259,6 +227,7 @@ class SetMakeConf(BuildStep):
         else:
             makeconf_keyword = keyword_data['name']
         makeconf_list.append('ACCEPT_KEYWORDS="' + makeconf_keyword + '"')
+        makeconf_list.append('MAKEOPTS="-j14"')
         makeconf_string = separator1.join(makeconf_list)
         print(makeconf_string)
         yield self.build.addStepsAfterCurrentStep([


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [gentoo-commits] proj/tinderbox-cluster:master commit in: buildbot_gentoo_ci/steps/, buildbot_gentoo_ci/db/
@ 2022-09-25 11:46 Magnus Granberg
  0 siblings, 0 replies; 5+ messages in thread
From: Magnus Granberg @ 2022-09-25 11:46 UTC (permalink / raw
  To: gentoo-commits

commit:     3e54616897711b1958da178ca0578da08dd55cb3
Author:     Magnus Granberg <zorry <AT> gentoo <DOT> org>
AuthorDate: Sun Sep 25 11:46:08 2022 +0000
Commit:     Magnus Granberg <zorry <AT> gentoo <DOT> org>
CommitDate: Sun Sep 25 11:46:08 2022 +0000
URL:        https://gitweb.gentoo.org/proj/tinderbox-cluster.git/commit/?id=3e546168

Fix a typo on setStausBuilds

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

 buildbot_gentoo_ci/db/builds.py      | 2 +-
 buildbot_gentoo_ci/steps/builders.py | 2 +-
 buildbot_gentoo_ci/steps/logs.py     | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/buildbot_gentoo_ci/db/builds.py b/buildbot_gentoo_ci/db/builds.py
index 6639ed5..57302ef 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 setSatusBuilds(self, id, status):
+    def setStausBuilds(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 00980e3..aed9edb 100644
--- a/buildbot_gentoo_ci/steps/builders.py
+++ b/buildbot_gentoo_ci/steps/builders.py
@@ -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.setSatusBuilds(
+        yield self.gentooci.db.builds.setStausBuilds(
                                                     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 57f9394..becf7d1 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.setSatusBuilds(
+        yield self.gentooci.db.builds.setStausBuilds(
                                                     project_build_data['id'],
                                                     self.getProperty('status')
                                                     )


^ permalink raw reply related	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2022-09-25 11:46 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-04-10  1:03 [gentoo-commits] proj/tinderbox-cluster:master commit in: buildbot_gentoo_ci/steps/, buildbot_gentoo_ci/db/ Magnus Granberg
  -- strict thread matches above, loose matches on Subject: below --
2021-04-13 14:24 Magnus Granberg
2021-07-09 15:49 Magnus Granberg
2021-09-20 23:28 Magnus Granberg
2022-09-25 11:46 Magnus Granberg

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox