You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iggy.apache.org by lz...@apache.org on 2026/08/12 21:14:30 UTC

(iggy) branch dotnet-e2e-split-tfm created (now 1f66c149d)

This is an automated email from the ASF dual-hosted git repository.

lukaszzborek pushed a change to branch dotnet-e2e-split-tfm
in repository https://gitbox.apache.org/repos/asf/iggy.git


      at 1f66c149d ci(csharp): split e2e integration tests per target framework

This branch includes the following new commits:

     new 1f66c149d ci(csharp): split e2e integration tests per target framework

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



(iggy) 01/01: ci(csharp): split e2e integration tests per target framework

Posted by lz...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

lukaszzborek pushed a commit to branch dotnet-e2e-split-tfm
in repository https://gitbox.apache.org/repos/asf/iggy.git

commit 1f66c149d92d836256042095bc791b3f38d0a0ef
Author: Ɓukasz Zborek <lu...@gmail.com>
AuthorDate: Tue Aug 11 15:26:03 2026 +0200

    ci(csharp): split e2e integration tests per target framework
    
    Both TFM test hosts ran concurrently on one runner, each spawning
    3-node VSR clusters. The contention caused 30s consensus timeouts
    and retries. Encoding the framework in the task name gives each TFM
    its own matrix job with an isolated runner.
    
    Co-Authored-By: Claude Fable 5 <no...@anthropic.com>
---
 .github/actions/csharp-dotnet/pre-merge/action.yml | 19 ++++++++++++-------
 .github/config/components.yml                      |  2 +-
 .github/workflows/_test.yml                        |  2 +-
 3 files changed, 14 insertions(+), 9 deletions(-)

diff --git a/.github/actions/csharp-dotnet/pre-merge/action.yml b/.github/actions/csharp-dotnet/pre-merge/action.yml
index c4dc35bde..b8acbff81 100644
--- a/.github/actions/csharp-dotnet/pre-merge/action.yml
+++ b/.github/actions/csharp-dotnet/pre-merge/action.yml
@@ -21,7 +21,7 @@ description: .NET pre-merge testing github iggy actions
 
 inputs:
   task:
-    description: "Task to run (lint, test, build, e2e)"
+    description: "Task to run (lint, test, build, e2e-<tfm>)"
     required: true
 
 runs:
@@ -30,10 +30,12 @@ runs:
     - name: Setup .NET
       uses: actions/setup-dotnet@v5
       with:
-        dotnet-version: "10.0.x"
+        dotnet-version: |
+          8.0.x
+          10.0.x
 
     - name: Setup Rust with cache
-      if: inputs.task == 'test' || inputs.task == 'e2e'
+      if: inputs.task == 'test' || startsWith(inputs.task, 'e2e')
       uses: ./.github/actions/utils/setup-rust-with-cache
 
     - name: Restore dependencies
@@ -77,7 +79,7 @@ runs:
 
     - name: Build Iggy server Docker image
       id: docker_build
-      if: inputs.task == 'e2e'
+      if: startsWith(inputs.task, 'e2e')
       shell: bash
       run: |
         cargo build --locked --bin iggy-server --bin iggy
@@ -91,14 +93,17 @@ runs:
         echo "docker_image=iggy-server:test" >> "$GITHUB_OUTPUT"
 
     - name: Run integration tests
-      if: inputs.task == 'e2e'
+      if: startsWith(inputs.task, 'e2e')
       working-directory: foreign/csharp
       env:
         IGGY_SERVER_DOCKER_IMAGE: ${{ steps.docker_build.outputs.docker_image }}
         IGGY_TEST_LOGS_DIR: ./reports/container-logs
         IGGY_TEST_CLUSTER_NODES: "3"
+        IGGY_TASK: ${{ inputs.task }}
       run: |
+        # Task name carries the target framework: e2e-net8.0 -> net8.0
         dotnet test --project Iggy_SDK.Tests.Integration \
+          --framework "${IGGY_TASK#e2e-}" \
           --no-build \
           --verbosity normal \
           --coverage \
@@ -109,7 +114,7 @@ runs:
       shell: bash
 
     - name: Collect container logs
-      if: inputs.task == 'e2e' && always()
+      if: startsWith(inputs.task, 'e2e') && always()
       shell: bash
       run: |
         mkdir -p foreign/csharp/reports/container-logs
@@ -117,7 +122,7 @@ runs:
 
     - name: Upload Test Results
       uses: actions/upload-artifact@v7
-      if: inputs.task == 'e2e' && always()
+      if: startsWith(inputs.task, 'e2e') && always()
       with:
         name: dotnet-test-results-${{ inputs.task }}
         path: foreign/csharp/reports
diff --git a/.github/config/components.yml b/.github/config/components.yml
index 43cf56e07..3ddd7520b 100644
--- a/.github/config/components.yml
+++ b/.github/config/components.yml
@@ -285,7 +285,7 @@ components:
     paths:
       - "foreign/csharp/**"
       - "examples/csharp/**"
-    tasks: ["lint", "test", "build", "e2e"]
+    tasks: ["lint", "test", "build", "e2e-net8.0", "e2e-net10.0"]
 
   sdk-cpp:
     depends_on:
diff --git a/.github/workflows/_test.yml b/.github/workflows/_test.yml
index a2b6a61db..eb0483efb 100644
--- a/.github/workflows/_test.yml
+++ b/.github/workflows/_test.yml
@@ -196,7 +196,7 @@ jobs:
           override_pr: ${{ github.event.pull_request.number }}
 
       - name: Upload C# coverage to Codecov
-        if: inputs.component == 'sdk-csharp' && (inputs.task == 'test' || inputs.task == 'e2e')
+        if: inputs.component == 'sdk-csharp' && (inputs.task == 'test' || startsWith(inputs.task, 'e2e'))
         uses: codecov/codecov-action@v7.0.0
         with:
           token: ${{ secrets.CODECOV_TOKEN }}