Skip to content

ci: pilot pinned actionlint workflow validation (#651) - #653

Merged
Fooftilly merged 2 commits into
masterfrom
ci/651-actionlint-pilot
Oct 14, 2026
Merged

Fooftilly merged 2 commits into
masterfrom
ci/651-actionlint-pilot

Conversation

@Fooftilly

@Fooftilly Fooftilly commented Oct 13, 2026 •

Copy link
Copy Markdown
Owner

Summary

First A1 slice of #651: add a small, isolated actionlint workflow, without modifying backend, PostgreSQL schema, or existing CI gates.

  • Run actionlint only on workflow-changing PRs/pushes (plus manual dispatch).
  • Pin actionlint v1.7.12 and verify the Linux x64 release archive against its published SHA-256 before running it.
  • Inspect all GitHub Actions workflows for YAML/workflow/expression mistakes.
  • Start advisory (continue-on-error) so existing workflow findings do not block the concurrent PostgreSQL migration. Emit an explicit warning when the lint step finds issues.
  • Disable actionlint's external ShellCheck/pyflakes integrations for this first bounded pilot; consider them in a follow-up after collecting baseline findings.
  • Read-only token and SHA-pinned checkout; no secrets or application code changes.

Validation

  • Confirmed no existing .github/workflows/actionlint.yml and no overlapping active actionlint PR at branch creation.
  • Created branch from master@d8e1097557725549fc8561d2c39e3f2407740e48.
  • Verified at e8ec665: actionlint pilot run 38511958845 succeeded. The pinned binary passed SHA-256 verification, actionlint completed without findings, and the advisory-warning step correctly skipped.
  • Follow-up fix: use a YAML block scalar for the warning command; narrowly suppress the upstream unsupported concurrency.queue diagnostic (actionlint #654); treat actual lint findings as advisory while keeping actionlint execution errors fatal.

After this pilot

Review output; fix real pre-existing workflow errors in separate focused PR(s), justify any explicit exceptions, and only then propose turning the actionlint step into a blocking check. Do not change branch protection or required check names as part of this PR.

Related: #651 (roadmap), #643 (cost-aware CI), #339 (dependency-aware workflow gates), existing CodeQL/zizmor.

Review/merge: Leave unmerged for the maintainer's explicit approval.

@sourcery-ai

This comment has been minimized.

@Fooftilly
Fooftilly temporarily deployed to project-automation October 13, 2026 21:17 — with GitHub Actions Inactive
@coderabbitai

This comment has been minimized.

@chatgpt-codex-connector

This comment has been minimized.

@Fooftilly Fooftilly moved this to Review in PRKS Roadmap Oct 13, 2026

@Fooftilly Fooftilly left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed at 257815b. One finding inline (P3, advisory pilot only).

Checked and holding: the v1.7.12 linux_amd64 archive SHA-256 matches the release's actionlint_1.7.12_checksums.txt (8aca8db9…a3d8); the tarball has actionlint at its root, so tar … actionlint extracts correctly; the checkout pin matches zizmor.yml/codeql.yml (v7.0.1) with persist-credentials: false; and -shellcheck= -pyflakes= does disable both integrations. The new file itself lints clean.

Comment thread .github/workflows/actionlint.yml Outdated
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

1 participant