From 8336b1d2d532a7d5507f91dc8c197cb8db9827d7 Mon Sep 17 00:00:00 2001 From: "origami74@gmail.com" Date: Thu, 26 Feb 2026 22:04:14 -0300 Subject: [PATCH] ci: expand integration matrix, add nextest JUnit reporting, workflow_dispatch --- .config/nextest.toml | 2 ++ .github/workflows/ci.yml | 64 ++++++++++++++++++++++++++++++++++++++-- 2 files changed, 64 insertions(+), 2 deletions(-) create mode 100644 .config/nextest.toml diff --git a/.config/nextest.toml b/.config/nextest.toml new file mode 100644 index 0000000..107f556 --- /dev/null +++ b/.config/nextest.toml @@ -0,0 +1,2 @@ +[profile.ci] +junit = { path = "junit.xml" } \ No newline at end of file diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 943e3a3..e4e09b1 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -4,6 +4,16 @@ on: push: branches: ["**"] pull_request: + workflow_dispatch: + inputs: + skip_integration: + description: "Skip integration tests" + type: boolean + default: false + +permissions: + checks: write + contents: read env: CARGO_TERM_COLOR: always @@ -68,7 +78,6 @@ jobs: name: Unit tests runs-on: ubuntu-latest needs: [build] - steps: - uses: actions/checkout@v4 @@ -86,8 +95,28 @@ jobs: restore-keys: | ${{ runner.os }}-cargo- + - name: Install cargo-nextest + uses: taiki-e/install-action@nextest + - name: Run unit tests - run: cargo test --all + run: cargo nextest run --all --profile ci + + - name: Publish test report (Checks tab) + uses: dorny/test-reporter@v2 + if: always() + with: + name: Unit Tests + path: target/nextest/ci/junit.xml + reporter: java-junit + fail-on-error: false + + - name: Publish test report (run summary) + uses: mikepenz/action-junit-report@v4 + if: always() + with: + report_paths: target/nextest/ci/junit.xml + check_name: Unit Tests Summary + fail_on_failure: false # ───────────────────────────────────────────────────────────────────────────── # Job 3 – Integration tests (static mesh + chaos simulation) @@ -102,6 +131,7 @@ jobs: name: Integration (${{ matrix.suite }}) runs-on: ubuntu-latest needs: [build, test] + if: ${{ !inputs.skip_integration }} strategy: fail-fast: false @@ -118,6 +148,36 @@ jobs: - suite: chaos-smoke-10 type: chaos scenario: smoke-10 + - suite: chaos-10 + type: chaos + scenario: chaos-10 + - suite: ethernet-mesh + type: chaos + scenario: ethernet-mesh + - suite: ethernet-only + type: chaos + scenario: ethernet-only + - suite: bottleneck-parent + type: chaos + scenario: bottleneck-parent + - suite: cost-avoidance + type: chaos + scenario: cost-avoidance + - suite: cost-mixed-7node + type: chaos + scenario: cost-mixed-7node + - suite: cost-reeval + type: chaos + scenario: cost-reeval + - suite: cost-stability + type: chaos + scenario: cost-stability + - suite: depth-vs-cost + type: chaos + scenario: depth-vs-cost + - suite: mixed-technology + type: chaos + scenario: mixed-technology steps: - uses: actions/checkout@v4