diff --git a/.github/workflows/soak.yml b/.github/workflows/soak.yml index 37c8b45..8c7d350 100644 --- a/.github/workflows/soak.yml +++ b/.github/workflows/soak.yml @@ -3,7 +3,7 @@ name: soak # 长期观察:每夜以 600 秒跑浸泡/混沌套件(ubuntu + windows 双平台)。 # 覆盖重连竞速(Soak_ReconnectRacing_LongRun,含状态机转移合法性与会话编号线性化的 # 全程校验)、随机故障混沌与长流完整性。失败会通过 GitHub 通知提醒维护者。 -# 手动触发:workflow_dispatch 可指定时长(分钟数)。 +# 手动触发:workflow_dispatch 可指定时长(秒数)。 on: schedule: @@ -20,13 +20,23 @@ permissions: jobs: soak: - name: soak (${{ matrix.os }}) + name: soak (${{ matrix.os }}, ${{ matrix.tfm }}) runs-on: ${{ matrix.os }} timeout-minutes: 60 strategy: fail-fast: false matrix: - os: [ubuntu-latest, windows-latest] + include: + - os: ubuntu-latest + tfm: net8.0 + - os: ubuntu-latest + tfm: net10.0 + - os: windows-latest + tfm: net8.0 + - os: windows-latest + tfm: net10.0 + - os: windows-latest + tfm: net48 steps: - uses: actions/checkout@v4 @@ -41,9 +51,21 @@ jobs: - name: Build (Release) run: dotnet build StreamFrame.slnx -c Release - - name: Soak tests + - name: Soak tests (${{ matrix.tfm }}) env: STREAMFRAME_SOAK_SECONDS: ${{ inputs.seconds || '600' }} run: >- dotnet test test/StreamFrame.Tests/StreamFrame.Tests.csproj -c Release --no-build + -f ${{ matrix.tfm }} --filter "FullyQualifiedName~Soak" + --logger "console;verbosity=detailed" + --logger "trx;LogFileName=soak-${{ matrix.os }}-${{ matrix.tfm }}.trx" + --results-directory "TestResults/${{ matrix.os }}/${{ matrix.tfm }}" + + - name: Upload soak results (${{ matrix.tfm }}) + if: always() + uses: actions/upload-artifact@v4 + with: + name: soak-${{ matrix.os }}-${{ matrix.tfm }}-${{ github.run_id }}-${{ github.run_attempt }} + path: TestResults/${{ matrix.os }}/${{ matrix.tfm }}/ + retention-days: 14 diff --git a/CHANGELOG.md b/CHANGELOG.md index f820991..e7d39ed 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,8 +5,8 @@ ## [Unreleased] -### 变更 -- 暂无 +### 修复 +- **Soak 目标矩阵([#66](https://github.com/CSJ608/StreamFrame/issues/66))**:显式选择 Ubuntu net8.0/net10.0、Windows net8.0/net10.0/net48,避免 Ubuntu 启动 .NET Framework 测试;job 名、详细日志与始终尝试上传的 TRX 产物按 OS/TFM 区分,测试断言失败继续使 job 失败。普通 CI 必需检查名不变。 ## [2.6.0] - 2026-08-29