Warning

Client version 2 is obsolete, please use Client version 3 instead.

Build

Build resource allows to submit new builds and access current build progress. In fact, build consists of a few tasks, one per chroot, and detailed information is available through Build task.

Access to the builds is done through builds(). property of initialized CoprClient. That property is an instance of BuildHandle.

It may be more convenient to access builds in context of a project using method get_builds().

Builds are represented by Build class.

Build entity attributes

Field

Type

Description

id

int

unique build identifier

state

string

current state of the build, value is aggregated from build tasks

submitted_on

int(unixtime UTC)

time of the build submission

started_on

int(unixtime UTC)

time when the first build task started, otherwise null

ended_on

int(unixtime UTC)

time when the last build task ended, otherwise null

source_type

string

method used for build creation

source_metadata

json object

build source information

package_version

string

version of the source package

package_name

string

name of the source package

enable_net

bool

defines if network is available during the build

repos

list of string

list of additional repositories enabled during the build

built_packages

list of hash maps

list of the built packages, each hash map has two keys: name and version

submitter

string

name of the user who submitted the build

Note

Only the state field is editable by the PUT method. All other fields are read-only.

Get builds list

>>> blist_1 = cl.builds.get_list(limit=2)
>>> print(map(str, blist_1))
['<Build #138426 state: succeeded>', '<Build #138425 state: succeeded>']
# using the project object
>>> blist_2 = p.get_builds(limit=2)
>>> print(map(str, blist_2))
['<Build #138423 state: failed>', '<Build #138421 state: failed>']

Get one build

>>> b = cl.builds.get_one(138421)
>>> print(b)
<Build #138421 state: failed>

Create new build

# using the url to sprm
>>> b1 = cl.builds.create_from_url(project_id=3806, srpm_url="http://example.com/my.src.rpm")
# or using project object
>>> b2 = p.create_build_from_url("http://example.com/my.src.rpm")
>>> print(map(str, [b1, b2]))
['<Build #138431 state: importing>', '<Build #138430 state: importing>']

# and using the file upload
>>> b3 = cl.builds.create_from_file(project_id=3806, file_path="/tmp/hello-2.8-1.fc20.src.rpm")
>>> b4 = p.create_build_from_file("/tmp/hello-2.8-1.fc20.src.rpm")

Cancel build

>>> b1.cancel()

Delete build

>>> b1.delete()