llvmbot monitor: Add Libcxx buildkite bots
This adds the 6 libcxx buildkite bots to the status page.
These bots build pre-commit changes from Phabricator
and scheduled post commit builds of the main llvm branch.
For this page we will only be showing the status of the last
post commit build. If there's something wrong with pre-commit
builds that isn't the changes themselves, libcxx maintainers
can ping us.
To get this status we're using the buildkite API
(https://buildkite.com/docs/apis/rest-api) via the pybuildkite
module (https://pypi.org/project/pybuildkite/).
Although this is a fairly thin wrapper around requests I think
it'll insulate us some from future API changes. Plus it's not
difficult to install, the main dependency is requests itself.
To authenticate we are using a token I have generated from my
buildkite account. Any account that has been made a member of
the llvm-project organisation can generate a token to use.
This token should be placed in a file ~/.buildkite_token
for the script to access it. We're making the assumption
that the host machine is only accessible to users who would
be able to generate their own tokens anyway so having it on disk
isn't a big deal.
For more info see:
https://linaro.atlassian.net/wiki/spaces/TCWG/pages/22405546190/Buildkite+Bot+Maintenance
If the script cannot find it or the file is empty, it will
just carry on and show buildbot status only.
I have copied the info schema from the buildbot status values
for the most part. If you set the "name" of a section to
"Buildkite" it will be treated as such.
I have added a "valid" key in the buildkite info so we can
differentiate between having no API access, and having API
access but not finding any build info.
Valid empty entry means we don't have access, empty and not
valid means we failed to read the status.
Each builder listed for buildkite isn't a builder but a job
that an agent will pick up. In our case, the Arm jobs from
the libcxx build.
(the same way that the Armv7 buildbots are served by multiple
agents)
Note that the link in the "Bot" column requires a buildkite
login and links to the actual agent that ran the job.
"Build" links will always point to the same build for all
bots but each one will open the specific section for that
configuration.
Change-Id: Icdc02305551cd8a585e06f33bce2fb7386063daf
4 files changed