feat: add non-functional build timeout setting

This commit is contained in:
Jef Roosens 2023-05-02 11:46:19 +02:00
parent 8a76860363
commit ac3a89500b
Signed by untrusted user: Jef Roosens
GPG key ID: B75D4F293C7052DB
8 changed files with 34 additions and 21 deletions

View file

@ -6,7 +6,7 @@ import os
import build
// build locally builds the target with the given id.
fn build_target(conf Config, target_id int, force bool) ! {
fn build_target(conf Config, target_id int, force bool, timeout int) ! {
c := client.new(conf.address, conf.api_key)
target := c.get_target(target_id)!
@ -16,7 +16,7 @@ fn build_target(conf Config, target_id int, force bool) ! {
image_id := build.create_build_image(conf.base_image)!
println('Running build...')
res := build.build_target(conf.address, conf.api_key, image_id, target, force)!
res := build.build_target(conf.address, conf.api_key, image_id, target, force, timeout)!
println('Removing build image...')

View file

@ -232,6 +232,12 @@ pub fn cmd() cli.Command {
description: 'Architecture to schedule build for. Required when using -remote.'
flag: cli.FlagType.string
},
cli.Flag{
name: 'timeout'
description: 'After how many minutes to cancel the build. Only applies to local builds.'
flag: cli.FlagType.int
default_value: ['60']
},
]
execute: fn (cmd cli.Command) ! {
config_file := cmd.flags.get_string('config-file')!
@ -239,6 +245,7 @@ pub fn cmd() cli.Command {
remote := cmd.flags.get_bool('remote')!
force := cmd.flags.get_bool('force')!
timeout := cmd.flags.get_int('timeout')!
target_id := cmd.args[0].int()
if remote {
@ -251,7 +258,7 @@ pub fn cmd() cli.Command {
c := client.new(conf_.address, conf_.api_key)
c.queue_job(target_id, arch, force)!
} else {
build_target(conf_, target_id, force)!
build_target(conf_, target_id, force, timeout)!
}
}
},