Treatment simpleStep
cicd/naive::simpleStep
Configuration
⬡ dispatcher:
cicd/runners::CicdDispatchEngine
⬡ logger:
log/logger::Logger
Parameters
↳ var arch:
Option<Arch> = _
(work/resources/arch::Arch
)
↳ var commands:
Vec<Command>
(process/command::Command
)
↳ var cpu:
u32 = 500
↳ var description:
string = ""
↳ var github:
bool = false
↳ var github_project:
string = ""
↳ var github_sha:
string = ""
↳ var github_token:
string = ""
↳ var gitlab:
bool = false
↳ var gitlab_pipeline_id:
string = ""
↳ var gitlab_project_id:
string = ""
↳ var gitlab_ref:
string = ""
↳ var gitlab_root_url:
string = "https://gitlab.com/api/v4"
↳ var gitlab_sha:
string = ""
↳ var gitlab_token:
string = ""
↳ var image:
string
↳ var log_service_response:
bool = false
↳ var max_duration:
u32 = 3600
↳ var memory:
u32 = 500
↳ var name:
string
↳ var out_file:
Option<string> = _
↳ var out_storage:
Option<u32> = _
↳ var pull_secret:
Option<string> = _
↳ var report:
bool = true
↳ var service_containers:
Vec<ServiceContainer> = []
(work/resources::ServiceContainer
)
↳ var storage:
u32 = 5000
↳ var variables:
Option<StringMap> = _
(std/data/string_map::StringMap
)
Inputs
⇥ trigger:
Block<void>
Outputs
↦ completed:
Block<void>
↦ data:
Stream<byte>
↦ failed:
Block<void>
↦ finished:
Block<void>
↦ started:
Block<void>
Run a step on a container.
This treatment manages creation and run of a container and runs commands inside it.
The runner configuration values are:
cpu
: CPU amount requested for the worker, in millicores (1000
means one full CPU,500
half of it);memory
: memory requested for the worker, in megabytes;storage
: filesystem storage requested for the worker, in megabytes;max_duration
: maximum duration for which the worker will be effective, in seconds;arch
: hardware architecture the worker must have (should be none if nothing specific is required);service_containers
: list of containers to instanciate alongside main container.
The container gets a volume mounted in /mnt/data
(this volume size can be setup through out_storage
parameter), where out_file
can be written.
commands
are run, and if they all succeed, the out_file
is extracted and streamed through data
(out_file="a-file.tar"
meaning container wrote file "/mnt/data/a-file.tar"
).
This output is ignored if no out_file
is set.
The trigger
input signals the treatment to start, then:
started
: emitted when the step effectively starts;completed
: emitted when the step finished successfully;failed
: emitted if the step failed;finished
: emitted when the request finished, regardless of state.
The report
and github_*
/gitlab_*
values are made available to report status in Github Actions and GitLab CI.