From 9ac8df08621c83d04f19ff0ddc302ce0711e1e0f Mon Sep 17 00:00:00 2001 From: spomichter Date: Tue, 17 Feb 2026 18:35:53 +0000 Subject: [PATCH] fix(ci): use path filter outputs for test should-run decisions MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The test caller should-run expressions relied on upstream job results (e.g. dev.result == 'success') to decide whether to run tests. But build jobs with if: always() report 'success' even when should-run=false and all steps are skipped — so md-only PRs incorrectly triggered the full test suite after paths-ignore was removed in #1279. Replace upstream result checks with direct path filter output checks: - Non-ROS tests: tests || python || dev - ROS tests + mypy: tests || ros || python || dev When only .md files change, all outputs are false → should-run=false. --- .github/workflows/docker.yml | 38 +++++++++++++++++++----------------- 1 file changed, 20 insertions(+), 18 deletions(-) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index a769519b8c..cf3e1cdcae 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -150,9 +150,10 @@ jobs: with: should-run: ${{ needs.check-changes.result == 'success' && - ((needs.ros-dev.result == 'success') || - (needs.ros-dev.result == 'skipped' && - needs.check-changes.outputs.tests == 'true')) + (needs.check-changes.outputs.tests == 'true' || + needs.check-changes.outputs.ros == 'true' || + needs.check-changes.outputs.python == 'true' || + needs.check-changes.outputs.dev == 'true') }} cmd: "pytest && pytest -m ros" # run tests that depend on ros as well dev-image: ros-dev:${{ (needs.check-changes.outputs.python == 'true' || needs.check-changes.outputs.dev == 'true' || needs.check-changes.outputs.ros == 'true') && needs.ros-dev.result == 'success' && needs.check-changes.outputs.branch-tag || 'dev' }} @@ -165,9 +166,9 @@ jobs: with: should-run: ${{ needs.check-changes.result == 'success' && - ((needs.dev.result == 'success') || - (needs.dev.result == 'skipped' && - needs.check-changes.outputs.tests == 'true')) + (needs.check-changes.outputs.tests == 'true' || + needs.check-changes.outputs.python == 'true' || + needs.check-changes.outputs.dev == 'true') }} cmd: "pytest" dev-image: dev:${{ (needs.check-changes.outputs.python == 'true' || needs.check-changes.outputs.dev == 'true') && needs.dev.result == 'success' && needs.check-changes.outputs.branch-tag || 'dev' }} @@ -181,9 +182,9 @@ jobs: with: should-run: ${{ needs.check-changes.result == 'success' && - ((needs.dev.result == 'success') || - (needs.dev.result == 'skipped' && - needs.check-changes.outputs.tests == 'true')) + (needs.check-changes.outputs.tests == 'true' || + needs.check-changes.outputs.python == 'true' || + needs.check-changes.outputs.dev == 'true') }} cmd: "pytest -m heavy" dev-image: dev:${{ (needs.check-changes.outputs.python == 'true' || needs.check-changes.outputs.dev == 'true') && needs.dev.result == 'success' && needs.check-changes.outputs.branch-tag || 'dev' }} @@ -196,9 +197,9 @@ jobs: with: should-run: ${{ needs.check-changes.result == 'success' && - ((needs.dev.result == 'success') || - (needs.dev.result == 'skipped' && - needs.check-changes.outputs.tests == 'true')) + (needs.check-changes.outputs.tests == 'true' || + needs.check-changes.outputs.python == 'true' || + needs.check-changes.outputs.dev == 'true') }} cmd: "pytest -m lcm" dev-image: dev:${{ (needs.check-changes.outputs.python == 'true' || needs.check-changes.outputs.dev == 'true') && needs.dev.result == 'success' && needs.check-changes.outputs.branch-tag || 'dev' }} @@ -211,9 +212,9 @@ jobs: with: should-run: ${{ needs.check-changes.result == 'success' && - ((needs.dev.result == 'success') || - (needs.dev.result == 'skipped' && - needs.check-changes.outputs.tests == 'true')) + (needs.check-changes.outputs.tests == 'true' || + needs.check-changes.outputs.python == 'true' || + needs.check-changes.outputs.dev == 'true') }} cmd: "pytest -m integration" dev-image: dev:${{ (needs.check-changes.outputs.python == 'true' || needs.check-changes.outputs.dev == 'true') && needs.dev.result == 'success' && needs.check-changes.outputs.branch-tag || 'dev' }} @@ -226,9 +227,10 @@ jobs: with: should-run: ${{ needs.check-changes.result == 'success' && - ((needs.ros-dev.result == 'success') || - (needs.ros-dev.result == 'skipped' && - needs.check-changes.outputs.tests == 'true')) + (needs.check-changes.outputs.tests == 'true' || + needs.check-changes.outputs.ros == 'true' || + needs.check-changes.outputs.python == 'true' || + needs.check-changes.outputs.dev == 'true') }} cmd: "MYPYPATH=/opt/ros/humble/lib/python3.10/site-packages mypy dimos" dev-image: ros-dev:${{ (needs.check-changes.outputs.python == 'true' || needs.check-changes.outputs.dev == 'true' || needs.check-changes.outputs.ros == 'true') && needs.ros-dev.result == 'success' && needs.check-changes.outputs.branch-tag || 'dev' }}