A comprehensive testing repository designed to validate pull requests created in the setup-node action against various Node.js workflow configurations. This repo serves as a controlled environment to test workflow failures and ensure PR changes work as expected across different scenarios.
This repository provides a comprehensive testing suite for validating setup-node PRs with:
- Full matrix testing across Node.js versions, operating systems, and package managers
- Cache performance validation
- Edge case scenario testing
- Performance benchmarking
- Package manager compatibility testing
- Node.js 18.x (LTS until April 2025)
- Node.js 20.x (LTS until April 2026)
- Node.js 22.x (Current LTS until April 2027)
- Node.js 23.x (Current release)
- ubuntu-latest (Ubuntu 22.04)
- ubuntu-20.04
- windows-latest (Windows Server 2022)
- windows-2019
- macos-latest (macOS 14)
- macos-13
- macos-12
- npm (default)
- yarn
- pnpm
Comprehensive matrix testing across all OS/Node.js combinations:
- Basic setup-node functionality validation
- Node.js installation and version verification
- Package manager installations
- Cross-platform compatibility testing
Dependency caching validation:
- npm, yarn, and pnpm cache testing
- Cache hit/miss scenario validation
- Cache restoration across different runners
- Performance comparison between package managers
Specialized scenario testing:
.nvmrcfile resolutionpackage.jsonengines field validation- Version resolution and fallbacks
- Registry configuration testing
- Architecture-specific installations
Performance and resource monitoring:
- Setup time measurements across runners
- Cache performance metrics
- Resource usage monitoring
- Version switching performance
- Concurrent operations testing
Dedicated package manager testing:
- npm, yarn, and pnpm compatibility
- Lockfile handling validation
- Workspace/monorepo functionality
- Registry authentication testing
The repository includes various sample projects for comprehensive testing:
sample-projects/basic-npm/- Basic Node.js project using npmsample-projects/typescript-yarn/- TypeScript project using yarnsample-projects/esm-pnpm/- ESM project using pnpm
sample-projects/nvmrc-project/- Project with.nvmrcfilesample-projects/engines-project/- Project withenginesfield in package.json
sample-projects/monorepo/- Monorepo structure with workspaces
All workflows are triggered on:
- Pull requests to
mainormasterbranches - Push events to
mainormasterbranches - Manual dispatch (
workflow_dispatch)
This ensures comprehensive validation of setup-node changes across all scenarios.
This repository automatically validates your PRs across all supported environments. Monitor the workflow runs to ensure your changes work correctly across:
- All supported Node.js versions
- All supported operating systems
- All supported package managers
- Various project configurations
- Add new test cases to the appropriate workflow file
- Create sample projects if needed
- Update documentation to reflect new test coverage
Each workflow provides detailed logging and error reporting to help identify issues quickly. Failed runs will show:
- Specific environment where failure occurred
- Detailed error messages and logs
- Performance metrics (where applicable)
When adding new test scenarios:
- Follow the existing pattern in workflow files
- Add appropriate sample projects under
sample-projects/ - Update this README to document new test coverage
- Ensure workflows remain focused and efficient
Note: This is a testing repository for development purposes, designed to ensure the reliability and compatibility of the setup-node action across all supported environments.