test: md-only PR to verify ci-complete gate#1285
Conversation
Greptile SummaryThis PR bundles two changes: (1) a temporary markdown file ( Changes and impact:
Issues found:
Confidence Score: 4/5
Important Files Changed
Flowchartflowchart TD
PR[Pull Request / Push] --> CC[check-changes\ndorny/paths-filter]
CC -->|ros outputs| ROS{ros == true?}
CC -->|python outputs| PY{python == true?}
CC -->|dev outputs| DEV_OUT{dev == true?}
CC -->|tests outputs| TST{tests == true?}
ROS -->|yes| ROS_JOB[ros build]
ROS -->|no| ROS_SKIP[skipped]
PY -->|yes| PY_JOB[python build]
PY -->|no| PY_SKIP[skipped]
ROS_JOB --> ROS_PY[ros-python build\nif: always]
ROS_SKIP --> ROS_PY
PY_JOB --> DEV_JOB[dev build\nif: always]
PY_SKIP --> DEV_JOB
ROS_PY --> ROS_DEV[ros-dev build\nif: always]
CC -->|"NEW: if: always() &&\ncheck-changes==success &&\n(tests OR ros OR python OR dev)"| RT[run-ros-tests]
CC -->|"NEW: if: always() &&\ncheck-changes==success &&\n(tests OR python OR dev)"| RTT[run-tests\nrun-heavy-tests\nrun-lcm-tests\nrun-integration-tests]
CC -->|"NEW: same as ros-tests"| RM[run-mypy]
ROS_DEV --> RT
ROS_DEV --> RM
DEV_JOB --> RTT
ROS_JOB --> CI_COMPLETE
PY_JOB --> CI_COMPLETE
ROS_PY --> CI_COMPLETE
DEV_JOB --> CI_COMPLETE
ROS_DEV --> CI_COMPLETE
RT --> CI_COMPLETE
RTT --> CI_COMPLETE
RM --> CI_COMPLETE
CI_COMPLETE{ci-complete\nif: always\nNEW: also needs build jobs}
CI_COMPLETE -->|contains failure/cancelled| FAIL[❌ CI Failed]
CI_COMPLETE -->|only success/skipped| PASS[✅ CI Passed]
style FAIL fill:#f55,color:#fff
style PASS fill:#5a5,color:#fff
style CI_COMPLETE fill:#fa0,color:#000
Last reviewed commit: 2837432 |
…omplete Move path filter checks to job-level if: conditions so test caller jobs are fully skipped (no container spin-up) when no relevant files changed. The always() is kept so skipped upstream builds don't block the condition from evaluating. Also add build jobs (ros, python, ros-python, dev, ros-dev) to ci-complete's needs list so build failures are caught by the gate.
|
Closing — contains workflow changes in diff, not a clean md-only test. |
| @@ -271,7 +309,7 @@ jobs: | |||
| # /entrypoint.sh bash -c "pytest -m module" | |||
There was a problem hiding this comment.
ci-complete does not catch check-changes failures
ci-complete's needs list does not include check-changes directly. If check-changes fails, all downstream jobs that don't use if: always() (e.g. ros, python) are automatically skipped by GitHub Actions — they won't appear as failure in needs.*.result. As a result, a check-changes failure would cause ci-complete to pass (no failure or cancelled in its direct dependencies), silently swallowing the infrastructure failure.
Consider adding check-changes to ci-complete's needs list:
needs: [check-changes, ros, python, ros-python, dev, ros-dev, run-tests, run-heavy-tests, run-lcm-tests, run-integration-tests, run-ros-tests, run-mypy]
This is a pre-existing gap, but the expansion of ci-complete's needs in this PR is a good opportunity to close it.
| # CI Gate Verification | ||
|
|
||
| Test file to verify md-only PRs skip the test suite and pass ci-complete. | ||
| Delete after verification. |
There was a problem hiding this comment.
Temporary file not deleted after verification
The file itself says "Delete after verification." Since this PR also changes docker.yml (which is tracked by the ros and python path filters), the CI run for this PR will trigger full builds and tests — it won't self-verify the md-only skip behavior described in the PR description. A follow-up PR with only an .md change would be needed to observe the skipping logic in action.
If this file is being kept as a persistent example or documentation, the "Delete after verification" note should be removed. Otherwise, this file should be removed before merge.
Pure md-only change off
dev(after #1284 merged). Verifies:paths-ignoreblocking)check-changesdetects no code changes (all outputsfalse)should-runevaluates tofalsefor all test callersci-completepassesDo NOT merge — delete after verification.