Skip to content

ci(.github/workflows): install .NET 10 SDK alongside 8.0 for the engineer-bot build#542

Closed
eric-wang-1990 wants to merge 1 commit into
mainfrom
ci/dotnet-add-net10
Closed

ci(.github/workflows): install .NET 10 SDK alongside 8.0 for the engineer-bot build#542
eric-wang-1990 wants to merge 1 commit into
mainfrom
ci/dotnet-add-net10

Conversation

@eric-wang-1990

Copy link
Copy Markdown
Collaborator

Problem

The engineer-bot build fails on the peco-driver runner because the C# build graph includes net10.0 targets (the csharp/hiveserver2 submodule + multi-targeted projects), and dotnet restore evaluates all TFMs — but the runner only had net8 (#541's per-job install). ubuntu-latest has net10 pre-baked, which is why csharp.yml builds there.

Fix

Install both 8.0.x and 10.0.x to the writable DOTNET_INSTALL_DIR in engineer-bot.yaml + engineer-bot-followup.yml. (net10 SDK builds the lower TFMs; net8 runtime is kept for running net8-targeted tests.)

Runner prerequisite (already applied — not in this PR)

AlmaLinux 9's crypto policy disables SHA-1 signatures, which .NET strong-name signing requires (the hiveserver2 submodule grants InternalsVisibleTo with a public key, so unsigned builds fail with CS0281). Re-enabled on the runner via update-crypto-policies --set DEFAULT:SHA1 (minimal subpolicy; matches ubuntu-latest).

Verified directly on the runner: with net10 installed and SHA-1 allowed, the build clears the restore + signing errors that previously blocked it.

This completes the engineer-bot's runner enablement (after #539 python, #540 npm, #541 .NET-install).

This pull request and its description were written by Isaac.

…neer-bot build

The C# build graph includes net10.0 targets (the csharp/hiveserver2 submodule +
multi-targeted projects), and `dotnet restore` evaluates all TFMs — so a net8-only
SDK can't build it. ubuntu-latest has net10 pre-baked (csharp.yml works there);
the self-hosted peco-driver runner does not. Install both 8.0.x and 10.0.x to the
writable DOTNET_INSTALL_DIR.

Runner prerequisite (already applied, one-time, not in this PR): AlmaLinux's crypto
policy blocks SHA-1 signatures, which .NET strong-name signing requires (the
hiveserver2 submodule grants keyed InternalsVisibleTo, so unsigned builds fail) —
re-enabled via `update-crypto-policies --set DEFAULT:SHA1`.

Co-authored-by: Isaac
@eric-wang-1990

Copy link
Copy Markdown
Collaborator Author

Not needed — net10 is now provisioned on the peco-driver VM (in /usr/share/dotnet, like ubuntu-latest), so plain setup-dotnet finds it. Reverting the .NET workflow patches instead (single managed VM, moving to a public runner later).

@eric-wang-1990
eric-wang-1990 deleted the ci/dotnet-add-net10 branch June 22, 2026 06:23
eric-wang-1990 added a commit that referenced this pull request Jun 22, 2026
…n the runner) (#543)

Reverts the `DOTNET_INSTALL_DIR` redirect from #541 — `setup-dotnet`
goes back to plain `dotnet-version: '8.0.x'` (matching `csharp.yml`).

## Why now
The peco-driver VM (single, managed, temporary — moving to a public
runner later) has been **provisioned to mimic `ubuntu-latest`**:
- **net8 (8.0.422) + net10 (10.0.301)** installed in
`/usr/share/dotnet`, owned by the runner user, `dotnet` on PATH.
- **SHA-1 signatures re-enabled** (`update-crypto-policies --set
DEFAULT:SHA1`) for .NET strong-name signing.

So plain `setup-dotnet` finds the system net8, and the build's net10
targets resolve — no workflow patch needed. This keeps the bot workflows
standard, so nothing changes when the runner moves to a public one.
(#542's per-job net10 install was closed in favor of this.)

Validated on the runner: with net8+net10 present and SHA-1 allowed, the
build clears the restore + signing errors. The full red→green is
confirmed by re-running the engineer-bot on a clean checkout.

This pull request and its description were written by Isaac.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant