The first rehearsal of the shared release workflow (v1.0.1-beta.2, run 38053540124) failed in the Release build with NETSDK1094: gclo.csproj enabled PublishReadyToRun and PublishTrimmed for every non-Debug configuration, so a plain dotnet build -c Release needed the crossgen pack, which only a restore made with that property downloads. The shared workflow restores once (no configuration) and then builds Release, and a clean runner has no cached pack.
Both properties are now publish-only ('$(_IsPublishing)' == 'true'), so the publish step's own restore fetches the pack and a Release build needs nothing extra. The published app is unchanged: ReadyToRun still applies at publish, and the shared workflow still passes -p:PublishTrimmed=false as before.
With NUGET_PACKAGES pointed at an empty directory, the shared workflow's exact sequence: dotnet restore gclo.slnx -p:Platform=x64 --locked-mode, dotnet build gclo.slnx -c Release -p:Platform=x64 -warnaserror --no-restore, dotnet test gclo.Cli.Tests -c Release --no-build, then the app and CLI publishes with -p:RestoreLockedMode=true. Results in the PR comments.
Next rehearsal: v1.0.1-beta.3 (the beta.2 tag is spent; no release was created).
## What
The first rehearsal of the shared release workflow (`v1.0.1-beta.2`, run 38053540124) failed in the Release build with NETSDK1094: `gclo.csproj` enabled `PublishReadyToRun` and `PublishTrimmed` for every non-Debug configuration, so a plain `dotnet build -c Release` needed the crossgen pack, which only a restore made with that property downloads. The shared workflow restores once (no configuration) and then builds Release, and a clean runner has no cached pack.
Both properties are now publish-only (`'$(_IsPublishing)' == 'true'`), so the publish step's own restore fetches the pack and a Release build needs nothing extra. The published app is unchanged: ReadyToRun still applies at publish, and the shared workflow still passes `-p:PublishTrimmed=false` as before.
Closes #78 (part of #62; blocks #67)
## How it was tested
- With `NUGET_PACKAGES` pointed at an empty directory, the shared workflow's exact sequence: `dotnet restore gclo.slnx -p:Platform=x64 --locked-mode`, `dotnet build gclo.slnx -c Release -p:Platform=x64 -warnaserror --no-restore`, `dotnet test gclo.Cli.Tests -c Release --no-build`, then the app and CLI publishes with `-p:RestoreLockedMode=true`. Results in the PR comments.
- Next rehearsal: `v1.0.1-beta.3` (the beta.2 tag is spent; no release was created).
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
What
The first rehearsal of the shared release workflow (
v1.0.1-beta.2, run 38053540124) failed in the Release build with NETSDK1094:gclo.csprojenabledPublishReadyToRunandPublishTrimmedfor every non-Debug configuration, so a plaindotnet build -c Releaseneeded the crossgen pack, which only a restore made with that property downloads. The shared workflow restores once (no configuration) and then builds Release, and a clean runner has no cached pack.Both properties are now publish-only (
'$(_IsPublishing)' == 'true'), so the publish step's own restore fetches the pack and a Release build needs nothing extra. The published app is unchanged: ReadyToRun still applies at publish, and the shared workflow still passes-p:PublishTrimmed=falseas before.Closes #78 (part of #62; blocks #67)
How it was tested
NUGET_PACKAGESpointed at an empty directory, the shared workflow's exact sequence:dotnet restore gclo.slnx -p:Platform=x64 --locked-mode,dotnet build gclo.slnx -c Release -p:Platform=x64 -warnaserror --no-restore,dotnet test gclo.Cli.Tests -c Release --no-build, then the app and CLI publishes with-p:RestoreLockedMode=true. Results in the PR comments.v1.0.1-beta.3(the beta.2 tag is spent; no release was created).🤖 Generated with Claude Code
Clean-cache replay of the shared workflow's sequence (
NUGET_PACKAGES= empty directory), on this branch: