From 8792cb23f9c5e8da2426cfda8eab19e1cb9acbcb Mon Sep 17 00:00:00 2001 From: "Empting Eelco (ETAS-ECM/XPC-Fe2)" Date: Wed, 25 Feb 2026 07:23:48 +0000 Subject: [PATCH 1/5] Show smoke test in test reports --- tests/integration/smoke/smoke.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/tests/integration/smoke/smoke.py b/tests/integration/smoke/smoke.py index 75fd6e5b..710ffac3 100644 --- a/tests/integration/smoke/smoke.py +++ b/tests/integration/smoke/smoke.py @@ -16,9 +16,15 @@ format_logs, ) from pathlib import Path +from attribute_plugin import add_test_properties - +@add_test_properties( + partially_verifies=[], + test_type="interface-test", + derivation_technique="explorative-testing", +) def test_smoke(): + """Smoke test for the launch manager daemon.""" code, stdout, stderr = get_common_interface().run_until_file_deployed( "src/launch_manager_daemon/launch_manager" ) From b33f7fa06dcd8db4d72ac237155d3fac5c887a82 Mon Sep 17 00:00:00 2001 From: "Empting Eelco (ETAS-ECM/XPC-Fe2)" Date: Wed, 25 Feb 2026 07:27:19 +0000 Subject: [PATCH 2/5] Fix formatting --- tests/integration/smoke/smoke.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/tests/integration/smoke/smoke.py b/tests/integration/smoke/smoke.py index 710ffac3..923634aa 100644 --- a/tests/integration/smoke/smoke.py +++ b/tests/integration/smoke/smoke.py @@ -18,10 +18,11 @@ from pathlib import Path from attribute_plugin import add_test_properties + @add_test_properties( - partially_verifies=[], - test_type="interface-test", - derivation_technique="explorative-testing", + partially_verifies=[], + test_type="interface-test", + derivation_technique="explorative-testing", ) def test_smoke(): """Smoke test for the launch manager daemon.""" From 688abc59182a3a2f5195afb013b825054db88134 Mon Sep 17 00:00:00 2001 From: "Empting Eelco (ETAS-ECM/XPC-Fe2)" Date: Wed, 25 Feb 2026 08:37:11 +0100 Subject: [PATCH 3/5] Make failing test fail workflow --- .github/workflows/test_and_docs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test_and_docs.yml b/.github/workflows/test_and_docs.yml index d413f8de..aaa975d1 100644 --- a/.github/workflows/test_and_docs.yml +++ b/.github/workflows/test_and_docs.yml @@ -48,7 +48,7 @@ jobs: upload-name: 'bazel-testlogs' build-docs: needs: run-tests - if: ${{ always() }} + if: ${{ needs.run-tests.result == 'success' }} uses: eclipse-score/cicd-workflows/.github/workflows/docs.yml@main permissions: contents: write From 0552bc0d258e6bcd5b0fda5fa6382b8af9c9da51 Mon Sep 17 00:00:00 2001 From: "Empting Eelco (ETAS-ECM/XPC-Fe2)" Date: Wed, 25 Feb 2026 09:57:57 +0100 Subject: [PATCH 4/5] Modify workflow --- .github/workflows/code_coverage.yml | 47 ++++++++++++++++++++++++++--- .github/workflows/test_and_docs.yml | 41 +++++++++++++------------ 2 files changed, 64 insertions(+), 24 deletions(-) diff --git a/.github/workflows/code_coverage.yml b/.github/workflows/code_coverage.yml index 26b20125..bae4853b 100644 --- a/.github/workflows/code_coverage.yml +++ b/.github/workflows/code_coverage.yml @@ -29,10 +29,14 @@ jobs: - name: Checkout Repository uses: actions/checkout@v6 - - name: Install lcov - run: | - sudo apt-get update - sudo apt-get install -y lcov + - name: Install dependencies + uses: eclipse-score/apt-install@main + with: + packages: | + lcov + fakechroot + cache: false + - name: Setup Bazel uses: bazel-contrib/setup-bazel@0.18.0 @@ -48,7 +52,7 @@ jobs: --test_output=errors \ --nocache_test_results \ --config=x86_64-linux \ - //src/... + //src/... //tests/... - name: Generate HTML Coverage Report shell: bash @@ -66,6 +70,16 @@ jobs: name: ${{ github.event.repository.name }}_cpp_coverage_report path: cpp_coverage/ retention-days: 10 + + - name: Upload test logs + if: always() + uses: actions/upload-artifact@v4 + with: + name: bazel-testlogs-cpp + path: | + bazel-testlogs/**/test.xml + bazel-testlogs/**/test.log + retention-days: 10 rust: runs-on: ubuntu-latest steps: @@ -104,3 +118,26 @@ jobs: name: ${{ github.event.repository.name }}_rust_coverage_report path: ${{ env.COVERAGE_DIR }} retention-days: 10 + + - name: Upload test logs + if: always() + uses: actions/upload-artifact@v4 + with: + name: bazel-testlogs-rust + path: | + bazel-testlogs/**/test.xml + bazel-testlogs/**/test.log + retention-days: 10 + + merge-testlogs: + needs: [cpp, rust] + if: always() + runs-on: ubuntu-latest + steps: + - name: Merge test log artifacts + uses: actions/upload-artifact/merge@v4 + with: + name: bazel-testlogs + pattern: bazel-testlogs-* + delete-merged: true + retention-days: 10 diff --git a/.github/workflows/test_and_docs.yml b/.github/workflows/test_and_docs.yml index aaa975d1..b0a97b64 100644 --- a/.github/workflows/test_and_docs.yml +++ b/.github/workflows/test_and_docs.yml @@ -20,15 +20,9 @@ permissions: id-token: write on: - pull_request_target: - types: [opened, reopened, synchronize] # Allows forks to trigger the docs build - push: - branches: - - main - merge_group: - types: [checks_requested] - release: - types: [created] + workflow_run: + workflows: ["Code Coverage"] + types: [completed] jobs: docs-verify: @@ -38,17 +32,26 @@ jobs: contents: read with: bazel-docs-verify-target: "//:docs_check" - run-tests: - uses: eclipse-score/cicd-workflows/.github/workflows/tests.yml@main - permissions: - contents: read - pull-requests: read - with: - bazel-target: 'test //src/... //tests/... --config=x86_64-linux' - upload-name: 'bazel-testlogs' + fetch-testlogs: + runs-on: ubuntu-latest + if: ${{ github.event.workflow_run.conclusion == 'success' }} + steps: + - name: Download test logs from Code Coverage run + uses: actions/download-artifact@v4 + with: + name: bazel-testlogs + path: bazel-testlogs + run-id: ${{ github.event.workflow_run.id }} + github-token: ${{ secrets.GITHUB_TOKEN }} + - name: Re-upload test logs for docs build + uses: actions/upload-artifact@v4 + with: + name: bazel-testlogs + path: bazel-testlogs/ + retention-days: 10 build-docs: - needs: run-tests - if: ${{ needs.run-tests.result == 'success' }} + needs: fetch-testlogs + if: ${{ github.event.workflow_run.conclusion == 'success' }} uses: eclipse-score/cicd-workflows/.github/workflows/docs.yml@main permissions: contents: write From afe2a826d734f09702668128ce9032cba5afdea0 Mon Sep 17 00:00:00 2001 From: "Empting Eelco (ETAS-ECM/XPC-Fe2)" Date: Wed, 25 Feb 2026 10:02:44 +0100 Subject: [PATCH 5/5] Fix pipeline run --- .github/workflows/code_coverage.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/workflows/code_coverage.yml b/.github/workflows/code_coverage.yml index bae4853b..9297d5a8 100644 --- a/.github/workflows/code_coverage.yml +++ b/.github/workflows/code_coverage.yml @@ -32,9 +32,7 @@ jobs: - name: Install dependencies uses: eclipse-score/apt-install@main with: - packages: | - lcov - fakechroot + packages: lcov fakechroot cache: false