[release] Add Bazel release process to CI
- Dominant language
- SystemVerilog
- Stars
- 3.6k
- Forks
- 1.1k
- Avg merge
- 2d 22h
- Merged PRs (30d)
- 141
Description
#13894 and #13899 introduce a Bazel mechanism to create a release archive and post that archive to Github as an official release. We would like to use this feature in CI to create a regular release.
~~In our current CI setup, the artifacts to be included in the release are generated on separate runners. We don't currently have a good way to share these artifacts between agents in a way that Bazel recognizes. Since the release process will only run on master, we may be able to make use of the remote cache instead of the action cache. The only remaining issue is that due to #14695, we have sharded the remote cache using the OS-version since some of our CI runners have not yet been upgraded from Ubuntu-18.04 to Ubuntu-20.04. Therefore, we need to do the following before fully integrating the release mechanism:~~
Due to difficulties in gradually integrating the release mechanism, we will pursue a different integration strategy. To bypass the issues surrounding sharing build artifacts between machines, the release build will be performed from scratch on a nightly basis (initially) on a single ci-public machine. This removes the dependency on upgrading the ci runners to the same Ubuntu version and circumvents all the difficulty surrounding sharing artifacts between build stages. The revised plan is as follows:
- [x] Build all release artifacts with Bazel in CI (bitstream generation and splicing) (#14962)
- [x] Add a separate CI cron job pipeline to build the release artifacts from scratch (#16682, #16730)
- [ ] Replace the `release` directory with the [`bazel-release` package](https://github.com/lowRISC/bazel-release)
- [x] ~~Modify the `bazel run //release` rule to allow usage of the Github CLI without user interaction~~ (Due to limitations on authentication options for the CLI, we are currently planning to use the [`GithubReleases@1`](https://learn.microsoft.com/en-us/azure/devops/pipelines/tasks/reference/github-release-v1?view=azure-pipelines) Azure task instead)
- [ ] Authenticate Azure Pipelines to Github to allow Azure to create releases (#17123)
- [ ] Once the CI setup is stable, create official releases at the desired cadence
Contributor guide
Assessment
This issue has not been assessed yet.