tree d7400b7976f59f1a52c652872928e5a5bbb09373
parent d487b5854bf38c8b9466899c583a081ad3d59bd8
author Geoffrey Martin-Noble <gcmn@google.com> 1648164536 -0700
committer GitHub <noreply@github.com> 1648164536 -0700
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsBcBAABCAAQBQJiPP64CRBK7hj4Ov3rIwAAxAMIAH7r33UoVcpaKVuDAN2YoCnP
 Yc48Wdt5z6FB5hps9ljcf41XZbW988nzeMJfz5wfAMjfmq+/mfiopBXsWTRdyck1
 qOJxdIAyW2R9qnNBLjD4D0AwRPFb6UVm9vMYoGho4jSl0juiVZSEyIhAeg3RdFxR
 1g3NB2JEN3h2re9asEzE8dLJJ3qgcUYrAlc4Qb6zs0w03ux4uZ0K4tJmbHlE8InJ
 iqS/vzdEM4UrTRR8fKQ4T45MDWDb13Ppp78ifJUsvYdSsIr839IBOoxXciDlr2ZI
 81gtjz/gh/3c5wlkiQabR5Jdx8LU5RR3zbzIWHUNhGfHrMsIxkwIV1vT4dSeH8M=
 =pAiK
 -----END PGP SIGNATURE-----
 

Bootstrap and automatically update Buildkite pipelines (#8619)

* Bootstrap and automatically update Buildkite pipelines

This means that:
  1. postsubmit runs always use with the version of the pipeline
     configuration from that commit
  2. presubmit runs use  with the version of the pipeline configuration
     from that commit if the PR comes from the main repo. This
     limitation is for security reasons and is why this PR branch is in
     the main repo. It limits potentially bypassing our normal checks to
     people who already have write access to the repository. Suggestions
     for ways to do this that support third party forks but maintains
     this security are welcome.
  3. Pipelines that we need to register with Buildkite can all be
     checked in to source control and updated as part of the commit to
     the main branch.

This required modifications to the smooth-checkout plugin, which I am
upstreaming in
https://github.com/hasura/smooth-checkout-buildkite-plugin/pull/25.

This allows testing changes to the presubmit pipeline itself on
presubmit. Of course, it relies on the previous version of the pipeline
being sufficiently compatible that it can successfully bootstrap, but
that shouldn't be too hard.

We now have enough stuff going on here that I created `pipelines/` and
`scripts/` subdirectories. I did not move any of the legacy files (e.g.
samples.yml) to avoid breaking anything.

It's also looking like I should factor out some of the shared Buildkite
Python API usage, but I'd prefer to defer that till a later PR.

Combines work from obsolete PRs
https://github.com/google/iree/pull/8609 and
https://github.com/google/iree/pull/8606. I tried to have this broken
out into two PRs, but testing the presubmit pipeline in its current form
(as registered with Buildkite) doesn't work very well, which is why this
PR exists. It got all messed up because of the directory restructuring.
I can split that out into a separate PR if that's preferred.

* Lint

* Avoid slashes in keys, which are apparently not allowed

* Maybe avoiding reported issues with duplicate keys

* Actually fix step key conflicts