blob: 9b4a1f1aad8015276370f47aa565421d25df262c [file] [log] [blame]
# -*- coding: utf-8 -*-
# Copyright 2017 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
"""Module containing builders for infra."""
from __future__ import print_function
from chromite.cbuildbot import manifest_version
from chromite.cbuildbot.builders import generic_builders
from chromite.cbuildbot.stages import build_stages
from chromite.cbuildbot.stages import infra_stages
class InfraGoBuilder(generic_builders.ManifestVersionedBuilder):
"""Builder that builds infra Go binaries."""
def RunStages(self):
"""Build and upload infra Go binaries."""
self._RunStage(build_stages.UprevStage)
self._RunStage(build_stages.InitSDKStage)
self._RunStage(infra_stages.EmergeInfraGoBinariesStage)
self._RunStage(infra_stages.PackageInfraGoBinariesStage)
self._RunStage(infra_stages.RegisterInfraGoPackagesStage)
class InfraGoPreCqBuilder(generic_builders.PreCqBuilder):
"""Builder that builds infra Go binaries for the pre-CQ (no upload)."""
def GetVersionInfo(self):
"""Returns the CrOS version info from the chromiumos-overlay."""
return manifest_version.VersionInfo.from_repo(self._run.buildroot)
def RunTestStages(self):
"""Build infra Go binaries."""
self._RunStage(build_stages.UprevStage)
self._RunStage(build_stages.InitSDKStage)
self._RunStage(infra_stages.EmergeInfraGoBinariesStage)
self._RunStage(infra_stages.PackageInfraGoBinariesStage)
class PuppetPreCqBuilder(generic_builders.PreCqBuilder):
"""Builder that tests Puppet config."""
def GetVersionInfo(self):
"""Returns the CrOS version info from the chromiumos-overlay."""
return manifest_version.VersionInfo.from_repo(self._run.buildroot)
def RunTestStages(self):
"""Run Puppet RSpec tests."""
self._RunStage(build_stages.UprevStage)
self._RunStage(build_stages.InitSDKStage)
self._RunStage(infra_stages.TestPuppetSpecsStage)
class InfraUnittestsPreCqBuilder(generic_builders.PreCqBuilder):
"""Builder that runs infra projects' venved unittests."""
def GetVersionInfo(self):
"""Returns the CrOS version info from the chromiumos-overlay."""
return manifest_version.VersionInfo.from_repo(self._run.buildroot)
def RunTestStages(self):
"""Run various infra venv package unittsets."""
self._RunStage(build_stages.UprevStage)
self._RunStage(build_stages.InitSDKStage)
self._RunStage(infra_stages.TestVenvPackagesStage)