Upstream, downstream, different types of runners#

Depending where an event (e.g. pull request, push, etc.) is raised in our CI, different things will happen

event

location

runner type

comments

push/pull-request

simplecore-tools

self-hosted

triggers a build

pull request

any other layer repo

support

triggers a build in simplecore-tools and waits for completion

push

any other layer repo

cloud

triggers a build in simplecore-tools

If an event performs the action within the same repository we will speak of upstream. Is the action performed in another repository we call it downstream.

The different types of runners can be described like

self-hosted#

Our powerful cloud VMs to perform bitbake builds. Those include a shared cache for sstate, download and build artifacts.

  • the number of them is limited

  • jobs are queued by the first-come-first-served principal

support#

Small always-on cloud VMs to handle (potentially) long running downstream job. This helps us to monitor downstream jobs beyond the 6 hour limit (see Github timeouts).

  • the number of them is limited, so with many events in parallel it could take a moment before a job is picked up

  • jobs are queued by the first-come-first-served principal

cloud#

Cloud runners are provided by Github and can be spawned in an unlimited number, but they come with very limited hardware specification and have a strict 6 hour runtime limit.