Skip to content

Port actions-audit pattern (quarterly deprecated-actions scan) from metanorma/ci#392 #64

Description

@opoudjis

Proposal

Port the actions-audit pattern from metanorma/ci#392 to relaton/support. Quarterly cron workflow that scans this repo's .github/workflows/ + cimas-config/gh-actions/ for GitHub Actions pins (uses: <owner>/<action>@<ver>), compares against a hand-curated deprecated-actions list, and files an issue per detected deprecated pin. Surface-only — no auto-bump PRs.

Context: today's plantuml-setup-action fix (#63) sat as a dead reference for ~11 months without anyone knowing. The audit pattern is designed to catch exactly that class of drift — deprecated or removed upstream actions still pinned in workflows — before it silently degrades CI signal.

What lands (if adopted)

Three files, ~120 lines total:

  1. .github/workflows/actions-audit.yml — cron trigger (1st Monday of Feb/May/Aug/Nov at 08:00 UTC — quarterly cadence right-sized to GitHub's typical 6+ month deprecation window) + workflow_dispatch for manual runs.

  2. .github/scripts/audit-actions.rb — Ruby script: extracts uses: pins from YAML files under scan paths, checks against the deprecation list, creates issues per (action, version) class. Skips issue creation if an open issue with the same title exists (idempotent across quarterly runs). Supports --dry-run for local testing.

  3. .github/deprecated-actions.yml — hand-curated list. Seed shape:

    • actions/upload-artifact@v1-3 (v3 deprecated 2024-Q4)
    • actions/download-artifact@v1-3
    • actions/checkout@v1-3 (Node16-based)
    • actions/setup-node@v1-3
    • actions/cache@v1-3
    • actions/setup-python@v1-4
    • actions/setup-java@v1-3

    Grows as new deprecations are announced.

Design constraints

  • Quarterly cadence right-sized to GitHub's typical 6+ month deprecation window (two-quarter lead time to fix).
  • Scope: this repo's own workflows + cimas-config/gh-actions/ templates. When relaton-side cimas-managed workflows get templated further, scope naturally follows.
  • Surface only — no auto-bump PRs, keeps decisions with a human.
  • Issue creation on finding — findings land on maintainer dashboard rather than requiring workflow-log review.
  • Hand-curated deprecation list for v1 (GitHub has no stable machine-readable deprecation API for actions majors).

Reference implementation

See metanorma/ci#392 for the source implementation on metanorma-org's parallel CI infrastructure repo. All three files are portable near-verbatim; the deprecated-actions.yml seed can be trimmed to the actions relaton actually uses.

Adoption path

Happy to open a PR against this repo porting the three files if useful. Alternatively, if you'd rather draft it yourself with your own scope tuning, the reference PR above has everything needed to lift-and-shift.

🤖

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions