Skip to content

feat(yaml): add yamllint and yamlfmt integration - #46

Open
posquit0 wants to merge 3 commits into
mainfrom
feat/yaml-integration
Open

posquit0 wants to merge 3 commits into
mainfrom
feat/yaml-integration

Conversation

@posquit0

@posquit0 posquit0 commented Oct 19, 2026 •

Copy link
Copy Markdown
Member

👋 Background

YAML validation only has a yamllint-specific reusable workflow. It lacks standalone check actions, formatting validation, and the combined report used by the Terraform and GitHub Actions integrations.

⚙️ Description

  • Add yaml.yamllint and yaml.yamlfmt composite actions. Both require caller-installed CLIs, expose skipped / stdout / stderr / exitcode, use shell.run, and publish failure details through github.step-summary. Annotations can be disabled. Formatting checks do not modify files.
  • Make yaml.integration.yaml reusable with mise setup, independent versions/configs/targets/enabled flags, both checks enabled by default, and github.matrix-report collection plus a single summary/sticky PR comment. Disabled checks are omitted, and failures fail the lint job after both checks finish.
  • Move the repository's YAML CI entry point to yaml.yaml and grant the report's PR-comment permission.
  • Keep the existing yaml.yamllint.yaml interface as a lint-only entry point backed by the new composite action.
  • Add .yamlfmt.yaml to preserve the repository's existing formatting without reformatting existing files.

Validation:

  • 23 local behavioral scenarios using the actual action scripts and CLIs: success/failure, malformed YAML, missing/empty targets, config discovery/overrides/excludes, paths containing spaces, annotation toggles, captured outputs and summaries, no file mutation, and result collection/failure handling.
  • Isolated mise installation of yamllint 1.38.0 and yamlfmt 0.21.0, including environment export when only one check is enabled.
  • Repository-wide yamllint and yamlfmt; actionlint; GitHub Actions action/workflow schemas; ShellCheck for all five new shell scripts; git diff --check.

🚨 To Reviewers

The complete integration passed on GitHub-hosted Ubuntu runners using temporary PR-branch references: YAML lint, format, result collection, and report. GitHub Actions lint and schema validation also passed.

Final references follow the repository's @main convention. The new callable workflow and actions are not available on main before this PR is merged, so the final-head YAML CI cannot resolve them yet; the successful run above validates the same implementation with only those references changed. After merge, the normal main push runs both checks through the published components.

The existing yaml.yamllint.yaml inputs and optional token secret remain accepted. New integration callers using the default PR comment setting should grant contents: read and pull-requests: write, as the repository CI caller does.

@github-actions github-actions Bot added 💾 actions This issue or pull request is related to actions. 💾 workflows This issue or pull request is related to workflows. size/M Medium size issue or PR. labels Oct 19, 2026
@github-actions

Copy link
Copy Markdown

YAML Integration

Repository yamllint yamlfmt
tedilabs/github-actions ✅ ✅

✅ All 1 passed.

@github-actions

Copy link
Copy Markdown

GitHub Actions Integration

Repository jactionlint check-jsonschema (workflows) check-jsonschema (actions)
tedilabs/github-actions ✅ ✅ ✅

✅ All 1 passed.

@posquit0
posquit0 marked this pull request as ready for review October 19, 2026 08:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

💾 actions This issue or pull request is related to actions. 💾 workflows This issue or pull request is related to workflows. size/M Medium size issue or PR.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant