Azure / Azure/azure-functions-core-tools
Build agent keeps running out of space
- Dominant language
- C#
- Stars
- 1.5k
- Forks
- 498
- Avg merge
- 5d 4h
- Merged PRs (30d)
- 15
Description
As additional artifacts (MSIs, NuGet packages) are added, and the size of the language workers grows, builds have been failing due to the build agent running out of space. Although ad-hoc adjustments get the build working again (reordering build steps, reducing language worker size), a more permanent solution to avoid this becoming a chronic problem (or reaching the point where current methods to stay within build agent space limits no longer work.)
Currently, the core tools build process consists of running the contents of [/build](https://github.com/Azure/azure-functions-core-tools/tree/dev/build) as a single-job pipeline on Azure DevOps, or locally. This program also tests, signs, and packs the artifacts, depending on supplied arguments.
A refactored build pipeline should:
- [ ] Run tests _before_ publish/pack/sign, and don't proceed if the tests fail.
- [ ] Have each artifact-generating step clean up after itself, rather than at the end. Artifacts can be published as they're created using the API.
- [ ] Have different platform targeted builds run on matching platform agents (ex. Linux builds on a Linux agent)
- [ ] Platform-agnostic tests run on the Windows agent only
- [ ] Platform-specific tests run on their specific platform agents
- [ ] Handle the pack notation used by [azure-functions-host](https://github.com/azure/azure-functions-host)
Contributor guide
Research direction
Start by reading the contents of /build and the Azure DevOps single-job pipeline, then run the current build locally with its supplied arguments. Map the test, publish, sign, and pack steps and their artifact cleanup. Done means the pipeline separates platform work onto matching agents, tests before packaging, cleans artifacts incrementally, and handles the azure-functions-host pack notation.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- azure, csharp
- Domain
- build-system, ci-cd, devops
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100