Skip to content

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

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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions