Skip to content

Make action execution hermetic and reproducible #18

Description

@vitormattos

Goal

Make the reusable actions execute the exact dependency graph that was reviewed and tested.

Current gap

The composite actions run npm install --ignore-scripts at execution time and the repository currently has no committed package-lock.json. Direct dependencies are exact, but transitive resolution can still change between CI validation and consumer execution.

Target

Prefer a runtime artifact that does not resolve package dependencies dynamically.

Evaluate in this order:

  1. commit a lockfile and use npm ci --ignore-scripts everywhere;
  2. build and verify deterministic dist/ output;
  3. if practical, make the reusable action execute prebuilt/bundled JavaScript so consumers do not install development dependencies at runtime.

Quality requirements

  • Dependabot updates the lockfile;
  • REUSE metadata covers generated dependency metadata appropriately;
  • CI fails when package.json and lockfile diverge;
  • CI verifies committed/bundled output matches source;
  • consumers remain pinned to immutable action SHAs;
  • no package lifecycle scripts run during action execution.

Note

This is a hardening follow-up and should not block the first v0.1.0 release mechanism.

Activity

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

Metadata

Metadata

Assignees

No one assigned

    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