dotnet / dotnet/docker-tools

Allow build and test stages to be combined for official builds

Open
#479 7 comments 0 reactions 0 assignees View on GitHub
area-infrastructure
Dominant language
C#
Stars
181
Forks
67
Avg merge
2d 15h
Merged PRs (30d)
10

Description

When the building and testing of Docker images get split out into separate stages, it introduces overhead because the agents used in the test stage need to pull down the images that were built. The PR builds do not use separate stages because that would require access to secrets for accessing the ACR to store the images. Evidence shows that the PR builds run significantly faster as a result of this difference.

.NET Core
Multi-stage: 50 mins
Single stage: 30 mins

.NET Fx
Multi-stage: 2 hr 15 mins
Single stage: 1 hr 10 mins

There can be so much variability in the performance of pulling images. It's completely unpredictable. We're really at the mercy of this unpredictable performance, especially for the very large .NET Fx images.

The proposal is for this to be the default way in which builds are executed but still allow for a multi-stage to be optionally used. There are scenarios where it is still beneficial to run multiple stages, such as when pre-building images prior to release tic-toc and then testing/publishing them during the release.

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.