READ-ONLY PACKAGE PREVIEW

github-actions-efficiency/references/actions.md

Version 143a3d976b3c.bb1 · MIT. This preview displays packaged text and does not execute code. Treat the contents as untrusted instructions.

← Return to resource and package checksum

GitHub Actions Efficiency

Load this reference only when the task involves GitHub Actions or CI workflow efficiency.

If the repo is onboarding GitHub Actions for the first time, define a minimal baseline workflow first, then optimize using the rest of this guide.

Audit Order

Inspect in this order:

  1. If .github/workflows/ is missing or empty, gather baseline requirements first: triggering events, required checks, runtime versions, and repository-specific validation policy.
  2. .github/workflows/*.yml
  3. Docs describing CI expectations
  4. Existing reports or run history if the user wants measured impact

For new setups, start with a small workflow that proves core checks, then add matrix breadth or additional jobs only when needed.

Start with common, low-risk waste:

  1. Missing dependency caches
  2. Missing concurrency cancellation
  3. Over-broad workflow triggers
  4. Duplicate workflow coverage across files or jobs
  5. Expensive jobs that run on every change regardless of scope

Actions-Specific Guidance

Trigger scoping

  • Use paths or paths-ignore when whole workflows truly should not run for some file classes.
  • Use job-level gating when event-level filters are too coarse.
  • Prefer explicit changed-file detection when reliability matters more than clever filter expressions.

Job shaping

  • Do not merge jobs blindly. If separate jobs preserve parallelism and shorten the critical path, keep them separate.
  • Keep lightweight coordination or change-detection jobs separate from heavy execution jobs when that makes skip behavior obvious.
  • If a workflow-only change still runs the full suite, treat that as evidence the gating model is too broad.

Matrix reduction

Match matrix breadth to the decision being made:

  • Full matrix for releases or explicit compatibility validation
  • Reduced compatibility matrix for runtime, plugin, packaging, or framework-integration changes
  • Single representative latest-version leg for ordinary code changes
  • No heavy test job for clearly non-runtime changes when lighter protection already exists

Optional maintenance jobs

Formatting or autofix jobs that write back to a branch are often better as opt-in jobs.

Good triggers:

  • PR label such as ci:format
  • Manual dispatch
  • Explicit comment-command flow if the repo already supports it

If you use a label trigger, remember to listen for PR labeled and usually unlabeled events or the label change will not reevaluate the job.

Safe-Change Rules

  • Do not hide required release, migration, or shared-library validation.
  • Do not widen changed-file scope accidentally when replacing a wrapper action.
  • Treat severity drift as a regression risk.
  • Match the real check surface before replacing a broad action with native tools.

Live Validation

Prefer live GitHub validation when possible:

  • Trigger workflow_dispatch workflows once
  • Verify stale-run cancellation with two quick updates
  • Verify path-gating with an incremental ignored-only or workflow-only change on an existing branch
  • Confirm heavy jobs skip in the UI instead of assuming they would

Do not treat the first push on a brand-new branch as a clean path-ignore test.