Skip to content

Will [email protected]'s built-in runtime installation make actions/setup-node unnecessary? #173

Description

@marcalexiei

Context

The recent pnpm 10.14 release introduces a new feature: devEngines.runtime,
allows declaring a JavaScript runtime (Node, Deno, Bun) in package.json.

Current recommended CI setup uses both actions/setup-node and pnpm/action-setup actions:

pnpm documentation

Use cache to reduce installation time

Code reference

on:
  - push
  - pull_request

jobs:
  cache-and-install:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout
        uses: actions/checkout@v4

      - uses: pnpm/action-setup@v4
        name: Install pnpm
        with:
          version: 10
          run_install: false

      - name: Install Node.js
        uses: actions/setup-node@v4
        with:
          node-version: 20
          cache: 'pnpm'

      - name: Install dependencies
        run: pnpm install

https://github.com/pnpm/action-setup?tab=readme-ov-file#notes

This action does not setup Node.js for you, use actions/setup-node yourself.


Questions

Given this new capability, I’d like to know whether using actions/setup-node in GitHub Actions workflows remains necessary,
or if [email protected] can fully handle runtime provisioning for CI environments:

If devEngines.runtime is used for Node.js from pnpm, does actions/setup-node become redundant?

Currently, setup-node offers functionality beyond installing Node, e.g.,
dependency caching (cache: pnpm), and handling authenticated registries.
If I rely solely on pnpm/setup-action I am losing these capabilities
Are there any plans for pnpm/action-setup to support similar features in the future?


Due to the state of devEngines support in actions/setup-node (pr in review: actions/setup-node#1283)
I don't have the chance to test how they behave together.
However, I’m curious how the new devEngines.runtime capability in pnpm
may affect the role pnpm/action-setup in GitHub Actions workflows. 😅

Thanks!

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