Compare commits

..

6 Commits

Author SHA1 Message Date
Maryna S
ead69d56d0 Update dist files 2026-02-02 21:52:57 +02:00
Maryna S
43959a440a Resolve merge conflicts 2026-02-02 21:46:00 +02:00
aparnajyothi-y
6044e13b5d Docs: bump actions/checkout from v5 to v6 (#1468)
* Update versions.yml

* Update versions.yml

* doc update

* revert vesrions.yml
2026-01-14 21:04:21 -06:00
Panashe Fundira
8e494633d0 Fix README typo (#1226) 2026-01-14 17:08:53 -06:00
Andreas Deininger
621ac41091 README.md: bump to latest released checkout version v6 (#1446) 2026-01-14 17:06:36 -06:00
Maryna S
fc2e41dd00 Print pnpm in env details output 2025-10-30 15:10:30 +02:00
8 changed files with 51 additions and 1520 deletions

View File

@@ -115,7 +115,7 @@ See [action.yml](action.yml)
```yaml
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6
- uses: actions/setup-node@v6
with:
node-version: 24
@@ -123,7 +123,7 @@ steps:
- run: npm test
```
The `node-version` input is optional. If not supplied, the node version from PATH will be used. However, it is recommended to always specify Node.js version and don't rely on the system one.
The `node-version` input is optional. If not supplied, the node version from PATH will be used. However, it is recommended to always specify Node.js version and not rely on the system one.
The action will first check the local cache for a semver match. If unable to find a specific version in the cache, the action will attempt to download a version of Node.js. It will pull LTS versions from [node-versions releases](https://github.com/actions/node-versions/releases) and on miss or failure will fall back to the previous behavior of downloading directly from [node dist](https://nodejs.org/dist/).
@@ -164,7 +164,7 @@ See the examples of using cache for `yarn`/`pnpm` and `cache-dependency-path` in
```yaml
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6
- uses: actions/setup-node@v6
with:
node-version: 24
@@ -177,7 +177,7 @@ steps:
```yaml
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6
- uses: actions/setup-node@v6
with:
node-version: 24
@@ -193,7 +193,7 @@ This behavior is controlled by the `package-manager-cache` input, which defaults
```yaml
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6
- uses: actions/setup-node@v6
with:
package-manager-cache: false
@@ -212,7 +212,7 @@ jobs:
node: [ 20, 22, 24 ]
name: Node ${{ matrix.node }} sample
steps:
- uses: actions/checkout@v5
- uses: actions/checkout@v6
- name: Setup node
uses: actions/setup-node@v6
with:

View File

@@ -133,10 +133,11 @@ describe('main tests', () => {
describe('printEnvDetailsAndSetOutput', () => {
it.each([
[{node: '12.0.2', npm: '6.3.3', yarn: '1.22.11'}],
[{node: '16.0.2', npm: '7.3.3', yarn: '2.22.11'}],
[{node: '14.0.1', npm: '8.1.0', yarn: '3.2.1'}],
[{node: '17.0.2', npm: '6.3.3', yarn: ''}]
[{node: '12.0.2', npm: '6.3.3', yarn: '1.22.11', pnpm: ''}],
[{node: '16.0.2', npm: '7.3.3', yarn: '2.22.11', pnpm: ''}],
[{node: '14.0.1', npm: '8.1.0', yarn: '3.2.1', pnpm: ''}],
[{node: '17.0.2', npm: '6.3.3', yarn: '', pnpm: ''}],
[{node: '24.10.0', npm: '11.6.1', yarn: '', pnpm: '10.18.3'}]
])('Tools versions %p', async obj => {
getExecOutputSpy.mockImplementation(async command => {
if (Reflect.has(obj, command) && !obj[command]) {

View File

@@ -44493,7 +44493,7 @@ function getNodeVersionFromFile(versionFilePath) {
}
async function printEnvDetailsAndSetOutput() {
core.startGroup('Environment details');
const promises = ['node', 'npm', 'yarn'].map(async (tool) => {
const promises = ['node', 'npm', 'yarn', 'pnpm'].map(async (tool) => {
const pathTool = await io.which(tool, false);
const output = pathTool ? await getToolVersion(tool, ['--version']) : '';
return { tool, output };

2
dist/setup/index.js vendored
View File

@@ -55031,7 +55031,7 @@ function getNodeVersionFromFile(versionFilePath) {
}
async function printEnvDetailsAndSetOutput() {
core.startGroup('Environment details');
const promises = ['node', 'npm', 'yarn'].map(async (tool) => {
const promises = ['node', 'npm', 'yarn', 'pnpm'].map(async (tool) => {
const pathTool = await io.which(tool, false);
const output = pathTool ? await getToolVersion(tool, ['--version']) : '';
return { tool, output };

View File

@@ -8,7 +8,7 @@ Currently, `actions/setup-node` supports caching dependencies for Npm and Yarn p
For the first iteration, we have decided to not support cases where `package-lock.json` / `yarn.lock` are located outside of repository root.
Current implementation searches the following file patterns in the repository root: `package-lock.json`, `yarn.lock` (in order of resolving priorities)
Obviously, it made build-in caching unusable for mono-repos and repos with complex structure.
Obviously, it made built-in caching unusable for mono-repos and repos with complex structure.
We would like to revisit this decision and add customization for dependencies lock file location.
## Proposal
@@ -24,7 +24,7 @@ The second option looks more generic because it allows to:
## Decision
Add `cache-dependency-path` input that will accept path (relative to repository root) to dependencies lock file.
If provided path contains wildcards, the action will search all maching files and calculate common hash like `${{ hashFiles('**/package-lock.json') }}` YAML construction does.
If provided path contains wildcards, the action will search all matching files and calculate common hash like `${{ hashFiles('**/package-lock.json') }}` YAML construction does.
The hash of provided matched files will be used as a part of cache key.
Yaml examples:

1538
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -51,7 +51,7 @@
"eslint-plugin-jest": "^27.9.0",
"eslint-plugin-node": "^11.1.0",
"jest": "^29.7.0",
"jest-circus": "^30.2.0",
"jest-circus": "^29.7.0",
"jest-each": "^29.7.0",
"prettier": "^3.6.2",
"ts-jest": "^29.4.1",

View File

@@ -62,7 +62,7 @@ export function getNodeVersionFromFile(versionFilePath: string): string | null {
export async function printEnvDetailsAndSetOutput() {
core.startGroup('Environment details');
const promises = ['node', 'npm', 'yarn'].map(async tool => {
const promises = ['node', 'npm', 'yarn', 'pnpm'].map(async tool => {
const pathTool = await io.which(tool, false);
const output = pathTool ? await getToolVersion(tool, ['--version']) : '';