dotnet / dotnet/docker-tools

Define isolated Auto Builder subscriptions for buildtools-prereqs repo

Open
#1,210 1 comment 0 reactions 0 assignees View on GitHub
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.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.