fix(ci): provision TestClient runtime (#1)
This commit is contained in:
@@ -21,7 +21,9 @@ jobs:
|
|||||||
- name: Install .NET SDK
|
- name: Install .NET SDK
|
||||||
uses: actions/setup-dotnet@67a3573c9a986a3f9c594539f4ab511d57bb3ce9 # v4.3.1
|
uses: actions/setup-dotnet@67a3573c9a986a3f9c594539f4ab511d57bb3ce9 # v4.3.1
|
||||||
with:
|
with:
|
||||||
dotnet-version: 10.0.301
|
dotnet-version: |
|
||||||
|
8.0.128
|
||||||
|
10.0.301
|
||||||
|
|
||||||
- name: Restore locked dependencies
|
- name: Restore locked dependencies
|
||||||
run: dotnet restore Rendezvous.slnx --locked-mode
|
run: dotnet restore Rendezvous.slnx --locked-mode
|
||||||
@@ -127,7 +129,9 @@ jobs:
|
|||||||
- name: Install .NET SDK
|
- name: Install .NET SDK
|
||||||
uses: actions/setup-dotnet@67a3573c9a986a3f9c594539f4ab511d57bb3ce9 # v4.3.1
|
uses: actions/setup-dotnet@67a3573c9a986a3f9c594539f4ab511d57bb3ce9 # v4.3.1
|
||||||
with:
|
with:
|
||||||
dotnet-version: 10.0.301
|
dotnet-version: |
|
||||||
|
8.0.128
|
||||||
|
10.0.301
|
||||||
|
|
||||||
- name: Build deployment diagnostic
|
- name: Build deployment diagnostic
|
||||||
run: |
|
run: |
|
||||||
|
|||||||
@@ -20,10 +20,12 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
|
|
||||||
- name: Install pinned .NET SDK
|
- name: Install pinned .NET SDKs
|
||||||
uses: actions/setup-dotnet@67a3573c9a986a3f9c594539f4ab511d57bb3ce9 # v4.3.1
|
uses: actions/setup-dotnet@67a3573c9a986a3f9c594539f4ab511d57bb3ce9 # v4.3.1
|
||||||
with:
|
with:
|
||||||
dotnet-version: 10.0.301
|
dotnet-version: |
|
||||||
|
8.0.128
|
||||||
|
10.0.301
|
||||||
|
|
||||||
- name: Install pinned Buildx and BuildKit
|
- name: Install pinned Buildx and BuildKit
|
||||||
uses: docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435 # v3.11.1
|
uses: docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435 # v3.11.1
|
||||||
|
|||||||
@@ -134,8 +134,10 @@ external-network procedure are in
|
|||||||
|
|
||||||
## Development
|
## Development
|
||||||
|
|
||||||
The repository pins .NET SDK 10.0.301. From a clean clone, run the same gates as
|
The repository pins .NET SDK 10.0.301. The full process-test gate also requires
|
||||||
CI from the repository root:
|
the .NET 8 runtime because the public TestClient deliberately targets `net8.0`;
|
||||||
|
CI installs SDK 8.0.128 to supply the pinned 8.0.28 runtime. From a clean clone,
|
||||||
|
run the same gates as CI from the repository root:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
dotnet restore Rendezvous.slnx --locked-mode
|
dotnet restore Rendezvous.slnx --locked-mode
|
||||||
|
|||||||
@@ -29,6 +29,8 @@ engine, transport, or server dependency therefore fails the normal test gate.
|
|||||||
## Supported toolchain
|
## Supported toolchain
|
||||||
|
|
||||||
- Build SDK: .NET SDK 10.0.301, pinned by `global.json`.
|
- Build SDK: .NET SDK 10.0.301, pinned by `global.json`.
|
||||||
|
- Verification runtime: .NET SDK 8.0.128 supplies the pinned .NET 8.0.28
|
||||||
|
runtime used by TestClient process tests and release verification.
|
||||||
- Server runtime: .NET 10 LTS.
|
- Server runtime: .NET 10 LTS.
|
||||||
- Client/contracts compatibility target: .NET Standard 2.1, consumable by the
|
- Client/contracts compatibility target: .NET Standard 2.1, consumable by the
|
||||||
.NET 8-or-later runtime used by current Godot 4 C# projects.
|
.NET 8-or-later runtime used by current Godot 4 C# projects.
|
||||||
|
|||||||
@@ -1,11 +1,14 @@
|
|||||||
# syntax=docker/dockerfile:1.7@sha256:a57df69d0ea827fb7266491f2813635de6f17269be881f696fbfdf2d83dda33e
|
# syntax=docker/dockerfile:1.7@sha256:a57df69d0ea827fb7266491f2813635de6f17269be881f696fbfdf2d83dda33e
|
||||||
FROM python:3.12.11-slim-bookworm@sha256:c00fc7b44d844b6da22861ec24af43968a5200eac4ec607b4725d585165d6b49 AS release-python
|
FROM python:3.12.11-slim-bookworm@sha256:c00fc7b44d844b6da22861ec24af43968a5200eac4ec607b4725d585165d6b49 AS release-python
|
||||||
FROM ghcr.io/jqlang/jq:1.8.1@sha256:95de8f005ca027686a1ca3b0853e2bb219062438015862816159f3f25a4d4230 AS release-jq
|
FROM ghcr.io/jqlang/jq:1.8.1@sha256:95de8f005ca027686a1ca3b0853e2bb219062438015862816159f3f25a4d4230 AS release-jq
|
||||||
|
FROM mcr.microsoft.com/dotnet/runtime:8.0.28-noble@sha256:19a311642eb7ee9c985bd71b9e5618123879df4e8d948f7388a41b0ee4788e25 AS dotnet-runtime-8
|
||||||
|
|
||||||
FROM mcr.microsoft.com/dotnet/sdk:10.0.301-noble@sha256:ea8bde36c11b6e7eec2656d0e59101d4462f6bd630730f2c8201ed0572b295d5 AS release-builder
|
FROM mcr.microsoft.com/dotnet/sdk:10.0.301-noble@sha256:ea8bde36c11b6e7eec2656d0e59101d4462f6bd630730f2c8201ed0572b295d5 AS release-builder
|
||||||
COPY --from=release-python /usr/local/ /usr/local/
|
COPY --from=release-python /usr/local/ /usr/local/
|
||||||
COPY --from=release-jq /jq /usr/local/bin/jq
|
COPY --from=release-jq /jq /usr/local/bin/jq
|
||||||
|
COPY --from=dotnet-runtime-8 /usr/share/dotnet/shared/Microsoft.NETCore.App/8.0.28/ /usr/share/dotnet/shared/Microsoft.NETCore.App/8.0.28/
|
||||||
RUN dotnet --version \
|
RUN dotnet --version \
|
||||||
|
&& dotnet --list-runtimes \
|
||||||
&& python3 --version \
|
&& python3 --version \
|
||||||
&& git --version \
|
&& git --version \
|
||||||
&& tar --version \
|
&& tar --version \
|
||||||
|
|||||||
@@ -149,6 +149,21 @@ public sealed class ReleaseCompatibilityTests
|
|||||||
Assert.Contains("<PackageReference Remove=\"FinalFactory.Rendezvous.Contracts\" />", realConsumerGate, StringComparison.Ordinal);
|
Assert.Contains("<PackageReference Remove=\"FinalFactory.Rendezvous.Contracts\" />", realConsumerGate, StringComparison.Ordinal);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void AutomationProvidesNet8RuntimeForProcessVerification()
|
||||||
|
{
|
||||||
|
string root = FindRepositoryRoot();
|
||||||
|
string qualityWorkflow = File.ReadAllText(Path.Combine(root, ".gitea/workflows/ci.yml"));
|
||||||
|
Assert.Equal(2, qualityWorkflow.Split("8.0.128", StringSplitOptions.None).Length - 1);
|
||||||
|
|
||||||
|
string releaseWorkflow = File.ReadAllText(Path.Combine(root, ".gitea/workflows/release.yml"));
|
||||||
|
Assert.Contains("8.0.128", releaseWorkflow, StringComparison.Ordinal);
|
||||||
|
|
||||||
|
string releaseBuilder = File.ReadAllText(Path.Combine(root, "eng/release-builder.Dockerfile"));
|
||||||
|
Assert.Contains("runtime:8.0.28-noble@sha256:", releaseBuilder, StringComparison.Ordinal);
|
||||||
|
Assert.Contains("Microsoft.NETCore.App/8.0.28", releaseBuilder, StringComparison.Ordinal);
|
||||||
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public void ServerSourceManifestIsCompleteSortedAndDeterministic()
|
public void ServerSourceManifestIsCompleteSortedAndDeterministic()
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user