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 compile MCP tool with actionlint: true on 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: true parameter
Suggested Fix
Consider separating the result into two parts:
compile_valid: Whether the workflow markdown compiled to valid YAML
lint_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 · ◷
Problem Description
When using the
compiletool withactionlint: true, all workflows are reported asvalid: falseeven 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
compilewithactionlint: truecannot distinguish between "the workflow has actionlint errors" and "the linting tool failed to run."Command/Tool
compileactionlint: trueSteps 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
actionlintcannot run (e.g., Docker is unavailable), the tool should:valid: falseA 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 markedvalid: falsedue to Docker being unavailable, even though all 3 compile successfully withoutactionlint: true.Environment
Impact
actionlint: trueparameterSuggested Fix
Consider separating the result into two parts:
compile_valid: Whether the workflow markdown compiled to valid YAMLlint_valid/actionlint_result: Whether static analysis passedOr alternatively, use a
warning(not anerror) and keepvalid: truewhen the compile itself succeeded but the external linting tool failed to run.Additional Context
This is particularly impactful for automated testing pipelines that use
compilewithactionlint: trueto 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: truewere marked invalid.