Define isolated Auto Builder subscriptions for buildtools-prereqs repo
- Dominant language
- C#
- Stars
- 181
- Forks
- 67
- Avg merge
- 2d 15h
- Merged PRs (30d)
- 10
Description
The [Auto Builder subscription](https://github.com/dotnet/docker-tools/blob/c677860a1adc513d363d806688981acbb7ccee49/eng/check-base-image-subscriptions-buildtools.json) for the [dotnet/dotnet-buildtools-prereqs-docker](https://github.com/dotnet/dotnet-buildtools-prereqs-docker) is currently configured such that it handles updates for all Dockerfiles in the repo. This can cause a bottleneck when issues occur that may prevent images for other unaffected distros from getting published. For example, let's say that both Ubuntu and Mariner have base image updates that Auto Builder kicks off a build for. The build of the Ubuntu Dockerfiles happen to fail to some misconfiguration. But the Mariner Dockerfiles are unaffected and all pass their builds. This prevents Mariner from being updated until the Ubuntu issue is fixed.
The repo is already configured with OS-specific sub-manifests ([example](https://github.com/dotnet/dotnet-buildtools-prereqs-docker/blob/0ee595b95f41d06e4226002b98bccc163f61416e/src/cbl-mariner/manifest.json)). So a way to help mitigate issues like this is to update the subscription to target those sub-manifests instead of the [main manifest](https://github.com/dotnet/docker-tools/blob/c677860a1adc513d363d806688981acbb7ccee49/eng/check-base-image-subscriptions-buildtools.json#L7). Then the pipeline being targeted in the subscription can also be updated to the OS-specific pipeline. Having distinct pipelines is an important aspect of this since the Auto Builder logic bases its retry count on a per-pipeline basis. So if the pipeline fails to run 3 times in a row, it stops trying anymore. This would allow each OS to be handled independently wrt Auto Builder.
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.