diff --git a/docs/mcp.md b/docs/mcp.md index 3f6d992..df16d61 100644 --- a/docs/mcp.md +++ b/docs/mcp.md @@ -136,7 +136,7 @@ Downloads a failed build's artifacts to a local directory and writes its whole l The files go under the [app's own directory](#where-the-files-go), not the operating system's temp directory, and are deleted after 24 hours. -A total of 50 MB is downloaded per build, at most 20 MB of any one file and at most 20 files, taking test reports, logs, approval output, screenshots and coverage before anything else, and smallest first within each of those. Anything left out is named with its size and the reason, so a report that was skipped is never mistaken for one that was never published. Jenkins reports no size for an artifact, so those are fetched under the per-file limit and stopped if they run past it. +A total of 250 MB is downloaded per build, at most 100 MB of any one file and at most 20 files, taking test reports, logs, approval output, screenshots and coverage before anything else, and smallest first within each of those. Anything left out is named with its size and the reason, so a report that was skipped is never mistaken for one that was never published. Jenkins reports no size for an artifact, so those are fetched under the per-file limit and stopped if they run past it. Bitbucket and Travis have no artifact API: Bitbucket does not expose a pipeline's artifacts, and Travis stores none of its own. For a build on either, the call answers with the log alone and says which service it could not ask, rather than reporting that the run published nothing. diff --git a/docs/mdsource/mcp.source.md b/docs/mdsource/mcp.source.md index b119dc3..b9733b2 100644 --- a/docs/mdsource/mcp.source.md +++ b/docs/mdsource/mcp.source.md @@ -129,7 +129,7 @@ Downloads a failed build's artifacts to a local directory and writes its whole l The files go under the [app's own directory](#where-the-files-go), not the operating system's temp directory, and are deleted after 24 hours. -A total of 50 MB is downloaded per build, at most 20 MB of any one file and at most 20 files, taking test reports, logs, approval output, screenshots and coverage before anything else, and smallest first within each of those. Anything left out is named with its size and the reason, so a report that was skipped is never mistaken for one that was never published. Jenkins reports no size for an artifact, so those are fetched under the per-file limit and stopped if they run past it. +A total of 250 MB is downloaded per build, at most 100 MB of any one file and at most 20 files, taking test reports, logs, approval output, screenshots and coverage before anything else, and smallest first within each of those. Anything left out is named with its size and the reason, so a report that was skipped is never mistaken for one that was never published. Jenkins reports no size for an artifact, so those are fetched under the per-file limit and stopped if they run past it. Bitbucket and Travis have no artifact API: Bitbucket does not expose a pipeline's artifacts, and Travis stores none of its own. For a build on either, the call answers with the log alone and says which service it could not ask, rather than reporting that the run published nothing. diff --git a/src/BuildMonitor.Core/Builds/ArtifactPlan.cs b/src/BuildMonitor.Core/Builds/ArtifactPlan.cs index bb4b7b3..388b622 100644 --- a/src/BuildMonitor.Core/Builds/ArtifactPlan.cs +++ b/src/BuildMonitor.Core/Builds/ArtifactPlan.cs @@ -12,16 +12,20 @@ record ArtifactPlan(ImmutableArray Take, ImmutableArray, so one file at its cap still leaves room for the reports + /// beside it. /// - public const long DefaultBudget = 50 * 1024 * 1024; + public const long DefaultBudget = 250 * 1024 * 1024; /// - /// The most one file may take. An artifact larger than this is nearly always a build output — - /// an installer, a container layer, a published binary — and reading it explains nothing, while - /// downloading it would spend the whole budget on one file. + /// The most one file may take. Wide enough for a zip of test results with their dumps and + /// screenshots, which a failing suite pushes into the tens of megabytes. An artifact larger + /// than this is nearly always a build output — an installer, a container layer, a published + /// binary — and reading it explains nothing, while downloading it would spend most of the + /// budget on one file. /// - public const long DefaultPerFile = 20 * 1024 * 1024; + public const long DefaultPerFile = 100 * 1024 * 1024; /// /// How many files at most. A wide matrix uploads one artifact per leg, and the twenty first diff --git a/src/BuildMonitor.Core/Model/ByteSize.cs b/src/BuildMonitor.Core/Model/ByteSize.cs index 3735be5..d005915 100644 --- a/src/BuildMonitor.Core/Model/ByteSize.cs +++ b/src/BuildMonitor.Core/Model/ByteSize.cs @@ -9,7 +9,7 @@ static class ByteSize /// /// One decimal place below ten of a unit and none above it, so a size reads at the precision it - /// was chosen at: a limit set at 20 MB is worth saying to the megabyte, and 2.1 GB against it + /// was chosen at: a limit set at 100 MB is worth saying to the megabyte, and 2.1 GB against it /// is worth the tenth that says how far past it went. /// public static string Human(long bytes) diff --git a/src/BuildMonitor.Tests/Launcher/TriagePromptTests.ArtifactsLeftBehindAreNamedWithTheirSize.verified.txt b/src/BuildMonitor.Tests/Launcher/TriagePromptTests.ArtifactsLeftBehindAreNamedWithTheirSize.verified.txt index 0613743..fb45eae 100644 --- a/src/BuildMonitor.Tests/Launcher/TriagePromptTests.ArtifactsLeftBehindAreNamedWithTheirSize.verified.txt +++ b/src/BuildMonitor.Tests/Launcher/TriagePromptTests.ArtifactsLeftBehindAreNamedWithTheirSize.verified.txt @@ -17,8 +17,8 @@ This directory is made for triage, outside the repository: never commit it. Unpa 2 artifacts left out: -- `runner-image.tar`: 2.1 GB, over the 20 MB limit for one file -- `dumps.zip`: 340 MB, over the 20 MB limit for one file +- `runner-image.tar`: 2.1 GB, over the 100 MB limit for one file +- `dumps.zip`: 340 MB, over the 100 MB limit for one file Fetch from the run's page if the log points at one. diff --git a/src/BuildMonitor.Tests/Launcher/TriagePromptTests.cs b/src/BuildMonitor.Tests/Launcher/TriagePromptTests.cs index c956e01..42cd9c0 100644 --- a/src/BuildMonitor.Tests/Launcher/TriagePromptTests.cs +++ b/src/BuildMonitor.Tests/Launcher/TriagePromptTests.cs @@ -227,8 +227,8 @@ public Task ArtifactsLeftBehindAreNamedWithTheirSize() => "/home/simon/.local/share/BuildMonitor/artifacts/Verify-412-3f9a1c02", ["log.txt"], [ - new("runner-image.tar", 2254857830, "2.1 GB, over the 20 MB limit for one file"), - new("dumps.zip", 356515840, "340 MB, over the 20 MB limit for one file") + new("runner-image.tar", 2254857830, "2.1 GB, over the 100 MB limit for one file"), + new("dumps.zip", 356515840, "340 MB, over the 100 MB limit for one file") ]), fix: true)); diff --git a/src/Directory.Build.props b/src/Directory.Build.props index b50d174..671593c 100644 --- a/src/Directory.Build.props +++ b/src/Directory.Build.props @@ -1,7 +1,7 @@ - 1.0.2 + 1.0.3 CI, Build, Monitor, Tray, MCP Cross platform build/CI monitor that runs in the system tray. enable diff --git a/src/Directory.Packages.props b/src/Directory.Packages.props index 2c2d912..e0625bf 100644 --- a/src/Directory.Packages.props +++ b/src/Directory.Packages.props @@ -25,7 +25,7 @@ - +