Repository navigation
soak #29
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: soak | |
| # 长期观察:每夜以 600 秒跑浸泡/混沌套件(ubuntu + windows 双平台)。 | |
| # 覆盖重连竞速(Soak_ReconnectRacing_LongRun,含状态机转移合法性与会话编号线性化的 | |
| # 全程校验)、随机故障混沌与长流完整性。失败会通过 GitHub 通知提醒维护者。 | |
| # 手动触发:workflow_dispatch 可指定时长(秒数)。 | |
| on: | |
| schedule: | |
| - cron: '0 19 * * *' # UTC 19:00 = 北京时间 03:00 | |
| workflow_dispatch: | |
| inputs: | |
| seconds: | |
| description: '浸泡时长(秒)' | |
| required: false | |
| default: '600' | |
| seed: | |
| description: '可选随机 seed(重放动作序列)' | |
| required: false | |
| default: '' | |
| permissions: | |
| contents: read | |
| jobs: | |
| soak: | |
| name: soak (${{ matrix.os }}, ${{ matrix.tfm }}) | |
| runs-on: ${{ matrix.os }} | |
| timeout-minutes: 60 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| 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 | |
| - name: Setup .NET | |
| uses: actions/setup-dotnet@v4 | |
| with: | |
| dotnet-version: | | |
| 8.0.x | |
| 10.0.x | |
| - name: Build (Release) | |
| run: dotnet build StreamFrame.slnx -c Release | |
| - name: Soak tests (${{ matrix.tfm }}) | |
| env: | |
| STREAMFRAME_SOAK_SECONDS: ${{ inputs.seconds || '600' }} | |
| STREAMFRAME_SOAK_SEED: ${{ inputs.seed || '' }} | |
| 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 |