-
Notifications
You must be signed in to change notification settings - Fork 340
[cli-tools-test] compile: actionlint failure marks valid workflows as invalid when Docker is unavailable #25248
Description
Problem Description
When using the compile tool with actionlint: true, all workflows are reported as valid: false even when the workflow YAML is correct. The failure is due to Docker being unavailable—not due to any actual workflow error.
This is misleading because a developer using compile with actionlint: true cannot distinguish between "the workflow has actionlint errors" and "the linting tool failed to run."
Command/Tool
- Tool:
compile - Parameter:
actionlint: true
Steps to Reproduce
-
Run the
compileMCP tool withactionlint: trueon any workflow in an environment where Docker is unavailable:{ "workflows": ["artifacts-summary"], "actionlint": true } -
Observe the result:
[{ "workflow": "artifacts-summary.md", "valid": false, "errors": [{ "type": "config_error", "message": "docker is not available (cannot connect to Docker daemon). actionlint requires Docker. Please install and start Docker, or set actionlint: false to skip static analysis" }], "warnings": [] }] -
Compile the same workflow without
actionlint: true:{ "workflows": ["artifacts-summary"] } -
Observe it succeeds with
valid: true.
Expected Behavior
When actionlint cannot run (e.g., Docker is unavailable), the tool should:
- Either skip actionlint and return the baseline compile result (with a warning), OR
- Return an error that makes it clear the compile itself succeeded but the static analysis tool could not run — without marking the workflow as
valid: false
A workflow that compiles correctly to valid YAML should not be marked invalid because an optional external analysis tool is unavailable.
Actual Behavior
All 3 tested workflows (artifacts-summary, auto-triage-issues, ci-coach) were marked valid: false due to Docker being unavailable, even though all 3 compile successfully without actionlint: true.
Environment
- Repository: github/gh-aw
- Run ID: 24119226985
- Date: 2026-04-08
- gh-aw version: v1.0.20
Impact
- Severity: High
- Frequency: Always (any environment where Docker-in-Docker is disabled)
- Workaround: Do not use
actionlint: trueparameter
Suggested Fix
Consider separating the result into two parts:
compile_valid: Whether the workflow markdown compiled to valid YAMLlint_valid/actionlint_result: Whether static analysis passed
Or alternatively, use a warning (not an error) and keep valid: true when the compile itself succeeded but the external linting tool failed to run.
Additional Context
This is particularly impactful for automated testing pipelines that use compile with actionlint: true to validate workflows — they will always fail in Docker-restricted environments (like GitHub Actions with Docker-in-Docker disabled) even when all workflows are correct.
During testing, all 182 workflows compiled successfully without actionlint, but all 3 tested with actionlint: true were marked invalid.
Generated by Daily CLI Tools Exploratory Tester · ● 2M · ◷
- expires on Apr 15, 2026, 5:31 AM UTC