mirror of
https://github.com/microsoft/agent-framework.git
synced 2026-06-16 21:04:09 +08:00
b298113d15
* Fix missing id on function_call_output in Foundry Hosting The Foundry storage layer was rejecting responses with "ID cannot be null or empty (Parameter 'id')" because function_call_output items emitted by OutputConverter had no id on the wire. OutputItemFunctionToolCallOutput's public ctor only sets CallId and Output; Id is read-only and only the SDK's internal ctor populates it. OutputItemBuilder<T>.ApplyAutoStamps fills ResponseId and AgentReference but not Id, so the itemId passed to AddOutputItem<T>(itemId) was used only for event sequencing and the serialized item went out with id=null. Switch to stream.OutputItemFunctionCallOutput(callId, output), the SDK convenience method that uses the internal ctor and stamps the id. Add a regression test asserting the added/done events carry a non-empty matching Id. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * ci: free disk space and relocate NuGet cache on ubuntu runners The ubuntu-latest dotnet-build/test jobs were hitting No space left on device because the runner image only ships ~14 GB free on /. The full multi-TFM build plus the dotnet pack + console-app install-check exhausts that easily. Add a reusable composite action .github/actions/free-runner-disk-space that runs on Linux runners only and: * removes pre-installed toolchains we never use here (Android SDK, GHC/Haskell, CodeQL, PyPy, Ruby, Go, boost, vcpkg, etc.), prunes docker images, and disables swap (reclaims ~25-30 GB on /) * relocates the NuGet package cache to /mnt/nuget via NUGET_PACKAGES env, since /mnt has ~75 GB free on hosted runners Wire the action into the four ubuntu-touching jobs in dotnet-build-and-test.yml (dotnet-build, dotnet-test, dotnet-foundry-hosted-it, dotnet-test-functions). The action self-guards with runner.os == 'Linux' so the matrix legs that run on windows are unaffected. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --------- Co-authored-by: alliscode <25218250+alliscode@users.noreply.github.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
65 lines
2.2 KiB
YAML
65 lines
2.2 KiB
YAML
name: Free runner disk space
|
|
description: |
|
|
Reclaims disk space on GitHub-hosted Ubuntu runners by removing
|
|
pre-installed toolchains we do not use (Android SDK, GHC/Haskell,
|
|
CodeQL bundle), Docker images, and swap. Also relocates the
|
|
NuGet package cache to /mnt (which has ~75 GB free vs ~14 GB
|
|
on /). No-op on non-Linux runners.
|
|
|
|
runs:
|
|
using: composite
|
|
steps:
|
|
- name: Free disk space (Linux only)
|
|
if: runner.os == 'Linux'
|
|
shell: bash
|
|
run: |
|
|
set -euo pipefail
|
|
echo "::group::Disk usage before cleanup"
|
|
df -h /
|
|
echo "::endgroup::"
|
|
|
|
# Remove pre-installed toolchains we never use on this repo's
|
|
# dotnet/python jobs. These reclaim ~25-30 GB on ubuntu-latest.
|
|
sudo rm -rf \
|
|
/usr/local/lib/android \
|
|
/usr/share/dotnet/sdk/NuGetFallbackFolder \
|
|
/opt/ghc \
|
|
/usr/local/.ghcup \
|
|
/opt/hostedtoolcache/CodeQL \
|
|
/opt/hostedtoolcache/PyPy \
|
|
/opt/hostedtoolcache/Ruby \
|
|
/opt/hostedtoolcache/go \
|
|
/usr/local/share/boost \
|
|
/usr/local/share/powershell \
|
|
/usr/local/share/chromium \
|
|
/usr/local/share/vcpkg \
|
|
/usr/local/lib/heroku \
|
|
"${AGENT_TOOLSDIRECTORY:-/opt/hostedtoolcache}/PyPy" \
|
|
"${AGENT_TOOLSDIRECTORY:-/opt/hostedtoolcache}/Ruby" \
|
|
"${AGENT_TOOLSDIRECTORY:-/opt/hostedtoolcache}/go" || true
|
|
|
|
# Drop docker images shipped on the runner; jobs that need
|
|
# docker pull what they need fresh.
|
|
if command -v docker >/dev/null 2>&1; then
|
|
sudo docker image prune --all --force >/dev/null 2>&1 || true
|
|
fi
|
|
|
|
# Disable swap to free its backing file.
|
|
sudo swapoff -a || true
|
|
sudo rm -f /mnt/swapfile /swapfile || true
|
|
|
|
echo "::group::Disk usage after cleanup"
|
|
df -h /
|
|
echo "::endgroup::"
|
|
|
|
- name: Relocate NuGet package cache to /mnt (Linux only)
|
|
if: runner.os == 'Linux'
|
|
shell: bash
|
|
run: |
|
|
set -euo pipefail
|
|
sudo mkdir -p /mnt/nuget
|
|
sudo chown -R "$USER":"$USER" /mnt/nuget
|
|
echo "NUGET_PACKAGES=/mnt/nuget" >> "$GITHUB_ENV"
|
|
echo "Relocated NuGet package cache to /mnt/nuget"
|
|
df -h /mnt || true
|