Skip to content

feat(actions)!: simplify package tooling and dependency setup - #564

Merged
neilime merged 4 commits into
mainfrom
feat/nodejs-action-foundation
Nov 4, 2026
Merged

neilime merged 4 commits into
mainfrom
feat/nodejs-action-foundation

Conversation

@neilime

@neilime neilime commented Nov 4, 2026 •

Copy link
Copy Markdown
Member

Make the general Node.js actions independently usable before adding release automation in #562.

  • Default installation lifecycle scripts to disabled in setup, build, lint, test and the reusable CI workflow. Callers can explicitly enable them; container jobs keep their existing behavior.
  • Let setup-node configure tooling without installing dependencies for packaging prepared build files or caller-managed installation. Normal build, lint and test jobs keep installation enabled.
  • Group the existing package actions under actions/package/create and actions/package/publish.
  • Make package creation consume prepared source/build files, with optional artifact restoration. The caller owns checkout, runtime setup, dependencies and version changes.
  • Add get-package-manager.outputs.pack-command for native npm, pnpm and Yarn Classic packing with lifecycle scripts disabled. Package creation uses an isolated output directory and cleans it on failure.
  • Use GitHub Script's supplied helpers for command execution, file operations and tarball discovery.
  • Use the root Node 24 runtime in fixture checks and configure Renovate for runtime, pnpm fallback and Docker action updates alongside Dependabot. The pnpm fallback is declared once as DEFAULT_PNPM_VERSION; a project's packageManager declaration takes precedence.

Breaking changes: update the package action paths, remove the Package action's version input, and prepare source/tooling/version/build output before calling it. Installation hooks now require ignore-scripts: false. Package creation always disables lifecycle scripts.

The existing package example and generated references follow these APIs. The new preparation/release workflows, version commits, recovery behavior, release-specific actions, tests and consolidated ADR are delivered by #562.

Review and merge order: this PR → #562 (single-package release) → #563 (workspaces/Lerna).

Validation:

  • Seven native packaging scenarios passed on Node 24: npm root/nested, Yarn Classic, and pnpm 10/12 root/workspace packages. Checks cover script suppression, package-manager precedence, prepared bytes and versions, lockfile preservation, paths with spaces/metacharacters, fresh consumer installation, and failure cleanup.
  • Local action/workflow contracts, inline script syntax and documentation links passed; no references to the new release actions or workflows remain in this branch.
  • Repository lint passed for the changed files. The Publish action reference was regenerated through CI Dokumentor after separating recovery-specific inputs and outputs.
  • Renovate strict configuration validation and local dependency extraction passed. Focused pnpm fallback checks cover missing/blank declarations, project version precedence and invalid manifests. The action reference was regenerated from its metadata, and README separators use colons.
  • GitHub integration checks run on this PR. No release tags or publication were performed.

Centralize native pack commands, package prepared files, and default
installation lifecycle scripts to disabled. Group the existing package
actions and configure Renovate for the shared runtime.

BREAKING CHANGE: use actions/package/create and actions/package/publish.
Callers prepare source, tooling and versions before packaging.
Installation hooks require ignore-scripts: false.
@github-actions

github-actions Bot commented Nov 4, 2026 •

Copy link
Copy Markdown
Contributor

Super-linter summary

Language Validation result
BIOME_FORMAT Pass ✅
BIOME_LINT Pass ✅
CHECKOV Pass ✅
GITHUB_ACTIONS Pass ✅
GITHUB_ACTIONS_ZIZMOR Pass ✅
GITLEAKS Pass ✅
GIT_COMMITLINT Pass ✅
GIT_MERGE_CONFLICT_MARKERS Pass ✅
JSCPD Pass ✅
MARKDOWN Pass ✅
MARKDOWN_PRETTIER Pass ✅
NATURAL_LANGUAGE Pass ✅
PRE_COMMIT Pass ✅
RENOVATE Pass ✅
SPELL_CODESPELL Pass ✅
TRIVY Pass ✅
YAML Pass ✅
YAML_PRETTIER Pass ✅

All files and directories linted successfully

For more information, see the GitHub Actions workflow run

Powered by Super-linter
Super-linter revision: 2da136927bd4a73596db63044b504547c62cb854
Super-linter version: 9.0.0

@github-actions

github-actions Bot commented Nov 4, 2026

Copy link
Copy Markdown
Contributor

Code Coverage Report

Coverage Results

Coverage

Metric Covered Total Percentage
Lines 2 2 100.00%
Functions 1 1 100.00%

Overall: 100.00% 🟢
🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩

@codecov

codecov Bot commented Nov 4, 2026 •

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 100.00%. Comparing base (b7eadcf) to head (24df06a).

Additional details and impacted files
@@            Coverage Diff            @@
##              main      #564   +/-   ##
=========================================
  Coverage   100.00%   100.00%           
=========================================
  Files            1         1           
  Lines            3         3           
=========================================
  Hits             3         3           

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

neilime added a commit that referenced this pull request Nov 4, 2026
@neilime
neilime merged commit 0cc60c3 into main Nov 4, 2026
93 of 94 checks passed
@neilime
neilime deleted the feat/nodejs-action-foundation branch November 4, 2026 15:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

type: breaking Introduces a breaking change type: feature Introduces a new feature

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant