awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
actions avatar

actions/setup-node

0
View on GitHub↗

Setup Node

setup-node is a GitHub Action that downloads, installs, and configures a specified Node.js runtime in continuous integration workflows. It resolves version specifiers from semantic version ranges or aliases like "lts/*" against a remote manifest, selects the correct binary for the runner’s operating system and architecture, and can reuse previously installed versions from GitHub’s hosted tool cache.

The action accelerates repeat workflow runs by caching global package dependencies using a lock file as the cache key, restoring them automatically on subsequent runs. It manages version resolution through a semver range interpreter and fetches platform-aware binaries, ensuring reproducibility across different runner environments.

In addition to runtime installation and caching, setup-node provides the foundation for automating build, test, and lint steps in JavaScript and TypeScript projects. It installs dependencies via npm, Yarn, or pnpm and integrates with the workflow’s existing job steps to produce a fully configured Node.js environment.

The action is distributed as a reusable component in the GitHub Actions marketplace, requiring minimal configuration in a workflow YAML file to specify the Node.js version and optional cache settings.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Features

  • Lock-File-Based Cache Keys - Caches package dependencies using lock-file hash keys to accelerate repeat workflow runs.
  • Dependency Caches - Caches and restores global package dependencies using lock-file-based cache keys.
  • Continuous Integration Tools - A reusable GitHub Action for setting up Node.js environments in automated CI pipelines.
  • Architecture-Aware Binary Fetching - Downloads the correct Node.js binary for the runner's operating system and CPU architecture.
  • Node.js CI Environment Setups - Configures a Node.js environment in CI pipelines, selecting runtime version and installing dependencies.
  • Node.js Version Managers - Downloads and configures a specified Node.js version for use in CI workflows.
  • Tool Cache Version Managers - Stores and restores Node.js binaries from a hosted tool cache for fast CI setup.
  • SemVer Range Interpreters - Resolves semantic versioning ranges like '^12' or 'lts/*' to concrete Node.js versions.
  • Version Manifest Resolvers - Resolves version specifiers like 'lts/*' against a remote manifest of available Node.js releases.
  • GitHub Actions - A GitHub Action that downloads, installs, and caches Node.js for CI workflows.
  • JavaScript and TypeScript Build Systems - Provides the Node.js runtime environment for automating build, test, and lint steps.
  • Language Setup Actions - Configure Node.js environment.
5,016 stars·1,727 forks·TypeScript·MIT·16 views

Star history

Star history chart for actions/setup-nodeStar history chart for actions/setup-node

How this analysis was created: This summary and feature list are AI-generated from collected project material and can contain mistakes. Stars, license and language are imported from GitHub. Inclusion does not mean that we have tested or audited this project. Check the source documentation for any feature you depend on. Learn more on our About page.

Projects sharing features with Setup Node

These projects share indexed features with Setup Node. Shared tags can include platform or build tooling; verify the primary use case before treating a result as a replacement.
  • nubjs/nubnubjs avatar

    nubjs/nub

    4,435View on GitHub↗

    nub is a single native toolkit for Node.js projects that bundles a package manager, a package script runner, a TypeScript executor, a Node.js version manager, and a watch-mode restarter in one binary. It ships as a compiled executable, so installs, script runs, and command lookups avoid the JavaScript startup cost of tools written in Node itself. As a package manager, it offers a pnpm-compatible command line and reads existing npm, yarn, and pnpm lockfiles and configuration, following whichever tool the project already uses. Packages are stored once in a shared global store and hardlinked int

    Rustjavascript-runtimenode-version-managernodejs
    View on GitHub↗4,435
  • actions/toolkitactions avatar

    actions/toolkit

    5,903View on GitHub↗

    The GitHub ToolKit for developing GitHub Actions.

    TypeScript
    View on GitHub↗5,903
  • eirslett/frontend-maven-plugineirslett avatar

    eirslett/frontend-maven-plugin

    4,379View on GitHub↗

    This project is a Maven plugin that integrates Node.js and npm build processes into the Java build lifecycle. It acts as a build orchestrator and environment manager, allowing the execution of npm scripts and frontend task runners during a Java project's build process. The plugin manages the downloading and extraction of specific Node.js and npm binaries into local project directories. This ensures consistent, cross-platform build environments by resolving binaries based on the host operating system and CPU architecture without modifying the global system state. It provides orchestration for

    Java
    View on GitHub↗4,379
  • ansible/ansible-lintansible avatar

    ansible/ansible-lint

    3,876View on GitHub↗

    ansible-lint is a static code analysis tool and linter designed to identify syntax errors and best practice violations within Ansible playbooks and roles. It functions as a quality gate for automation pipelines, scanning configuration files and scripts without executing the code to ensure reliability and consistency. The project distinguishes itself by acting as an automated code formatter that can correct identified linting issues and reformat files to meet community standards. It also serves as a dependency manager, automatically detecting and installing required roles and collections from

    Pythonansibleansible-dev-toolsansible-lint
    View on GitHub↗3,876
Compare all 30 related projects→

Frequently asked questions

What does actions/setup-node do?

setup-node is a GitHub Action that downloads, installs, and configures a specified Node.js runtime in continuous integration workflows. It resolves version specifiers from semantic version ranges or aliases like "lts/*" against a remote manifest, selects the correct binary for the runner’s operating system and architecture, and can reuse previously installed versions from GitHub’s hosted tool cache.

What are the main features of actions/setup-node?

The main features of actions/setup-node are: Lock-File-Based Cache Keys, Dependency Caches, Continuous Integration Tools, Architecture-Aware Binary Fetching, Node.js CI Environment Setups, Node.js Version Managers, Tool Cache Version Managers, SemVer Range Interpreters.

Which projects share features with actions/setup-node?

Projects with overlapping indexed features include: nubjs/nub — nub is a single native toolkit for Node.js projects that bundles a package manager, a package script runner, a… actions/toolkit — The GitHub ToolKit for developing GitHub Actions. eirslett/frontend-maven-plugin — This project is a Maven plugin that integrates Node.js and npm build processes into the Java build lifecycle. It acts… ansible/ansible-lint — ansible-lint is a static code analysis tool and linter designed to identify syntax errors and best practice violations… appleboy/ssh-action — This is a GitHub Action that executes shell commands on remote servers over SSH as part of a CI/CD pipeline. It… creationix/nvm — nvm is a Node.js version manager implemented as a POSIX bash script. It serves as a shell environment manager and…