dotnet / dotnet/aspnetcore

Consider streamlining the "Windows local development validation" pipeline

Open
#60,504 3 comments 0 reactions 0 assignees View on GitHub
area-infrastructure
Dominant language
C#
Stars
38.4k
Forks
10.9k
Avg merge
2d 10h
Merged PRs (30d)
281

Description

The "Windows local development validation" pipeline currently takes close to two hours to complete. We should consider if there are any high-cost+low-value validation that we can remove to make this pipeline more efficient.

For example, we might be able to optimize or remove the following steps:
* Build (Debug): ~10 min
* Run project template tests: ~50 minutes

### Additional context

The initial motivation for adding this pipeline was that our project template tests kept getting broken by changes that passed in CI but silently broke something because either:
* An already-quarantined tests got broken to a more severe degree, but this break was invisible
* A scenario was only used during local development (e.g., testing a project template manually) and it didn't get validated in CI at all

So, removing the project template test stage in this pipeline might seem to counteract that initial goal. However, we recently added another pipeline that runs a test script to create a project from a template and check that it builds successfully. This probably covers the majority of what we're trying to do, minus the actually running the template.

As an alternative to removing the project template test step entirely, we could either add a test filter [on the step](https://github.com/dotnet/aspnetcore/blob/e2151836317a0d027bf06680c59474086268c8af/.azure/pipelines/ci.yml#L656) to only test a small subset of project template tests, or we could add a new test script that runs the built project and does some basic validation on it.

Contributor guide

Open the contributing guide

Research direction

Start by reading the Windows local development validation pipeline in .azure/pipelines/ci.yml, especially the project template test step at line 656, and inspect the existing template-build validation pipeline mentioned in the issue. Determine whether a smaller test filter or basic run validation preserves the pipeline's purpose; done means a materially shorter pipeline with the intended template coverage still validated.

Written by the indexing model from the issue text.

Assessment

Tech stack
azure, csharp
Domain
ci-cd, performance, testing
Issue type
Refactor
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.