Azure / Azure/azure-functions-core-tools

Build agent keeps running out of space

Open
#2,330 1 comment 0 reactions 0 assignees View on GitHub
area: engineering P1
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.