Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Nicer job names -- prefix with system and sort #17

Open
wants to merge 4 commits into
base: main
Choose a base branch
from

Conversation

brprice
Copy link

@brprice brprice commented Jan 17, 2023

(This is somewhat of an RFC -- see end of this message. We have been using this in CI for months with no problems.)

Motivation: we have CI set up to test on multiple architectures, with many jobs per architecture. This leads to two annoyances for humans looking at the buildkite webpages. Firstly, there are multiple jobs with the same name and if only one of them fails it can be difficult to work out which architecture was the problem. Secondly they are ordered rather strangely (I think depending on some nix internals), making it difficult to eyeball progress, or find the same job on another architecture.

Solution: we add a prefix to the job names detailing the system, and sort all jobs by name. We also have a list of exceptions which we do not prefix, which we use for a required meta-job which just depends on everything else, and is hooked up to github's status integration (since we don't care what system this runs on).

(Potential) todos if some PRs along these lines is of interest:

This clarifies what each step is in the case of running CI on multiple
architectures, by showing "x86_64-linux:<job>" and
"aarch64-darwin:<job>" rather than "<job>" and "<job>".

UI note: unfortunately since buildkite truncates long names and this commit
does make names longer, this can make the default display harder to
read. One can work around this with some custom styling (how to use this
will be browser dependent):

  .build-header > .build-panel .build-pipeline-job,
  .build-header > .build-panel .build-pipeline-job > .build-pipeline-job-content > .truncate {
    max-width: max-content !important;
  }
This groups together jobs by system (since the system is a prefix of the
job name), and enforces a clear, predictable order of the jobs.
Since the system does not particularly matter for this job (it is a
trivial job which depends on everything else, as an aggregate "did
anything fail"), it is silly to have a system prefix.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant