Skip to content

[cli-tools-test] compile: actionlint failure marks valid workflows as invalid when Docker is unavailable #25248

@github-actions

Description

@github-actions

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

  1. Run the compile MCP tool with actionlint: true on any workflow in an environment where Docker is unavailable:

    { "workflows": ["artifacts-summary"], "actionlint": true }
  2. 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": []
    }]
  3. Compile the same workflow without actionlint: true:

    { "workflows": ["artifacts-summary"] }
  4. 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:

  1. compile_valid: Whether the workflow markdown compiled to valid YAML
  2. 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 ·

  • expires on Apr 15, 2026, 5:31 AM UTC

Metadata

Metadata

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions