Compare commits

..

352 Commits
master ... main

Author SHA1 Message Date
dependabot[bot]
c2ac33f2c6
Bump undici from 5.26.5 to 5.28.3 (#965)
* Bump undici from 5.26.5 to 5.28.3

Bumps [undici](https://github.com/nodejs/undici) from 5.26.5 to 5.28.3.
- [Release notes](https://github.com/nodejs/undici/releases)
- [Commits](https://github.com/nodejs/undici/compare/v5.26.5...v5.28.3)

---
updated-dependencies:
- dependency-name: undici
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

* license and other dependencies update

* updated licenses

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: HarithaVattikuti <73516759+HarithaVattikuti@users.noreply.github.com>
2024-03-13 09:10:22 -05:00
Ben Greeley
25b062c917
Update README.md to update default Node version to 20 (#949)
The README's default example for setting up Node use version 16, which is at end of life. This PR updates those examples to use 20.
2024-02-13 11:33:00 -06:00
Dmitry Shibanov
60edb5dd54
Add support for arm64 Windows (#927)
* add support for arm64 Windows

* revert 7z to exe

* add comment

---------

Co-authored-by: aparnajyothi-y <147696841+aparnajyothi-y@users.noreply.github.com>
2024-02-06 22:42:16 -06:00
Manta Anantachai S
d86ebcd40b
Add support for volta.extends (#921)
* Add support for `volta.extends`

* Code review
2023-12-29 15:01:21 +05:30
NullVoxPopuli
b39b52d121
Fix node-version-file interprets entire package.json as a version (#865) 2023-12-14 13:53:26 +01:00
Róbert Papp
7247617371
Add package.json to node-version-file list of examples. (#879) 2023-12-13 13:02:47 +01:00
fusagiko / takayamaki
f3ec4ca66f
Fix README.md (#898)
* Fix URL of locally-cached Node.js version in README

* Change example of Major versions in Supported version syntax

setup-node v4 supports node v20, but these example may
cause misunderstanding like a v20 is not supported.

---------

Co-authored-by: fusagiko/takayamaki <takayamaki@users.noreply.github.com>
2023-12-13 12:46:19 +01:00
aparnajyothi-y
ec97f37504
Add fix for cache (#917) 2023-12-13 12:42:40 +01:00
MaksimZhukov
5ef044f9d0
Update reusable workflows to use Node.js v20 (#889) 2023-11-13 17:32:30 +01:00
Joel Wetzell
c45882a6ea
update to setup-node@v4 in docs (#884) 2023-11-13 17:02:44 +01:00
Trivikram Kamat
ee36e8b5c0
Ignore engines check in Yarn 1 e2e-cache tests (#882) 2023-11-10 15:16:46 +01:00
Dmitry Shibanov
8f152de45c
Update actions/checkout for documentation and yaml (#876) 2023-10-23 16:22:01 +02:00
Guillaume Membré
23755b521f
upgrade actions/checkout to v4 (#868) 2023-10-23 15:57:08 +02:00
Dmitry Shibanov
54534a2a9b
Change node version for action to node20 (#866) 2023-10-23 15:20:20 +02:00
Dmitry Shibanov
1a4442cacd
Update toolkit cache and core (#875) 2023-10-23 12:20:07 +02:00
Nikolai Laevskii
6e9e44895f
Merge pull request #872 from akv-platform/add-notice-about-binaries-not-being-updated
Add notice about binaries not being updated yet
2023-10-19 17:20:27 +02:00
Nikolai Laevskii
e52912ef25 Update tests 2023-10-19 17:12:39 +02:00
Nikolai Laevskii
ac16ae42d7 Update message to use waning instead of info 2023-10-19 16:59:10 +02:00
Nikolai Laevskii
5a8d9111e3 Update build 2023-10-19 14:31:08 +02:00
Nikolai Laevskii
9e956a555c Add notice about binaries not being updated yet 2023-10-19 13:43:56 +02:00
dependabot[bot]
7da2a7eb0c
Bump @babel/traverse from 7.15.4 to 7.23.2 (#870) 2023-10-19 10:40:59 +02:00
Nikolai Laevskii
2a017f350d
Merge pull request #859 from actions/update-temp-directory-creation
Update temp directory creation
2023-10-09 07:12:35 +02:00
Dmitry Shibanov
72c43c2d8f
Update semver (#861) 2023-09-27 12:57:35 +02:00
Nikolai Laevskii
d3ace34546 Update build 2023-09-25 16:37:45 +02:00
Nikolai Laevskii
acbf0586b1 Fix typo 2023-09-25 15:58:01 +02:00
Nikolai Laevskii
f1744b62b7 Update license 2023-09-25 15:58:01 +02:00
Nikolai Laevskii
2651591c72 Update temporary directory creation 2023-09-25 15:58:01 +02:00
Dmitry Shibanov
5e21ff4d9b
Remove filter for cached paths (#831) 2023-08-15 15:53:46 +02:00
Dmitry Shibanov
bea5baf987
change getinput to getstate for cache (#816) 2023-08-10 16:32:24 +02:00
dependabot[bot]
d82f92a0eb
Bump word-wrap from 1.2.3 to 1.2.4 (#815)
Bumps [word-wrap](https://github.com/jonschlinkert/word-wrap) from 1.2.3 to 1.2.4.
- [Release notes](https://github.com/jonschlinkert/word-wrap/releases)
- [Commits](https://github.com/jonschlinkert/word-wrap/compare/1.2.3...1.2.4)

---
updated-dependencies:
- dependency-name: word-wrap
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-08-04 09:56:30 +02:00
Vytis Valentinavičius
ca2d4e0cdd
feat: handling the case where "node" is used for tool-versions file. (#812) 2023-07-18 13:01:34 +02:00
Dmitry Shibanov
c7a93deeac
resolve SymbolicLink (#809) 2023-07-13 14:06:23 +02:00
Dmitry Shibanov
34050076a5
Add check for existing paths (#803) 2023-07-13 14:03:41 +02:00
Jeff Wen
f8aa08ed8e
Update check-dist workflow name (#710) 2023-07-12 19:35:39 +02:00
Louis Lam
e2d34eacc8
Fix armv7 cache issue (#794) 2023-07-12 16:09:57 +02:00
dependabot[bot]
ef9c88b169
Bump semver from 6.1.2 to 6.3.1 (#807) 2023-07-12 13:17:54 +02:00
dependabot[bot]
ea800d4ebc
Bump tough-cookie and @azure/ms-rest-js (#802) 2023-07-12 12:47:57 +02:00
Dmitry Shibanov
cb95c398f6
Update toolkit cache to fix zstd (#804) 2023-07-12 12:13:18 +02:00
Olle Jonsson
69b2dd252e
Refer to semver package name in README.md (#808) 2023-07-11 10:03:08 +02:00
Sergey Dolin
e33196f742
Do not ivalidate the cache entirely on lock file change (#744)
* Do not ivalidate the cache entirely on yarn3 lock file change

* Use cache prefix if all sub-projects are yarn managed

* Rename functions & add e2e tests
2023-06-27 13:07:43 +02:00
Dmitry Shibanov
c6722d36aa
update doc for frozen lock file (#789) 2023-06-22 15:55:14 +02:00
Sergey Dolin
8170e22e8f
Detect cached folders from multiple directories (#735)
* Add project-dir

* Fix find lock file

* Remove package-dir input

* format & resolve conflicts

* Add unit tests

* build dist

* Apply change request fixes

* handle non-dir cache-dependency-path

* bump cache version

* run checks

* Handle globs in cacheDependencyPath

* refactor, introduce `cacheDependencyPathToProjectsDirectories`

it is necessary for the next PR related yarn optimization

* Changes requests

* Apply fixes

* review fixes

* add e2e

* Add unique

* review updates

* review updates second stage

* Review fixes 3

* imporve e2e tests
2023-06-21 17:52:17 +02:00
Muhun Kim
698d50532e
Fix description about ensuring workflow access to private package (#704) 2023-06-15 17:10:28 +02:00
Marko Zivic
869f4dd0c7
Merge pull request #758 from akv-platform/remove-implicit-dependencies
Remove implicit dependencies
2023-05-26 08:31:08 +02:00
Nikolai Laevskii
10efafcbcf Update canary version in tests to an existing one 2023-05-25 14:57:36 +02:00
Nikolai Laevskii
7d16907b89 Add missing dependency 2023-05-23 16:33:19 +02:00
Nikolai Laevskii
d0d39bda2f Move eslint-plugin-node to dev dependencies 2023-05-23 11:58:21 +02:00
Nikolai Laevskii
15a2477e08 Install eslint-plugin-node 2023-05-23 11:43:00 +02:00
github-actions[bot]
7598dbcd6e Update configuration files 2023-05-23 08:38:21 +00:00
Philip Harrison
a9893b0cfb
Update to node 18.x (#751) 2023-05-10 16:04:46 +02:00
Dmitry Shibanov
5b32c9063c
Update xml2js (#742) 2023-04-20 12:55:12 +02:00
Adam Jones
d98fa11138
bugfix: Don't attempt to use Windows fallbacks on non-Windows OSes (#718) 2023-04-11 09:31:41 +02:00
Dmitry Shibanov
9d255ef245
Adjust usage section (#734) 2023-04-06 10:52:43 +02:00
Ivan
e828f9b7f3
Fix glob bug in package.json scripts section (#729) 2023-04-03 12:46:05 +02:00
github-actions[bot]
a4fcaaf314
Update configuration files (#708)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2023-03-15 00:27:36 +01:00
Marko Zivic
10f5623502
Merge pull request #705 from akv-platform/reusable-workflow
Turn on automatic update of ESLint and Prettier configuration files
2023-03-10 10:55:11 +01:00
IvanZosimov
fcd18100cc Add update-config-files.yml 2023-03-08 11:13:04 +01:00
Ivan
962678f22c
Add and configure ESLint and update configuration for Prettier (#703)
* Add ESLinter and update Prettier

* Update eslint config

* Update dependencies

* Rebuild action

* Update package.json

* Updates docs

* Update docs
2023-03-08 10:47:38 +02:00
Mark
7c29869aec
docs: fix typo in advanced-usage.md (#697) 2023-02-20 11:15:36 +01:00
Ivan
ae9f0f7448
Update workflow badges (#685) 2023-01-31 08:45:30 +02:00
MaksimZhukov
3dbcda8bc2
Update release-new-action-version.yml (#664) 2023-01-12 13:50:58 +01:00
Phan An
f38519bb96
Fix a minor typo (#662) 2023-01-11 01:01:08 +01:00
Jongwoo Han
9227cda3f0
Replace workflow badge with new badge (#653) 2023-01-10 10:59:38 +01:00
Dmitry Shibanov
64ed1c7eab
Add support for v8-canary, nightly and rc (#655) 2023-01-05 13:16:21 +01:00
Marko Zivic
92a57f4a93
Merge pull request #650 from actions/update-code-owners
Update CODEOWNERS
2022-12-27 09:28:45 +01:00
Evgenii Korolevskii
99e61d697a
Update CODEOWNERS 2022-12-26 09:44:31 +01:00
Marko Zivic
3e8819f8f2
Merge pull request #649 from actions/update-codeowners
Update CODEOWNERS
2022-12-23 08:27:39 +01:00
Evgenii Korolevskii
8cd2fb28b8
Update CODEOWNERS 2022-12-23 00:07:20 +01:00
Ivan
c406543918
Merge pull request #647 from akv-platform/apply-reusable-workflows
Update action to use reusable workflows
2022-12-22 10:48:47 +02:00
IvanZosimov
92a07fe466 Fix review points 2022-12-20 16:40:38 +01:00
IvanZosimov
217387cf3e Update action to use reusable-workflows repo 2022-12-19 13:43:06 +01:00
IvanZosimov
2db3663870 Merge branch 'main' of https://github.com/akv-platform/setup-node into apply-reusable-workflows 2022-12-19 13:41:43 +01:00
Evan Mattson
bbe2ac79a1
Fix typo in README (#646) 2022-12-19 10:12:38 +01:00
IvanZosimov
f5ab623822 Add links to reusable workflows 2022-12-15 16:39:43 +01:00
IvanZosimov
ca97bf7f80 Update workflows 2022-12-15 16:09:18 +01:00
IvanZosimov
fe4d514f1a Update codeql-analysis workflow 2022-12-15 15:05:14 +01:00
IvanZosimov
8151ea11a4 Setup codeql-analysis workflow 2022-12-15 14:41:30 +01:00
IvanZosimov
772ffdda26 Update package.json 2022-12-14 13:44:44 +01:00
IvanZosimov
da188081b1 Update workflows to use reusable-workflows 2022-12-14 13:42:03 +01:00
Sergey Dolin
377c6dae40
Merge pull request #639 from akv-platform/v-sdolin/early-return
Use early return pattern to avoid nested conditions
2022-12-12 11:12:53 +01:00
Sergey Dolin
b28830cbe2 replace throw with warn 2022-12-12 10:21:16 +01:00
Sergey Dolin
676975d9aa Use early return pattern 2022-12-09 11:41:54 +01:00
Sergey Dolin
d1b197b965
Merge pull request #637 from akv-platform/v-sdolin/npmrc-dup
Fix scoped registries are duplicated in npmrc
2022-12-06 12:14:53 +01:00
Sergey Dolin
069a4f8926 Add dist 2022-12-05 13:37:05 +01:00
Sergey Dolin
e77eaaccd3 Add unit tests 2022-12-05 13:36:23 +01:00
Sergey Dolin
a69d45adcd Add modification of scoped registry 2022-12-05 13:32:26 +01:00
James M. Greene
3ae886ede4
Update to latest actions/publish-action (#630) 2022-11-28 19:06:52 +01:00
Sergey Dolin
41acaa2e85
fix version output from file (#625) 2022-11-17 14:43:40 +01:00
Dmitry Shibanov
2349c84f5c
Add support for nightly and rc versions (#611) 2022-11-17 14:35:58 +01:00
Dmitry Shibanov
6bc15ab23c
Update minimatch (#608) 2022-11-14 13:34:05 +01:00
Dmitry Shibanov
9b8fcdc725
change datadog to ubuntu docker image (#620) 2022-11-09 18:18:47 +01:00
Dmitry Shibanov
00e1b6691b
Pass the token input through on GHES (#595) 2022-11-02 12:24:44 +01:00
Dmitry Shibanov
16352bb09b
Get rid of warnings for set-output (#607) 2022-10-25 16:37:59 +02:00
Dmitry Shibanov
788c6ccbd0
remove node-version 12 from matrix (#594) 2022-10-17 12:23:04 +02:00
Francesco Renzi
8c91899e58
Update @actions/core to 1.10.0 (#587) 2022-10-13 12:11:08 +02:00
Uladzimir Havenchyk
c81d8ad96d
Print node, npm and yarn versions after installation (#368) 2022-10-03 16:02:04 +02:00
Dmitry Shibanov
c96ab56c5b
Add information about always-auth input (#585) 2022-10-03 15:15:33 +02:00
Evgenii Korolevskii
969bd26639
Fix test volta priority (#577) 2022-09-26 13:58:23 +02:00
Marko Zivic
9f3a02bbd1
Merge pull request #532 from jef/main
feat: add volta as node-version-file
2022-09-12 12:48:35 +02:00
Jef LeCompte
4cffe5c52b
chore: remove sponge usage 2022-09-08 13:19:32 -07:00
Jef LeCompte
0efefb3c0b
Merge remote-tracking branch 'upstream/main' 2022-09-08 13:13:20 -07:00
Jef LeCompte
1e6f2cd312
test: add volta e2e test 2022-09-08 13:12:30 -07:00
Dmitry Shibanov
30f0e7dc5a
Update @actions/core to 1.9.1 (#574) 2022-09-08 15:15:16 +02:00
Shude Li
c8f0d10585
upgrade @action/cache to 3.0.4 to fix stuck issue (#573) 2022-09-08 14:53:41 +02:00
Milos Pantic
b4b18e5317
Update package json version (#570) 2022-09-05 13:22:56 +02:00
Marko Zivic
9efe00a002
Merge pull request #569 from e-korolevskii/main
docs(contributor's guide): Update link
2022-08-31 10:01:23 +02:00
Evgenii Korolevskii
35ba06beb7 docs(contributor's guide): Update link 2022-08-31 09:52:01 +02:00
Marko Zivic
9fc76ff685
Merge pull request #567 from al-cheb/al-cheb/update-doc-link
Update runner link
2022-08-30 10:16:19 +02:00
Aleksandr Chebotov
dc62cc63a8 Update runner link 2022-08-29 16:10:46 +02:00
Marko Zivic
d04c34e7d9
Merge pull request #564 from lkfortuna/patch-1
Update README.md
2022-08-29 10:09:15 +02:00
Larissa Fortuna
32f78d9bfa
Update README.md
Updating term "virtual environments" to "runner images" and updating links
2022-08-25 15:35:44 -07:00
Marko Zivic
e954e15431
Merge pull request #561 from akv-platform/v-sdolin/yarn2
Add caveat for Yarn 2+ and private repos
2022-08-22 09:03:30 +02:00
Sergey Dolin
792255d078 Fix wording 2022-08-22 08:20:41 +02:00
Sergey Dolin
089aa7ea91 Add caveat for Yarn 2+ and private repos 2022-08-19 12:21:26 +02:00
Marko Zivic
094c36e88e
Merge pull request #555 from e-korolevskii/update-contributors-guide
Update contributors guide
2022-08-10 16:44:31 +02:00
Evgenii Korolevskii
5bbf7221ae
Merge branch 'actions:main' into update-contributors-guide 2022-08-10 16:39:49 +02:00
Evgenii Korolevskii
dbb54d08f2
Update docs/contributors.md
Co-authored-by: Ivan <98037481+IvanZosimov@users.noreply.github.com>
2022-08-09 23:56:01 +02:00
Jef LeCompte
3a1b76e782
refactor: remove locally caught exceptions 2022-08-04 09:33:09 -07:00
Jef LeCompte
94f88d78c4
Merge remote-tracking branch 'upstream/main' 2022-08-04 09:28:48 -07:00
Vladimir Safonkin
348e008008
Fix node version file parsing (#553)
* Fix node version file parsing

* Build index.js

* Non-json file error handling

* Format code

* Add package.json to e2e tests

* Minor fix
2022-08-04 09:57:19 +02:00
Jef LeCompte
d79e93a91d
docs: add package.json information 2022-08-03 16:37:58 -07:00
Evgenii Korolevskii
5d6bb1273a rephased documents 2022-08-03 19:26:34 +02:00
Evgenii Korolevskii
0d3aa68dd3 format 2022-08-01 01:27:02 +02:00
Evgenii Korolevskii
18090dee77 updated docs 2022-08-01 01:24:36 +02:00
Jef LeCompte
bb59d50268
chore: run prettier 2022-07-27 14:35:09 -07:00
Jef LeCompte
5b579f1638
refactor: check volta first, then engine 2022-07-27 14:31:06 -07:00
Jef LeCompte
9f20343a3a
style: change test name 2022-07-27 14:27:21 -07:00
Jef LeCompte
dee2a9689c
chore: run build 2022-07-27 14:26:16 -07:00
Jef LeCompte
57cec77d94
refactor: volta check 2022-07-27 14:25:39 -07:00
Jef LeCompte
5a01179c35
Merge remote-tracking branch 'upstream/main' 2022-07-27 14:15:58 -07:00
mannie.exe
2a814b57e1
Respect package.json's engines.node field when used as a node-version-file (#485)
* Allow reading 'package.json' as node-version-file

* Run 'npm run build'

* Read package.json contents directly during tests

- this eliminates OS-specific line-ending issues

* Run project Prettier 💅
2022-07-21 13:17:21 -04:00
Dmitry Shibanov
2fddd8803e
fixing pnpm output issue (#545) 2022-07-13 16:20:39 +02:00
Marko Zivic
ad8542ca5e
Merge pull request #540 from dmitry-shibanov/fix-error-node-version
Fix error node version output
2022-07-12 15:59:02 +02:00
Dmitry Shibanov
3d11add771 remove unused import 2022-07-12 14:44:36 +02:00
Dmitry Shibanov
072a2e3b10 add trim and silent true 2022-07-12 14:19:55 +02:00
Dmitry Shibanov
28ad38fe06 add try catch 2022-07-12 10:45:50 +02:00
Dmitry Shibanov
48de4c13f6 change to streams 2022-07-12 10:36:10 +02:00
Dmitry Shibanov
aab7cc882a add silent 2022-07-12 10:30:30 +02:00
Marko Zivic
5b949b50c3
Merge pull request #373 from ganta/add-support-for-asdf-format-as-node-version-file
Add support for asdf format as Node.js version file
2022-07-11 13:48:55 +02:00
Christian Clauss
09ba51f18e
README.md: Encourage testing on current Node.js (#533) 2022-07-07 14:53:32 +02:00
AJ Jordan
b3ca1ac971
Support npm-shrinkwrap.json out-of-the-box (#439) 2022-07-04 23:29:56 +02:00
Marko Zivic
78faa555e1
Merge pull request #534 from panva/set-version-output
set node-version output (2022 edition)
2022-07-04 14:45:20 +02:00
Marko Zivic
0f15a51ed6
Merge pull request #528 from jamesottaway/patch-1
docs: Include warning when configuring token to install private packages
2022-07-04 10:38:01 +02:00
Filip Skokan
460f88643a fixup mocked version output 2022-07-01 01:30:18 +02:00
Filip Skokan
d8b0944270 add mock for getExecOutput in installer.test.ts 2022-07-01 01:27:37 +02:00
James Ottaway
0ad06209dd
Update advanced-usage.md 2022-07-01 09:12:46 +10:00
Filip Skokan
adeb189fd8 apply review feedback 2022-07-01 00:46:13 +02:00
Filip Skokan
0d7418813c run build&format 2022-07-01 00:28:26 +02:00
Filip Skokan
3ac35dad40 This PR adds node-version to the action output.
This is present in e.g. setup-python
https://github.com/actions/setup-python/blob/main/action.yml

closes #150
2022-06-30 21:56:36 +02:00
Jef LeCompte
4096f07b51
chore: run prettier 2022-06-30 09:57:00 -07:00
Jef LeCompte
1c48dc5a9e
chore: trim no matter what 2022-06-30 09:22:35 -07:00
Jef LeCompte
d86a20eb78
test: fix versionSpec 2022-06-30 09:17:18 -07:00
Jef LeCompte
8211e009a7
docs: update verbiage for package.json 2022-06-29 15:39:34 -07:00
Jef LeCompte
dbfbe9b6da
refactor: move volta logic 2022-06-29 15:37:53 -07:00
Jef LeCompte
9aa86428fe
chore: run prettier 2022-06-29 15:11:14 -07:00
Jef LeCompte
f40b60859d
docs: add special volta usage 2022-06-29 12:30:42 -07:00
Jef LeCompte
a03d9f05e4
test: add node-version-file test 2022-06-29 12:28:21 -07:00
Jef LeCompte
1a4ff5493d
feat: add volta as node-version-file 2022-06-29 12:01:42 -07:00
Marko Zivic
7d610f0c26
Merge pull request #526 from IvanZosimov/CacheVersionUpdate
Add support for the @actions/cache library 3.0.0
2022-06-28 10:07:26 +02:00
IvanZosimov
bcb9f31327 Format cache-save.test.ts 2022-06-27 10:19:35 +02:00
IvanZosimov
73ea510762 Update unit-tests for cache-save.ts file, add coverage option to Jest 2022-06-27 10:17:28 +02:00
IvanZosimov
eaead3517c Update cache-save.ts to support @actions/cache v3.0.0 lib 2022-06-27 10:11:42 +02:00
James Ottaway
24301fe9fb
docs: Include warning when configuring token to install private packages
The distinction between `secrets.GITHUB_TOKEN` and `secrets.NPM_TOKEN` cost myself and a colleague numerous hours when we were trying to fix a GitHub Actions workflow which needed to install a private package from a different repository from our GitHub organisation.

Given the issue dedicated to this point is closed, we should include a warning here to make it more clear why `secrets.GITHUB_TOKEN` will not work when passed to `npm ci`, in the presence of private packages from other GitHub Package repositories.
2022-06-27 09:28:13 +10:00
Ivan
11c7f932ce
Merge pull request #2 from dmitry-shibanov/v-dmshib/cacheVersionUpdate
Update licenses
2022-06-24 14:53:04 +02:00
Dmitry Shibanov
f1702f8f38 update licenses 2022-06-24 12:47:26 +02:00
IvanZosimov
1196f2ae1b Rebuild action with the new @actions/cache dependency 2022-06-24 12:36:36 +02:00
IvanZosimov
c22fc3c628 Update the version of @actions/cache library to 3.0.0 2022-06-24 12:22:20 +02:00
Rob
cdcc53e14f
Update README.md (#522) 2022-06-17 20:47:55 +02:00
Jack Bates
b287e177c9
Document * vs. current/latest/node difference (#508) 2022-06-14 14:13:13 +02:00
Jack Bates
eeb10cff27
Support lts/-n aliases (#481) 2022-06-02 12:30:33 +02:00
Hideki Igarashi
dbb64ac1d1 Add support for asdf format as Node.js version file 2022-05-30 20:13:04 +09:00
Hideki Igarashi
82496765f3 Add tests for parseNodeVersionFile 2022-05-30 20:05:14 +09:00
Dmitry Shibanov
ed1a46e9f2
Update zeit/ncc to vercel/ncc (#476) 2022-05-30 11:56:20 +02:00
Marko Zivic
daff393d43
Merge pull request #496 from panticmilos/v-mpantic/get-latest-version-from-cache
Get latest version from cache if exists
2022-05-30 09:13:35 +02:00
panticmilos
b14573ddb9 remove installer import 2022-05-23 12:53:31 +02:00
panticmilos
7569de03e7 rename dist manifest to node versions 2022-05-20 16:32:52 +02:00
panticmilos
b20a2561b9 get manifest once 2022-05-20 13:45:28 +02:00
_XiaoTian
ea3459bb45
docs: Update advanced-usage.md (#495)
* Update advanced-usage.md

* Update advanced-usage.md

* Update advanced-usage.md

* Update docs/advanced-usage.md

Co-authored-by: Brian Cristante <33549821+brcrista@users.noreply.github.com>

Co-authored-by: Brian Cristante <33549821+brcrista@users.noreply.github.com>
2022-05-19 13:32:26 -04:00
panticmilos
141334fcd1 remove unnecessary dist call 2022-05-19 18:21:03 +02:00
panticmilos
808c8f917f remove bumping deps 2022-05-19 17:38:21 +02:00
panticmilos
fd1b409bc3 unit tests 2022-05-19 17:33:13 +02:00
panticmilos
9a03ebd9cc run build 2022-05-19 17:06:51 +02:00
panticmilos
45e544a71a fix versionSpec required error 2022-05-19 17:02:08 +02:00
panticmilos
8c66f89aef improve latest version syntax 2022-05-19 16:48:16 +02:00
tooomm
3601f2a33e
improve version syntax presentation (#493) 2022-05-18 09:50:55 +02:00
Jack Bates
4d62fafc05
Add test for node-version * (#491) 2022-05-18 09:50:05 +02:00
Milos Pantic
17f8bd9264
Expand current syntax to support aliases for latest version (current/latest/node) (#483) 2022-05-12 17:26:02 +02:00
Jon Koops
b067f78ed3
Use CI friendly commands in documentation (#326) 2022-05-05 16:16:51 +02:00
Matthias Christoph Munder
0bd06765ef
Improve advanced usage docs (#472) 2022-05-01 16:59:15 +02:00
Adam Stachowicz
25184c4485
Update README.md (#475)
* Update README.md

* Update README.md
2022-04-26 11:11:03 -04:00
Araxeus
337fdf2194
fix broken link in readme (#473)
* fix broken link

* fix broken link
2022-04-22 08:58:19 -04:00
Philipp Bammes
86bf502a33
extend documentation on scope parameter (#470)
This also ends all descriptions with a full stop (`.`).
2022-04-19 13:43:19 -04:00
Dmitry Shibanov
146c4d84a5
improve caching documentation (#468) 2022-04-18 16:15:27 +02:00
Deepak Dahiya
56337c4255
Updated @actions/cache (#460)
* Updated @actions/cache

* Licensed cache

* new build

* Updated version
2022-04-11 19:06:18 +05:30
Anil Seervi
76d3665dc0
Convert CONDUCT to CODE_OF_CONDUCT.md (#391)
* Rename CONDUCT to CODE_OF_CONDUCT.md

* Update CODE_OF_CONDUCT link
2022-04-05 11:16:57 -04:00
Peter Mescalchin
5b52f097d3
Bump actions/checkout@v3 within advanced usage examples documentation (#456) 2022-04-01 10:41:49 +02:00
Peter Mescalchin
75716637dc
Bump to actions/checkout@v3 (#437) 2022-04-01 10:13:52 +02:00
Peter Mescalchin
546fd45825
Updated documentation/workflows to use actions/setup-node@v3 (#433)
* Update documentation `actions/setup-node@v2` -> `actions/setup-node@v3`

* Bump workflows to `actions/setup-node@v3`

* Update `README.md` workflow status badges to new format
2022-03-31 15:14:07 -04:00
Dmitry Shibanov
bacd6b4b3a
Caching on GHES (#452)
* add support for ghes caching

* fix licesnses

* work on resolving comments

* change internal error to warning

* fix warning for internal errors

* update version
2022-03-31 15:10:37 -04:00
Brian Cristante
bed538bd04
Merge pull request #448 from actions/dependabot/npm_and_yarn/minimist-1.2.6
Bump minimist from 1.2.5 to 1.2.6
2022-03-24 09:33:20 -04:00
dependabot[bot]
f3e93d1b9d
Bump minimist from 1.2.5 to 1.2.6
Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](https://github.com/substack/minimist/compare/1.2.5...1.2.6)

---
updated-dependencies:
- dependency-name: minimist
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-24 11:54:46 +00:00
Brian Cristante
ed960c9656
Merge pull request #440 from actions/joshmgross/service-codeowners
Update CODEOWNERS to actions-service
2022-03-10 13:32:59 -05:00
Josh Gross
77f43a4400
Update CODEOWNERS to actions-service 2022-03-10 13:27:02 -05:00
Dmitry Shibanov
9ced9a43a2
remove version input (#424) 2022-02-24 16:31:57 +03:00
Dmitry Shibanov
3e90744edf
Update lockfileVersion (#422) 2022-02-24 14:42:19 +03:00
Thomas Boop
28df918a56
Update default runtime to node16 (#414) 2022-02-22 11:28:24 +03:00
Meng Ye
f099707f6e
fix tsc build error for @actions/http-client (#402) 2022-01-11 13:06:36 +03:00
Nick Schonning
f658dc5bd7
ci: use NPM cache in check-dist (#393) 2022-01-06 16:27:25 +03:00
Oscar Dominguez
5e2e068714
ci(workflow): add cache to workflows using actions/setup-node (#287) 2021-12-30 17:05:57 +03:00
HonkingGoose
7a0f7a9962
Fix grammar in the README (#331) 2021-12-30 17:01:04 +03:00
Nick Schonning
7b558676dd
chore: Remove strategy for non-matrix builds (#186) 2021-12-30 16:58:49 +03:00
Dmitry Shibanov
1f8c6b94b2
Pass to warning uncaught exceptions (#359) 2021-12-28 12:25:43 +03:00
Dmitry Shibanov
9a74eb4e64
Throw error only if exit code is note zero. (#358) 2021-12-27 12:34:06 +03:00
Dmitry Shibanov
04c56d2f95
update cache to 1.0.8 (#367) 2021-11-29 13:35:08 +03:00
Hargun Kaur
d08cf22211
Adding Node.js version file support (#338) 2021-11-29 12:18:31 +03:00
Alexander Forbes-Reed
360ab8b75b
Fix typo in the bug_report template (#353) 2021-11-03 13:20:09 +03:00
Dmitry Shibanov
fd4bd829f2
Add issue and pull request templates (#344) 2021-10-18 13:39:58 +03:00
Dmitry Shibanov
a4b8ed2f4e
Update dependencies (#346) 2021-10-14 13:18:01 +03:00
MaksimZhukov
270253e841
Merge pull request #327 from WtfJoke/addCacheHitOutPut
Add 'cache-hit' as output
2021-09-24 18:27:23 +03:00
Manuel
d1178716db Add 'cache-hit' as output 2021-09-23 13:17:32 +00:00
MaksimZhukov
041bafb672
Merge pull request #322 from brcrista/brcrista/check-dist
Create check-dist.yml
2021-09-16 18:12:52 +03:00
Brian Cristante
996306e892 rm __tests__/verify-no-unstaged-changes.sh 2021-09-16 10:54:26 -04:00
Brian Cristante
85d4122530 Fix triggers in licensed.yml 2021-08-25 11:29:51 -04:00
Brian Cristante
928244ce45 Add check-dist.yml 2021-08-25 11:29:50 -04:00
MaksimZhukov
25316bbc1f
Merge pull request #305 from MaksimZhukov/mazhuk/adding-support-for-monorepos
Support caching for mono repos and repositories with complex structure
2021-08-05 19:17:12 +03:00
Maxim Lobanov
76a4cff9ae update readme and dist files 2021-08-05 12:00:47 +00:00
Maxim Lobanov
a869e7cc2d Merge branch 'main' of https://github.com/MaksimZhukov/setup-node into mazhuk/adding-support-for-monorepos 2021-08-05 11:48:54 +00:00
MaksimZhukov
a0cdab1110
Merge pull request #299 from actions/malob/adr-caching-monorepos
ADR for support caching for mono repos and repositories with complex structure
2021-08-05 10:53:54 +03:00
Alena Sviridenko
4d0182af5e
Merge pull request #310 from actions/revert-308-v-alsvir/disable-cache-usage-temp-v2
Revert "Temporarily disabled cache usage for v2"
2021-08-04 17:21:06 +03:00
Alena Sviridenko
896ee80599
Restore YARN flag 2021-08-04 17:04:32 +03:00
Alena Sviridenko
d21ecc7c5b
Revert "Temporarily disabled cache usage for v2" 2021-08-04 17:00:35 +03:00
Alena Sviridenko
d6e3b5539e
Merge pull request #308 from actions/v-alsvir/disable-cache-usage-temp-v2
Temporarily disabled cache usage for v2
2021-08-03 19:20:30 +03:00
AlyonaSviridenko
db716f881a Add yarn env variable 2021-08-03 18:53:52 +03:00
AlyonaSviridenko
c24389f79e Staging unstaged 2021-08-03 18:37:52 +03:00
AlyonaSviridenko
004fb83876 Temporarily disabled cache usage 2021-08-03 18:33:25 +03:00
MaksimZhukov
180b77fed2 Update the caching section in the README 2021-08-03 17:18:13 +03:00
MaksimZhukov
9f31dbbbc4 Support caching for mono repos and repositories with complex structure 2021-08-02 20:44:59 +03:00
MaksimZhukov
aa759c6c94
Merge pull request #278 from jacobwgillespie/cache-pnpm
Add pnpm caching support
2021-07-20 15:22:13 +03:00
Jacob Gillespie
0ae03de2b7
Reorder to npm, yarn, pnpm 2021-07-15 20:14:30 +01:00
Maxim Lobanov
4bc87b8e10
Bump e2e tests to 6.10.0 2021-07-15 14:51:41 +03:00
Jacob Gillespie
b96348a4e9
Remove unused imports 2021-07-15 12:46:07 +01:00
Jacob Gillespie
3af302a4f2
Switch to pnpm store path command 2021-07-15 12:43:19 +01:00
Jacob Gillespie
f452812b44
Unmock fs.existsSync after tests 2021-07-15 12:40:08 +01:00
Maxim Lobanov
f43d8a1f27 Update 0001-support-caching-deps-for-monorepos.md 2021-07-15 13:23:09 +03:00
Jacob Gillespie
e93556ca66
Mock fs.existsSync in tests 2021-07-14 20:11:07 +01:00
Jacob Gillespie
0453e516eb
Regenerate compiled files 2021-07-14 15:25:55 +01:00
Jacob Gillespie
399982b368
Move existence check to cache-save 2021-07-14 15:25:45 +01:00
Jacob Gillespie
d278e78bdd
Add logic to check that cache folder exists 2021-07-14 13:06:33 +01:00
Jacob Gillespie
fdbc93ea6e
Add disclaimer to pnpm action example, pin action 2021-07-14 13:03:28 +01:00
Jacob Gillespie
f24e78e0f6
Update __tests__/cache-save.test.ts
Co-authored-by: Konrad Pabjan <konradpabjan@github.com>
2021-07-14 13:01:18 +01:00
Maxim Lobanov
3c1fbef7d3 Update 0001-support-caching-deps-for-monorepos.md 2021-07-13 20:35:24 +03:00
Maxim Lobanov
5aa72c249a
Apply suggestions from code review
Co-authored-by: Alena Sviridenko <alenasviridenko@github.com>
2021-07-13 19:36:58 +03:00
Maxim Lobanov
d9aab2aba4 dra 2021-07-13 16:28:09 +03:00
Jacob Gillespie
162ddf7c40
Add pnpm caching support 2021-06-30 20:17:23 +01:00
Maxim Lobanov
38d90ce44d
Merge pull request #277 from actions/malob/update-readme
Update readme to describe new NVM LTS syntax
2021-06-30 15:20:50 +03:00
Maxim Lobanov
e1e1d4c853
Update README.md
Co-authored-by: Alena Sviridenko <alenasviridenko@github.com>
2021-06-30 15:12:34 +03:00
Maxim Lobanov
40f85c8c97 update readme 2021-06-30 15:07:45 +03:00
Maxim Lobanov
e215578cb0
Merge pull request #272 from akv-platform/add-caching-for-node-dependencies
Implementation of node's caching
2021-06-30 14:07:42 +03:00
Maxim Lobanov
9af89732f0
Merge pull request #274 from actions/v-mazhuk/automate-releasing-new-versions
Automate releasing new action versions
2021-06-30 14:05:58 +03:00
Dmitry Shibanov
cfe70f9fe8 update dependencies 2021-06-30 13:08:07 +03:00
Dmitry Shibanov
b259ba49fe rebuild project 2021-06-30 11:41:00 +03:00
Dmitry Shibanov
55e10498cf Merge branch 'main' into add-caching-for-node-dependencies 2021-06-30 11:39:23 +03:00
Maxim Lobanov
bcb4cecf9b
Merge pull request #270 from gordey4doronin/gordey/support-lts-syntax
Support LTS aliases
2021-06-30 11:32:30 +03:00
Dmitry Shibanov
72922790cb fix for documentation 2021-06-30 10:39:46 +03:00
Gordey Doronin
48042628a6 Stricter check and cleaner messaging 2021-06-30 09:34:42 +02:00
Gordey Doronin
8624ddbdce Extract common setup logic to hook 2021-06-30 09:27:49 +02:00
Maxim Lobanov
282049a5b1
regenerate license (#7)
* regenerate license

* npm run build

* sync branches

* rebuild project

* fix test

Co-authored-by: Dmitry Shibanov <dmitry-shibanov@github.com>
2021-06-29 13:34:35 +03:00
MaksimZhukov
87a21fa69e
Automate releasing new action versions 2021-06-29 12:33:36 +03:00
Maxim Lobanov
e79375d669
Merge pull request #266 from actions/malob/cache-adr
Create ADR for integrating cache functionality to setup-node action
2021-06-29 09:50:06 +03:00
Gordey Doronin
57b9c8c424 Don't run verify check on lts syntax 2021-06-25 12:13:33 +02:00
Gordey Doronin
4bef829942 Add e2e test for lts-syntax 2021-06-25 11:56:15 +02:00
Gordey Doronin
9b447f0b81 Fix paths for windows tests 2021-06-25 11:48:41 +02:00
Dmitry Shibanov
d36a3314a5 work on resolving comments 2021-06-25 12:06:49 +03:00
Gordey Doronin
c2dfe2df98 Reuse manifest code 2021-06-22 17:52:06 +02:00
Dmitry Shibanov
f2b87bb2c2 Squashed commit of the following:
commit 446068aff1ec25da69c5b6af6d01dd19b230b4b2
Author: Alena Sviridenko <alenasviridenko@github.com>
Date:   Tue Jun 22 17:51:35 2021 +0300

    updated headers

commit d7e254e6e9534bb627373b7e40400cc45a888815
Author: Alena Sviridenko <alenasviridenko@github.com>
Date:   Thu Jun 17 17:35:34 2021 +0300

    updated links

commit ffd9956eda8c43e846f3305bad21fa064b07280f
Author: AlyonaSviridenko <alenasviridenko@github.com>
Date:   Thu Jun 17 17:33:41 2021 +0300

    Added advanced usage

commit 1e068f031030962d380a1bae32beb806d1c6f818
Author: AlyonaSviridenko <alenasviridenko@github.com>
Date:   Thu Jun 17 15:07:42 2021 +0300

    Updated readme with caching

commit 7528c3399a9c8e0b4e63f7a079e0078af6b92d6a
Author: Maxim Lobanov <v-malob@microsoft.com>
Date:   Wed Jun 16 14:43:46 2021 +0300

    Update versions.yml
2021-06-22 18:32:22 +03:00
Gordey Doronin
d9ce83b637 Formatter 2021-06-22 16:11:44 +02:00
Gordey Doronin
56c3db9dda Cleanup redundant leftover 2021-06-22 15:51:57 +02:00
Gordey Doronin
92722aec8c Logic remastered to not force check-latest 2021-06-22 15:45:25 +02:00
Gordey Doronin
c62861c1e7 Rename 2021-06-22 13:10:16 +02:00
Gordey Doronin
36d2ce149e Switch warning to info logging 2021-06-21 14:33:27 +02:00
Gordey Doronin
bcdcde00c0 Stage dist files 2021-06-21 11:40:55 +02:00
Gordey Doronin
0ec4841e4b Function renaming 2021-06-21 11:39:00 +02:00
Gordey Doronin
e761a7024e Interface extraction 2021-06-21 11:37:50 +02:00
Gordey Doronin
c8c6442c74 Add brief comment about supported formats 2021-06-21 11:37:06 +02:00
Gordey Doronin
fa68745dc0 Test coverage for uknown and malformed aliases 2021-06-17 18:53:38 +02:00
Gordey Doronin
c8889b24a3 Support lts/* alias 2021-06-17 18:34:09 +02:00
Gordey Doronin
88d5bfde31 Support LTS aliases 2021-06-17 17:51:02 +02:00
Dmitry Shibanov
1088324e41 remove workaround 2021-06-17 17:47:24 +03:00
Dmitry Shibanov
05f3e9f4fa remove eol in gitattributes 2021-06-17 17:20:16 +03:00
Dmitry Shibanov
3d0d4edb10
Add node's caching implementation (#2)
* first iteration for implementation of caching

* add logs

* add debug line

* fix build command

* fix path

* add possible post-if

* remove braces

* test new action post-if variant

* work on built-in caching

* remove post-if

* pass version

* work on yarn support

* fix return value

* change names and remove logs

* worked on resolving comments

* check post-if for null

* add success() condition

* remove primary key field

* work on resolving comments

* remove logs

* resolving comments

* resolving comments

* resolving comments

* resolving comments

* fix getpackageManagerVersion

* run clean for unstaged changes

* fix falling version tests

* work on resolving comments

* resolving comments

* fix comment

* resolve comments

* Add tests to cover node's caching (#3)

* add tests to cover node's caching

* work on fixing tests

* fix e2e tests

* rebuild and fix test

* fixing tests

* change name of describes, it and fix test

* add names for jobs

* fix issue
2021-06-16 09:52:44 +03:00
Maxim Lobanov
5929471019 Update 0000-caching-dependencies.md 2021-06-02 15:52:17 +03:00
Maxim Lobanov
1bf30534fd
Update docs/adrs/0000-caching-dependencies.md
Co-authored-by: Alejandro Pauly <alepauly@github.com>
2021-05-26 17:29:27 +03:00
Maxim Lobanov
ae26aaf1b5 Update 0000-caching-dependencies.md 2021-05-26 17:27:14 +03:00
Maxim Lobanov
5fddb2d510 Update 0000-caching-dependencies.md 2021-05-24 17:35:10 +03:00
Maxim Lobanov
8c35c6c880 Update 0000-caching-dependencies.md 2021-05-21 18:28:06 +03:00
Maxim Lobanov
24265e14d4 Create 0000-caching-dependencies.md 2021-05-21 18:16:14 +03:00
Robert Stoll
5c355be170
use 14 instead of 12 in README beacuse peoply copy (#235) 2021-02-23 23:21:23 -05:00
Guangcong Luo
46071b5c7a
Fix TypeScript error line/column (#125)
* Fix TypeScript error line/column

* Adopt official pattern from VS Code

* Minor cleanup

* Add tests for tsc problem matcher

Co-authored-by: Lukas Spieß <lumaxis@github.com>
2021-02-17 10:52:41 -05:00
Nick Schonning
05f0551dbd
chore: operating-system -> os (#184)
Schema validation was flagging the old property name
2021-01-20 14:15:22 -05:00
Bryan MacFarlane
23bdee16bc
Clarifications to the README (#167) (#229)
* Update README.md

* Update README.md

Co-authored-by: Bryan MacFarlane <bryanmacfarlane@github.com>

Co-authored-by: Konrad Pabjan <konradpabjan@github.com>
2021-01-20 11:48:26 -05:00
dependabot[bot]
4257181919
Bump acorn from 5.7.3 to 5.7.4 (#122)
Bumps [acorn](https://github.com/acornjs/acorn) from 5.7.3 to 5.7.4.
- [Release notes](https://github.com/acornjs/acorn/releases)
- [Commits](https://github.com/acornjs/acorn/compare/5.7.3...5.7.4)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-01-20 11:28:06 -05:00
dependabot[bot]
7f4d5225d8
Bump lodash from 4.17.15 to 4.17.19 (#174)
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.15 to 4.17.19.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.15...4.17.19)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-01-20 11:26:01 -05:00
Rohan Chougule
68fafecfa4
refactor: use core.info instead of console.log (#185) 2021-01-20 10:28:35 -05:00
Maxim Lobanov
c46424eee2
Merge pull request #219 from actions/v-malob/update-readme-v2
Update readme before releasing actions/setup-node V2
2020-12-16 12:47:21 +03:00
Maxim Lobanov
1d846de8c0 Merge branch 'main' into v-malob/update-readme-v2 2020-12-16 12:31:13 +03:00
Maxim Lobanov
d06286dee6
Merge pull request #205 from zodman/main
Check for NODE_AUTH_TOKEN overwritten
2020-12-16 12:30:11 +03:00
Andres Vargas
d8c1b596a6 Merge branch 'main' of github.com:actions/setup-node into main 2020-12-15 11:52:46 -06:00
Maxim Lobanov
2bfa943ffb
Update build-test.yml 2020-12-15 13:38:55 +03:00
Maxim Lobanov
6c8a6e529a
Update README.md 2020-12-15 13:36:18 +03:00
Maxim Lobanov
27082cecf3
Merge pull request #194 from aminya/arch
Arch option for setup-node
2020-12-10 10:21:45 +03:00
Amin Yahyaabadi
05e7d6cc23 Add e2e arch test 2020-12-09 13:28:47 -06:00
Amin Yahyaabadi
d6fea3c137 update message to be more general
This considers self-hosted runners
2020-12-09 11:27:02 -06:00
Josh Gross
4667755142
Merge pull request #216 from actions/joshmgross/add-codeowners
Add CODEOWNERS
2020-12-09 11:22:59 -05:00
Amin Yahyaabadi
2bbfc7698a Add Architecture only example 2020-12-08 16:47:34 -06:00
Amin Yahyaabadi
5984462aaa Rename node-arch to architecture 2020-12-08 16:24:02 -06:00
Amin Yahyaabadi
aabe026707 Merge remote-tracking branch 'upstream/main' into arch 2020-12-08 16:15:00 -06:00
Josh Gross
b7cfa22539
Add CODEOWNERS 2020-12-07 16:08:14 -05:00
nulltoken
70b9252472
[Readme] Using check-latest requires v2-beta (#207) 2020-11-19 17:01:35 -05:00
Andres Vargas
7d147e85af unstage changes 2020-10-27 18:17:58 -06:00
Andres Vargas
66dfac5328 update comment 2020-10-21 19:02:40 -05:00
Andres Vargas
312bbeecfd update changes 2020-10-21 18:38:23 -05:00
Andres Vargas
26a6dcb73b update the index file 2020-10-21 18:34:14 -05:00
Andres Vargas
f4215cc0e0 fix format 2020-10-21 18:31:20 -05:00
Andres Vargas
14e150d2b1 update changes 2020-10-21 18:22:21 -05:00
Andres Vargas
5da2d61209 remove space 2020-10-21 18:21:28 -05:00
Andres Vargas
a600caf7cc remove debug 2020-10-21 18:20:47 -05:00
Andres Vargas
8dde5bc004 adding test for NODE_AUTH_TOKEN overwritten 2020-10-21 18:14:34 -05:00
Thomas Boop
c6fd00ceb9
Swap to env files (#200)
* Swap to env files

* revert to old method for tests

* disable executing of commands during tests

* bump package.json @actions/core version
2020-10-01 12:03:22 -04:00
Amin Yahyaabadi
2f532cef8f
Merge branch 'main' into arch 2020-09-15 21:30:00 -05:00
Thomas Boop
c211e95e60
Add Licensed To Help Verify Prod Licenses (#180)
* add licensed workflow and config files

* manual dependency verification

* Hide generated license files in pr
2020-09-10 09:23:54 -04:00
Amin Yahyaabadi
99d584aa06 docs: enhance the readme example to include multiple os, version, and archs 2020-09-06 11:32:03 -05:00
Amin Yahyaabadi
2a5c060ce2 fix: add warning for when arch is supplied but version is missing 2020-09-06 11:09:41 -05:00
Amin Yahyaabadi
2801f51f90 chore: build
git clean -ffdx && npm ci && npm run pre-checkin
2020-09-05 06:59:22 -05:00
Amin Yahyaabadi
0a161fe2f9 fix: use arch instead of osArch in INodeVersionInfo 2020-09-05 06:58:15 -05:00
Amin Yahyaabadi
63fffe4411 chore: add line-ending to gitattribute 2020-09-03 13:51:55 -05:00
Amin Yahyaabadi
a83bf51129 test: test using main.run and spying 2020-09-03 12:40:39 -05:00
Amin Yahyaabadi
922f2f9468 test: revert using nock and fixtures 2020-09-03 12:33:53 -05:00
Amin Yahyaabadi
7a3669aa8a test: add arch tests
Co-Authored-By: Tyler Ang-Wanek <tylerw@axosoft.com>

feat: add nock

Co-Authored-By: Tyler Ang-Wanek <tylerw@axosoft.com>
2020-09-03 12:33:50 -05:00
Amin Yahyaabadi
66f3e9f7ce feat: add arch to queryDistForMatch 2020-09-03 12:22:16 -05:00
Amin Yahyaabadi
82271389a6 feat: add arch to cacheDir 2020-09-03 12:22:16 -05:00
Amin Yahyaabadi
2e40994c28 feat: add arch to getInfoFromDist 2020-09-03 12:22:16 -05:00
Amin Yahyaabadi
c7e4d38541 feat: add arch to downloading message 2020-09-03 12:18:12 -05:00
Amin Yahyaabadi
3eb4bc9d68 feat: add arch to acquireNodeFromFallbackLocation 2020-09-03 09:03:26 -05:00
Amin Yahyaabadi
bf47decdc2 feat: add arch to tc.find
Co-Authored-By: Tyler Ang-Wanek <tylerw@axosoft.com>
2020-09-03 09:03:26 -05:00
Amin Yahyaabadi
6afbfca452 feat: add arch to getInfoFromManifest 2020-09-03 09:03:26 -05:00
Amin Yahyaabadi
3e84c3523b feat: add arch to INodeVersionInfo 2020-09-03 07:52:40 -05:00
Amin Yahyaabadi
6668516d2a feat: add arch to resolveVersionFromManifest 2020-09-03 07:52:39 -05:00
Amin Yahyaabadi
f27ebaf08b feat: add arch to getNode
Co-Authored-By: Tyler Ang-Wanek <tylerw@axosoft.com>
2020-09-03 07:52:39 -05:00
Amin Yahyaabadi
42d59fbc36 feat: add arch to run 2020-09-03 07:52:39 -05:00
Amin Yahyaabadi
2d8887128d feat: node-arch in action.yml
Co-Authored-By: Tyler Ang-Wanek <tylerw@axosoft.com>
2020-09-03 07:52:39 -05:00
Amin Yahyaabadi
0635b31a61 feat: add readme for architecture
Co-Authored-By: Tyler Ang-Wanek <tylerw@axosoft.com>
2020-09-03 07:52:39 -05:00
Bryan MacFarlane
59e61b8951 main workflow references 2020-07-22 08:12:24 -04:00
157 changed files with 192883 additions and 25854 deletions

6
.eslintignore Normal file
View File

@ -0,0 +1,6 @@
# Ignore list
/*
# Do not ignore these folders:
!__tests__/
!src/

51
.eslintrc.js Normal file
View File

@ -0,0 +1,51 @@
// This is a reusable configuration file copied from https://github.com/actions/reusable-workflows/tree/main/reusable-configurations. Please don't make changes to this file as it's the subject of an automatic update.
module.exports = {
extends: [
'eslint:recommended',
'plugin:@typescript-eslint/recommended',
'plugin:eslint-plugin-jest/recommended',
'eslint-config-prettier'
],
parser: '@typescript-eslint/parser',
plugins: ['@typescript-eslint', 'eslint-plugin-node', 'eslint-plugin-jest'],
rules: {
'@typescript-eslint/no-require-imports': 'error',
'@typescript-eslint/no-non-null-assertion': 'off',
'@typescript-eslint/no-explicit-any': 'off',
'@typescript-eslint/no-empty-function': 'off',
'@typescript-eslint/ban-ts-comment': [
'error',
{
'ts-ignore': 'allow-with-description'
}
],
'no-console': 'error',
'yoda': 'error',
'prefer-const': [
'error',
{
destructuring: 'all'
}
],
'no-control-regex': 'off',
'no-constant-condition': ['error', {checkLoops: false}],
'node/no-extraneous-import': 'error'
},
overrides: [
{
files: ['**/*{test,spec}.ts'],
rules: {
'@typescript-eslint/no-unused-vars': 'off',
'jest/no-standalone-expect': 'off',
'jest/no-conditional-expect': 'off',
'no-console': 'off',
}
}
],
env: {
node: true,
es6: true,
'jest/globals': true
}
};

2
.gitattributes vendored Normal file
View File

@ -0,0 +1,2 @@
* text=auto eol=lf
.licenses/** -diff linguist-generated=true

38
.github/ISSUE_TEMPLATE/bug_report.md vendored Normal file
View File

@ -0,0 +1,38 @@
---
name: Bug report
about: Create a bug report
title: ''
labels: bug, needs triage
assignees: ''
---
<!--- Please direct any generic questions related to actions to our support community forum at https://github.community/c/code-to-cloud/github-actions/41 --->
<!--- Before opening up a new bug report, please make sure to check for similar existing issues -->
**Description:**
A clear and concise description of what the bug is.
**Action version:**
Specify the action version
**Platform:**
- [ ] Ubuntu
- [ ] macOS
- [ ] Windows
**Runner type:**
- [ ] Hosted
- [ ] Self-hosted
**Tools version:**
<!--- Please specify versions of node and package manager (npm, yarn, pnpm and etc)-->
**Repro steps:**
A description with steps to reproduce the issue. If you have a public example or repo to share, please provide the link.
**Expected behavior:**
A description of what you expected to happen.
**Actual behavior:**
A description of what is actually happening.

1
.github/ISSUE_TEMPLATE/config.yml vendored Normal file
View File

@ -0,0 +1 @@
blank_issues_enabled: false

View File

@ -0,0 +1,18 @@
---
name: Feature request
about: Suggest an idea for this project
title: ''
labels: feature request, needs triage
assignees: ''
---
<!--- Please direct any generic questions related to actions to our support community forum at https://github.community/c/code-to-cloud/github-actions/41 --->
<!--- Before opening up a new feature request, please make sure to check for similar existing issues and pull requests -->
**Description:**
Describe your proposal.
**Justification:**
Justification or a use case for your proposal.
**Are you willing to submit a PR?**
<!--- We accept contributions! -->

9
.github/pull_request_template.md vendored Normal file
View File

@ -0,0 +1,9 @@
**Description:**
Describe your changes.
**Related issue:**
Add link to the related issue.
**Check list:**
- [ ] Mark if documentation changes are required.
- [ ] Mark if tests were added or updated to cover the changes.

11
.github/tsc.json vendored
View File

@ -4,12 +4,13 @@
"owner": "tsc", "owner": "tsc",
"pattern": [ "pattern": [
{ {
"regexp": "^(?:\\s+\\d+\\>)?([^\\s].*)\\((\\d+|\\d+,\\d+|\\d+,\\d+,\\d+,\\d+)\\)\\s*:\\s+(error|warning|info)\\s+(\\w{1,2}\\d+)\\s*:\\s*(.*)$", "regexp": "^([^\\s].*)[\\(:](\\d+)[,:](\\d+)(?:\\):\\s+|\\s+-\\s+)(error|warning|info)\\s+TS(\\d+)\\s*:\\s*(.*)$",
"file": 1, "file": 1,
"location": 2, "line": 2,
"severity": 3, "column": 3,
"code": 4, "severity": 4,
"message": 5 "code": 5,
"message": 6
} }
] ]
} }

19
.github/workflows/basic-validation.yml vendored Normal file
View File

@ -0,0 +1,19 @@
name: Basic validation
on:
pull_request:
paths-ignore:
- '**.md'
push:
branches:
- main
- releases/*
paths-ignore:
- '**.md'
jobs:
call-basic-validation:
name: Basic validation
uses: actions/reusable-workflows/.github/workflows/basic-validation.yml@main
with:
node-version: '20.x'

View File

@ -1,32 +0,0 @@
name: build-test
on:
pull_request:
paths-ignore:
- '**.md'
push:
branches:
- master
- releases/*
paths-ignore:
- '**.md'
jobs:
build:
runs-on: ${{ matrix.operating-system }}
strategy:
matrix:
operating-system: [ubuntu-latest, windows-latest, macos-latest]
steps:
- uses: actions/checkout@v2
- name: Setup node 12
uses: actions/setup-node@v1
with:
node-version: 12.x
- run: npm ci
- run: npm run build
- run: npm run format-check
- run: npm test
- name: Verify no unstaged changes
if: runner.os != 'windows'
run: __tests__/verify-no-unstaged-changes.sh

19
.github/workflows/check-dist.yml vendored Normal file
View File

@ -0,0 +1,19 @@
name: Check dist
on:
push:
branches:
- main
paths-ignore:
- '**.md'
pull_request:
paths-ignore:
- '**.md'
workflow_dispatch:
jobs:
call-check-dist:
name: Check dist/
uses: actions/reusable-workflows/.github/workflows/check-dist.yml@main
with:
node-version: '20.x'

14
.github/workflows/codeql-analysis.yml vendored Normal file
View File

@ -0,0 +1,14 @@
name: CodeQL analysis
on:
push:
branches: [main]
pull_request:
branches: [main]
schedule:
- cron: '0 3 * * 0'
jobs:
call-codeQL-analysis:
name: CodeQL analysis
uses: actions/reusable-workflows/.github/workflows/codeql-analysis.yml@main

245
.github/workflows/e2e-cache.yml vendored Normal file
View File

@ -0,0 +1,245 @@
name: e2e-cache
on:
pull_request:
paths-ignore:
- '**.md'
push:
branches:
- main
- releases/*
paths-ignore:
- '**.md'
jobs:
node-npm-depencies-caching:
name: Test npm (Node ${{ matrix.node-version}}, ${{ matrix.os }})
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
node-version: [12, 14, 16]
steps:
- uses: actions/checkout@v4
- name: Clean global cache
run: npm cache clean --force
- name: Setup Node
uses: ./
with:
node-version: ${{ matrix.node-version }}
cache: 'npm'
- name: Install dependencies
run: npm install
- name: Verify node and npm
run: __tests__/verify-node.sh "${{ matrix.node-version }}"
shell: bash
node-pnpm-depencies-caching:
name: Test pnpm (Node ${{ matrix.node-version}}, ${{ matrix.os }})
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
node-version: [12, 14, 16]
steps:
- uses: actions/checkout@v4
- name: Install pnpm
uses: pnpm/action-setup@v2
with:
version: 6.10.0
- name: Generate pnpm file
run: pnpm install
- name: Remove dependencies
shell: pwsh
run: Remove-Item node_modules -Force -Recurse
- name: Clean global cache
run: rm -rf ~/.pnpm-store
shell: bash
- name: Setup Node
uses: ./
with:
node-version: ${{ matrix.node-version }}
cache: 'pnpm'
- name: Install dependencies
run: pnpm install
- name: Verify node and pnpm
run: __tests__/verify-node.sh "${{ matrix.node-version }}"
shell: bash
node-yarn1-depencies-caching:
name: Test yarn 1 (Node ${{ matrix.node-version}}, ${{ matrix.os }})
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
node-version: [14, 16]
steps:
- uses: actions/checkout@v4
- name: Yarn version
run: yarn --version
- name: Generate yarn file
run: yarn install
- name: Remove dependencies
shell: pwsh
run: Remove-Item node_modules -Force -Recurse
- name: Clean global cache
run: yarn cache clean
- name: Setup Node
uses: ./
with:
node-version: ${{ matrix.node-version }}
cache: 'yarn'
- name: Install dependencies
run: yarn install --ignore-engines
- name: Verify node and yarn
run: __tests__/verify-node.sh "${{ matrix.node-version }}"
shell: bash
node-yarn3-depencies-caching:
name: Test yarn 3 (Node ${{ matrix.node-version}}, ${{ matrix.os }})
runs-on: ${{ matrix.os }}
env:
YARN_ENABLE_IMMUTABLE_INSTALLS: false
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
node-version: [12, 14, 16]
steps:
- uses: actions/checkout@v4
- name: Update yarn
run: yarn set version 3.6.4
- name: Yarn version
run: yarn --version
- name: Generate simple .yarnrc.yml
run: |
echo "nodeLinker: node-modules" >> .yarnrc.yml
- name: Generate yarn file
run: yarn install
- name: Remove dependencies
shell: pwsh
run: Remove-Item node_modules -Force -Recurse
- name: Clean global cache
run: yarn cache clean --all
- name: Setup Node
uses: ./
with:
node-version: ${{ matrix.node-version }}
cache: 'yarn'
- name: Install dependencies
run: yarn install
- name: Verify node and yarn
run: __tests__/verify-node.sh "${{ matrix.node-version }}"
shell: bash
yarn-subprojects:
name: Test yarn subprojects
strategy:
matrix:
node-version: [12, 14, 16]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: prepare sub-projects
run: __tests__/prepare-yarn-subprojects.sh yarn1
# expect
# - no errors
# - log
# ##[debug]Cache Paths:
# ##[debug]["sub2/.yarn/cache","sub3/.yarn/cache","../../../.cache/yarn/v6"]
- name: Setup Node
uses: ./
with:
node-version: ${{ matrix.node-version }}
cache: 'yarn'
cache-dependency-path: |
**/*.lock
yarn.lock
yarn-subprojects-berry-local:
name: Test yarn subprojects all locally managed
strategy:
matrix:
node-version: [12, 14, 16]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: prepare sub-projects
run: __tests__/prepare-yarn-subprojects.sh keepcache keepcache
# expect
# - no errors
# - log
# ##[info]All dependencies are managed locally by yarn3, the previous cache can be used
# ##[debug]["node-cache-Linux-yarn-401024703386272f1a950c9f014cbb1bb79a7a5b6e1fb00e8b90d06734af41ee","node-cache-Linux-yarn"]
- name: Setup Node
uses: ./
with:
node-version: ${{ matrix.node-version }}
cache: 'yarn'
cache-dependency-path: |
sub2/*.lock
sub3/*.lock
yarn-subprojects-berry-global:
name: Test yarn subprojects some locally managed
strategy:
matrix:
node-version: [12, 14, 16]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: prepare sub-projects
run: __tests__/prepare-yarn-subprojects.sh global
# expect
# - no errors
# - log must
# ##[debug]"/home/runner/work/setup-node-test/setup-node-test/sub2" dependencies are managed by yarn 3 locally
# ##[debug]"/home/runner/work/setup-node-test/setup-node-test/sub3" dependencies are not managed by yarn 3 locally
- name: Setup Node
uses: ./
with:
node-version: ${{ matrix.node-version }}
cache: 'yarn'
cache-dependency-path: |
sub2/*.lock
sub3/*.lock
yarn-subprojects-berry-git:
name: Test yarn subprojects managed by git
strategy:
matrix:
node-version: [12, 14, 16]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: prepare sub-projects
run: /bin/bash __tests__/prepare-yarn-subprojects.sh keepcache
# expect
# - no errors
# - log
# [debug]"/home/runner/work/setup-node-test/setup-node-test/sub2" has .yarn/cache - dependencies are kept in the repository
# [debug]"/home/runner/work/setup-node-test/setup-node-test/sub3" has .yarn/cache - dependencies are kept in the repository
# [debug]["node-cache-Linux-yarn-401024703386272f1a950c9f014cbb1bb79a7a5b6e1fb00e8b90d06734af41ee"]
- name: Setup Node
uses: ./
with:
node-version: ${{ matrix.node-version }}
cache: 'yarn'
cache-dependency-path: |
sub2/*.lock
sub3/*.lock

15
.github/workflows/licensed.yml vendored Normal file
View File

@ -0,0 +1,15 @@
name: Licensed
on:
push:
branches:
- main
pull_request:
branches:
- main
workflow_dispatch:
jobs:
call-licensed:
name: Licensed
uses: actions/reusable-workflows/.github/workflows/licensed.yml@main

View File

@ -6,7 +6,7 @@ on:
- '**.md' - '**.md'
push: push:
branches: branches:
- master - main
- releases/* - releases/*
paths-ignore: paths-ignore:
- '**.md' - '**.md'
@ -14,38 +14,34 @@ on:
jobs: jobs:
test-proxy: test-proxy:
runs-on: ubuntu-latest runs-on: ubuntu-latest
strategy:
fail-fast: false
container: container:
image: ubuntu:latest image: ubuntu:latest
options: --dns 127.0.0.1 options: --dns 127.0.0.1
services: services:
squid-proxy: squid-proxy:
image: datadog/squid:latest image: ubuntu/squid:latest
ports: ports:
- 3128:3128 - 3128:3128
env: env:
https_proxy: http://squid-proxy:3128 https_proxy: http://squid-proxy:3128
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v4
- name: Clear tool cache - name: Clear tool cache
run: rm -rf $RUNNER_TOOL_CACHE/* run: rm -rf $RUNNER_TOOL_CACHE/*
- name: Setup node 10 - name: Setup node 14
uses: ./ uses: ./
with: with:
node-version: 10.x node-version: 14.x
- name: Verify node and npm - name: Verify node and npm
run: __tests__/verify-node.sh 10 run: __tests__/verify-node.sh 14
test-bypass-proxy: test-bypass-proxy:
runs-on: ubuntu-latest runs-on: ubuntu-latest
strategy:
fail-fast: false
env: env:
https_proxy: http://no-such-proxy:3128 https_proxy: http://no-such-proxy:3128
no_proxy: api.github.com,github.com,nodejs.org,registry.npmjs.org,*.s3.amazonaws.com,s3.amazonaws.com no_proxy: api.github.com,github.com,nodejs.org,registry.npmjs.org,*.s3.amazonaws.com,s3.amazonaws.com
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v4
- name: Clear tool cache - name: Clear tool cache
run: rm -rf $RUNNER_TOOL_CACHE/* run: rm -rf $RUNNER_TOOL_CACHE/*
- name: Setup node 11 - name: Setup node 11

View File

@ -0,0 +1,28 @@
name: Release new action version
on:
release:
types: [released]
workflow_dispatch:
inputs:
TAG_NAME:
description: 'Tag name that the major tag will point to'
required: true
env:
TAG_NAME: ${{ github.event.inputs.TAG_NAME || github.event.release.tag_name }}
permissions:
contents: write
jobs:
update_tag:
name: Update the major tag to include the ${{ github.event.inputs.TAG_NAME || github.event.release.tag_name }} changes
environment:
name: releaseNewActionVersion
runs-on: ubuntu-latest
steps:
- name: Update the ${{ env.TAG_NAME }} tag
uses: actions/publish-action@v0.2.2
with:
source-tag: ${{ env.TAG_NAME }}
slack-webhook: ${{ secrets.SLACK_WEBHOOK }}

View File

@ -0,0 +1,11 @@
name: Update configuration files
on:
schedule:
- cron: '0 3 * * 0'
workflow_dispatch:
jobs:
call-update-configuration-files:
name: Update configuration files
uses: actions/reusable-workflows/.github/workflows/update-config-files.yml@main

View File

@ -6,21 +6,21 @@ on:
- '**.md' - '**.md'
push: push:
branches: branches:
- master - main
- releases/* - releases/*
paths-ignore: paths-ignore:
- '**.md' - '**.md'
jobs: jobs:
local-cache: local-cache:
runs-on: ${{ matrix.operating-system }} runs-on: ${{ matrix.os }}
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
operating-system: [ubuntu-latest, windows-latest, macos-latest] os: [ubuntu-latest, windows-latest, macos-latest]
node-version: [10, 12, 14] node-version: [10, 12, 14]
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v4
- name: Setup Node - name: Setup Node
uses: ./ uses: ./
with: with:
@ -29,15 +29,103 @@ jobs:
run: __tests__/verify-node.sh "${{ matrix.node-version }}" run: __tests__/verify-node.sh "${{ matrix.node-version }}"
shell: bash shell: bash
manifest: lts-syntax:
runs-on: ${{ matrix.operating-system }} runs-on: ${{ matrix.os }}
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
operating-system: [ubuntu-latest, windows-latest, macos-latest] os: [ubuntu-latest, windows-latest, macos-latest]
node-version: [10.15, 12.16.0, 14.2.0] node-version: [lts/dubnium, lts/erbium, lts/fermium, lts/*, lts/-1]
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v4
- name: Setup Node
uses: ./
with:
node-version: ${{ matrix.node-version }}
check-latest: true
- if: runner.os != 'Windows'
name: Verify node and npm
run: |
. "$NVM_DIR/nvm.sh"
[[ $(nvm version-remote "${{ matrix.node-version }}") =~ ^v([^.]+) ]]
__tests__/verify-node.sh "${BASH_REMATCH[1]}"
shell: bash
v8-canary-syntax:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
node-version:
[
'20-v8-canary',
'20.0.0-v8-canary',
'20.0.0-v8-canary20221101e50e45c9f8'
]
steps:
- uses: actions/checkout@v4
- name: Setup Node
uses: ./
with:
node-version: ${{ matrix.node-version }}
- name: Verify node and npm
run: |
canaryVersion="${{ matrix.node-version }}"
majorVersion=$(echo $canaryVersion | cut -d- -f1)
__tests__/verify-node.sh "$majorVersion"
shell: bash
nightly-syntax:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
node-version:
[16.0.0-nightly20210420a0261d231c, 17-nightly, 18.0.0-nightly]
steps:
- uses: actions/checkout@v4
- name: Setup Node
uses: ./
with:
node-version: ${{ matrix.node-version }}
- name: Verify node and npm
run: |
nightlyVersion="${{ matrix.node-version }}"
majorVersion=$(echo $nightlyVersion | cut -d- -f1)
__tests__/verify-node.sh "$majorVersion"
shell: bash
rc-syntax:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
node-version: [16.0.0-rc.1, 18.0.0-rc.2, 19.0.0-rc.0]
steps:
- uses: actions/checkout@v4
- name: Setup Node
uses: ./
with:
node-version: ${{ matrix.node-version }}
- name: Verify node and npm
run: |
rcVersion="${{ matrix.node-version }}"
majorVersion=$(echo $rcVersion | cut -d- -f1)
__tests__/verify-node.sh "$majorVersion"
shell: bash
manifest:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
node-version: [10.15, 12.16.0, 14.2.0, 16.3.0]
steps:
- uses: actions/checkout@v4
- name: Setup Node - name: Setup Node
uses: ./ uses: ./
with: with:
@ -47,14 +135,14 @@ jobs:
shell: bash shell: bash
check-latest: check-latest:
runs-on: ${{ matrix.operating-system }} runs-on: ${{ matrix.os }}
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
operating-system: [ubuntu-latest, windows-latest, macos-latest] os: [ubuntu-latest, windows-latest, macos-latest]
node-version: [10, 11, 12, 14] node-version: [10, 12, 14]
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v4
- name: Setup Node and check latest - name: Setup Node and check latest
uses: ./ uses: ./
with: with:
@ -64,15 +152,62 @@ jobs:
run: __tests__/verify-node.sh "${{ matrix.node-version }}" run: __tests__/verify-node.sh "${{ matrix.node-version }}"
shell: bash shell: bash
node-dist: version-file:
runs-on: ${{ matrix.operating-system }} runs-on: ${{ matrix.os }}
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
operating-system: [ubuntu-latest, windows-latest, macos-latest] os: [ubuntu-latest, windows-latest, macos-latest]
node-version-file:
[.nvmrc, .tool-versions, .tool-versions-node, package.json]
steps:
- uses: actions/checkout@v4
- name: Setup node from node version file
uses: ./
with:
node-version-file: '__tests__/data/${{ matrix.node-version-file }}'
- name: Verify node
run: __tests__/verify-node.sh 14
version-file-volta:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
steps:
- uses: actions/checkout@v4
- name: Setup node from node version file
uses: ./
with:
node-version-file: '__tests__/data/package-volta.json'
- name: Verify node
run: __tests__/verify-node.sh 16
version-file-volta-extends:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
steps:
- uses: actions/checkout@v4
- name: Setup node from node version file
uses: ./
with:
node-version-file: '__tests__/data/package-volta-extends.json'
- name: Verify node
run: __tests__/verify-node.sh 16
node-dist:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
node-version: [11, 13] node-version: [11, 13]
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v4
- name: Setup Node from dist - name: Setup Node from dist
uses: ./ uses: ./
with: with:
@ -82,13 +217,13 @@ jobs:
shell: bash shell: bash
old-versions: old-versions:
runs-on: ${{ matrix.operating-system }} runs-on: ${{ matrix.os }}
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
operating-system: [ubuntu-latest, windows-latest, macos-latest] os: [ubuntu-latest, windows-latest, macos-latest]
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v4
# test old versions which didn't have npm and layout different # test old versions which didn't have npm and layout different
- name: Setup node 0.12.18 from dist - name: Setup node 0.12.18 from dist
uses: ./ uses: ./
@ -97,3 +232,47 @@ jobs:
- name: Verify node - name: Verify node
run: __tests__/verify-node.sh 0.12.18 SKIP_NPM run: __tests__/verify-node.sh 0.12.18 SKIP_NPM
shell: bash shell: bash
arch:
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
- name: Setup node 14 x86 from dist
uses: ./
with:
node-version: '14'
architecture: 'x86'
- name: Verify node
run: __tests__/verify-arch.sh "ia32"
shell: bash
node-latest-aliases:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
node-version: [current, latest, node]
steps:
- name: Get node version
run: |
latestNodeVersion=$(curl https://nodejs.org/dist/index.json | jq -r '. [0].version')
echo "LATEST_NODE_VERSION=$latestNodeVersion" >> $GITHUB_OUTPUT
id: version
shell: bash
- uses: actions/checkout@v4
- name: Setup Node
uses: ./
with:
node-version: ${{ matrix.node-version }}
- name: Retrieve version after install
run: |
updatedVersion=$(echo $(node --version))
echo "NODE_VERSION_UPDATED=$updatedVersion" >> $GITHUB_OUTPUT
id: updatedVersion
shell: bash
- name: Compare versions
if: ${{ steps.version.outputs.LATEST_NODE_VERSION != steps.updatedVersion.outputs.NODE_VERSION_UPDATED}}
run: |
echo "Latest node version failed to download."
exit 1

15
.licensed.yml Normal file
View File

@ -0,0 +1,15 @@
sources:
npm: true
allowed:
- apache-2.0
- 0bsd
- bsd-2-clause
- bsd-3-clause
- isc
- mit
- cc0-1.0
- unlicense
reviewed:
npm:

BIN
.licenses/npm/@actions/cache.dep.yml generated Normal file

Binary file not shown.

BIN
.licenses/npm/@actions/core.dep.yml generated Normal file

Binary file not shown.

BIN
.licenses/npm/@actions/exec.dep.yml generated Normal file

Binary file not shown.

BIN
.licenses/npm/@actions/github.dep.yml generated Normal file

Binary file not shown.

BIN
.licenses/npm/@actions/glob-0.1.2.dep.yml generated Normal file

Binary file not shown.

BIN
.licenses/npm/@actions/glob-0.4.0.dep.yml generated Normal file

Binary file not shown.

BIN
.licenses/npm/@actions/http-client.dep.yml generated Normal file

Binary file not shown.

BIN
.licenses/npm/@actions/io.dep.yml generated Normal file

Binary file not shown.

BIN
.licenses/npm/@actions/tool-cache.dep.yml generated Normal file

Binary file not shown.

Binary file not shown.

BIN
.licenses/npm/@azure/core-auth.dep.yml generated Normal file

Binary file not shown.

BIN
.licenses/npm/@azure/core-http.dep.yml generated Normal file

Binary file not shown.

BIN
.licenses/npm/@azure/core-lro.dep.yml generated Normal file

Binary file not shown.

BIN
.licenses/npm/@azure/core-paging.dep.yml generated Normal file

Binary file not shown.

BIN
.licenses/npm/@azure/core-tracing.dep.yml generated Normal file

Binary file not shown.

BIN
.licenses/npm/@azure/core-util.dep.yml generated Normal file

Binary file not shown.

BIN
.licenses/npm/@azure/logger.dep.yml generated Normal file

Binary file not shown.

BIN
.licenses/npm/@azure/ms-rest-js.dep.yml generated Normal file

Binary file not shown.

BIN
.licenses/npm/@azure/storage-blob.dep.yml generated Normal file

Binary file not shown.

BIN
.licenses/npm/@fastify/busboy.dep.yml generated Normal file

Binary file not shown.

BIN
.licenses/npm/@octokit/auth-token.dep.yml generated Normal file

Binary file not shown.

BIN
.licenses/npm/@octokit/core.dep.yml generated Normal file

Binary file not shown.

BIN
.licenses/npm/@octokit/endpoint.dep.yml generated Normal file

Binary file not shown.

BIN
.licenses/npm/@octokit/graphql.dep.yml generated Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
.licenses/npm/@octokit/request.dep.yml generated Normal file

Binary file not shown.

BIN
.licenses/npm/@octokit/types.dep.yml generated Normal file

Binary file not shown.

BIN
.licenses/npm/@opentelemetry/api.dep.yml generated Normal file

Binary file not shown.

BIN
.licenses/npm/@types/node-fetch.dep.yml generated Normal file

Binary file not shown.

BIN
.licenses/npm/@types/node.dep.yml generated Normal file

Binary file not shown.

BIN
.licenses/npm/@types/tunnel.dep.yml generated Normal file

Binary file not shown.

BIN
.licenses/npm/abort-controller.dep.yml generated Normal file

Binary file not shown.

BIN
.licenses/npm/asynckit.dep.yml generated Normal file

Binary file not shown.

BIN
.licenses/npm/balanced-match.dep.yml generated Normal file

Binary file not shown.

BIN
.licenses/npm/before-after-hook.dep.yml generated Normal file

Binary file not shown.

BIN
.licenses/npm/brace-expansion.dep.yml generated Normal file

Binary file not shown.

BIN
.licenses/npm/combined-stream.dep.yml generated Normal file

Binary file not shown.

BIN
.licenses/npm/concat-map.dep.yml generated Normal file

Binary file not shown.

BIN
.licenses/npm/delayed-stream.dep.yml generated Normal file

Binary file not shown.

BIN
.licenses/npm/deprecation.dep.yml generated Normal file

Binary file not shown.

BIN
.licenses/npm/event-target-shim.dep.yml generated Normal file

Binary file not shown.

BIN
.licenses/npm/events.dep.yml generated Normal file

Binary file not shown.

BIN
.licenses/npm/form-data-2.5.1.dep.yml generated Normal file

Binary file not shown.

BIN
.licenses/npm/form-data-4.0.0.dep.yml generated Normal file

Binary file not shown.

BIN
.licenses/npm/is-plain-object.dep.yml generated Normal file

Binary file not shown.

BIN
.licenses/npm/lru-cache.dep.yml generated Normal file

Binary file not shown.

BIN
.licenses/npm/mime-db.dep.yml generated Normal file

Binary file not shown.

BIN
.licenses/npm/mime-types.dep.yml generated Normal file

Binary file not shown.

BIN
.licenses/npm/minimatch.dep.yml generated Normal file

Binary file not shown.

BIN
.licenses/npm/node-fetch.dep.yml generated Normal file

Binary file not shown.

BIN
.licenses/npm/once.dep.yml generated Normal file

Binary file not shown.

BIN
.licenses/npm/process.dep.yml generated Normal file

Binary file not shown.

BIN
.licenses/npm/sax.dep.yml generated Normal file

Binary file not shown.

BIN
.licenses/npm/semver-6.3.1.dep.yml generated Normal file

Binary file not shown.

BIN
.licenses/npm/semver-7.6.0.dep.yml generated Normal file

Binary file not shown.

BIN
.licenses/npm/tr46.dep.yml generated Normal file

Binary file not shown.

BIN
.licenses/npm/tslib-1.14.1.dep.yml generated Normal file

Binary file not shown.

BIN
.licenses/npm/tslib-2.6.2.dep.yml generated Normal file

Binary file not shown.

BIN
.licenses/npm/tunnel.dep.yml generated Normal file

Binary file not shown.

BIN
.licenses/npm/undici-types.dep.yml generated Normal file

Binary file not shown.

BIN
.licenses/npm/undici.dep.yml generated Normal file

Binary file not shown.

BIN
.licenses/npm/universal-user-agent.dep.yml generated Normal file

Binary file not shown.

BIN
.licenses/npm/uuid-3.4.0.dep.yml generated Normal file

Binary file not shown.

BIN
.licenses/npm/uuid-8.3.2.dep.yml generated Normal file

Binary file not shown.

BIN
.licenses/npm/uuid-9.0.1.dep.yml generated Normal file

Binary file not shown.

BIN
.licenses/npm/webidl-conversions.dep.yml generated Normal file

Binary file not shown.

BIN
.licenses/npm/whatwg-url.dep.yml generated Normal file

Binary file not shown.

BIN
.licenses/npm/wrappy.dep.yml generated Normal file

Binary file not shown.

BIN
.licenses/npm/xml2js.dep.yml generated Normal file

Binary file not shown.

BIN
.licenses/npm/xmlbuilder.dep.yml generated Normal file

Binary file not shown.

BIN
.licenses/npm/yallist.dep.yml generated Normal file

Binary file not shown.

7
.prettierignore Normal file
View File

@ -0,0 +1,7 @@
# Ignore list
/*
# Do not ignore these folders:
!__tests__/
!.github/
!src/

11
.prettierrc.js Normal file
View File

@ -0,0 +1,11 @@
// This is a reusable configuration file copied from https://github.com/actions/reusable-workflows/tree/main/reusable-configurations. Please don't make changes to this file as it's the subject of an automatic update.
module.exports = {
printWidth: 80,
tabWidth: 2,
useTabs: false,
semi: true,
singleQuote: true,
trailingComma: 'none',
bracketSpacing: false,
arrowParens: 'avoid'
};

View File

@ -1,11 +0,0 @@
{
"printWidth": 80,
"tabWidth": 2,
"useTabs": false,
"semi": true,
"singleQuote": true,
"trailingComma": "none",
"bracketSpacing": false,
"arrowParens": "avoid",
"parser": "typescript"
}

1
CODEOWNERS Normal file
View File

@ -0,0 +1 @@
* @actions/setup-actions-team

277
README.md
View File

@ -1,150 +1,217 @@
# setup-node # setup-node
<p align="left"> [![basic-validation](https://github.com/actions/setup-node/actions/workflows/basic-validation.yml/badge.svg)](https://github.com/actions/setup-node/actions/workflows/basic-validation.yml)
<a href="https://github.com/actions/setup-node/actions?query=workflow%3Abuild-test"><img alt="build-test status" src="https://github.com/actions/setup-node/workflows/build-test/badge.svg"></a> <a href="https://github.com/actions/setup-node/actions?query=workflow%3Aversions"><img alt="versions status" src="https://github.com/actions/setup-node/workflows/versions/badge.svg"></a> <a href="https://github.com/actions/setup-node/actions?query=workflow%3Aproxy"><img alt="proxy status" src="https://github.com/actions/setup-node/workflows/proxy/badge.svg"></a> [![versions](https://github.com/actions/setup-node/actions/workflows/versions.yml/badge.svg)](https://github.com/actions/setup-node/actions/workflows/versions.yml)
</p> [![e2e-cache](https://github.com/actions/setup-node/actions/workflows/e2e-cache.yml/badge.svg?branch=main)](https://github.com/actions/setup-node/actions/workflows/e2e-cache.yml)
[![proxy](https://github.com/actions/setup-node/actions/workflows/proxy.yml/badge.svg)](https://github.com/actions/setup-node/actions/workflows/proxy.yml)
This action sets by node environment for use in actions by: This action provides the following functionality for GitHub Actions users:
- optionally downloading and caching a version of node - npm by version spec and add to PATH - Optionally downloading and caching distribution of the requested Node.js version, and adding it to the PATH
- registering problem matchers for error output - Optionally caching npm/yarn/pnpm dependencies
- configuring authentication for GPR or npm - Registering problem matchers for error output
- Configuring authentication for GPR or npm
# v2-beta ## Usage
A beta release which adds reliability for pulling node distributions from a cache of node releases is available by referencing the `v2-beta` tag.
```yaml
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2-beta
with:
node-version: '12'
```
The action will first check the local cache for a semver match. The hosted images have been updated with the latest of each LTS from v8, v10, v12, and v14. `self-hosted` machines will benefit from the cache as well only downloading once. The action 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/).
The `node-version` input is optional. If not supplied, the node version that is PATH will be used. However, this action will still register problem matchers and support auth features. So setting up the node environment is still a valid scenario without downloading and caching versions.
# Usage
See [action.yml](action.yml) See [action.yml](action.yml)
Basic: <!-- start usage -->
```yaml ```yaml
steps: - uses: actions/setup-node@v4
- uses: actions/checkout@v2
- uses: actions/setup-node@v1
with: with:
node-version: '12' # Version Spec of the version to use in SemVer notation.
- run: npm install # It also emits such aliases as lts, latest, nightly and canary builds
- run: npm test # Examples: 12.x, 10.15.1, >=10.15.0, lts/Hydrogen, 16-nightly, latest, node
node-version: ''
# File containing the version Spec of the version to use. Examples: package.json, .nvmrc, .node-version, .tool-versions.
# If node-version and node-version-file are both provided the action will use version from node-version.
node-version-file: ''
# Set this option if you want the action to check for the latest available version
# that satisfies the version spec.
# It will only get affect for lts Nodejs versions (12.x, >=10.15.0, lts/Hydrogen).
# Default: false
check-latest: false
# Target architecture for Node to use. Examples: x86, x64. Will use system architecture by default.
# Default: ''. The action use system architecture by default
architecture: ''
# Used to pull node distributions from https://github.com/actions/node-versions.
# Since there's a default, this is typically not supplied by the user.
# When running this action on github.com, the default value is sufficient.
# When running on GHES, you can pass a personal access token for github.com if you are experiencing rate limiting.
#
# We recommend using a service account with the least permissions necessary. Also
# when generating a new PAT, select the least scopes necessary.
#
# [Learn more about creating and using encrypted secrets](https://help.github.com/en/actions/automating-your-workflow-with-github-actions/creating-and-using-encrypted-secrets)
#
# Default: ${{ github.server_url == 'https://github.com' && github.token || '' }}
token: ''
# Used to specify a package manager for caching in the default directory. Supported values: npm, yarn, pnpm.
# Package manager should be pre-installed
# Default: ''
cache: ''
# Used to specify the path to a dependency file: package-lock.json, yarn.lock, etc.
# It will generate hash from the target file for primary key. It works only If cache is specified.
# Supports wildcards or a list of file names for caching multiple dependencies.
# Default: ''
cache-dependency-path: ''
# Optional registry to set up for auth. Will set the registry in a project level .npmrc and .yarnrc file,
# and set up auth to read in from env.NODE_AUTH_TOKEN.
# Default: ''
registry-url: ''
# Optional scope for authenticating against scoped registries.
# Will fall back to the repository owner when using the GitHub Packages registry (https://npm.pkg.github.com/).
# Default: ''
scope: ''
# Set always-auth option in npmrc file.
# Default: ''
always-auth: ''
``` ```
<!-- end usage -->
Check latest version: **Basic:**
In the basic example above, the `check-latest` flag defaults to `false`. When set to `false`, the action tries to first resolve a version of node from the local cache. For information regarding locally cached versions of Node on GitHub hosted runners, check out [GitHub Actions Virtual Environments](https://github.com/actions/virtual-environments). The local version of Node in cache gets updated every couple of weeks. If unable to find a specific version in the cache, the action will then attempt to download a version of Node. Use the default or set `check-latest` to `false` if you prefer stability and if you want to ensure a specific version of Node is always used.
If `check-latest` is set to `true`, the action first checks if the cached version is the latest one. If the locally cached version is not the most up-to-date, a version of Node will then be downloaded. Set `check-latest` to `true` it you want the most up-to-date version of Node to always be used.
> Setting `check-latest` to `true` has performance implications as downloading versions of Node is slower than using cached versions
```yaml ```yaml
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v4
- uses: actions/setup-node@v2 - uses: actions/setup-node@v4
with: with:
node-version: '12' node-version: 18
check-latest: true - run: npm ci
- run: npm install
- run: npm test - run: npm test
``` ```
Matrix Testing: 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 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/).
For information regarding locally cached versions of Node.js on GitHub hosted runners, check out [GitHub Actions Runner Images](https://github.com/actions/runner-images).
### Supported version syntax
The `node-version` input supports the Semantic Versioning Specification, for more detailed examples please refer to [the semver package documentation](https://github.com/npm/node-semver).
Examples:
- Major versions: `18`, `20`
- More specific versions: `10.15`, `16.15.1` , `18.4.0`
- NVM LTS syntax: `lts/erbium`, `lts/fermium`, `lts/*`, `lts/-n`
- Latest release: `*` or `latest`/`current`/`node`
**Note:** Like the other values, `*` will get the latest [locally-cached Node.js version](https://github.com/actions/runner-images/blob/main/images/ubuntu/Ubuntu2204-Readme.md#nodejs), or the latest version from [actions/node-versions](https://github.com/actions/node-versions/blob/main/versions-manifest.json), depending on the [`check-latest`](docs/advanced-usage.md#check-latest-version) input.
`current`/`latest`/`node` always resolve to the latest [dist version](https://nodejs.org/dist/index.json).
That version is then downloaded from actions/node-versions if possible, or directly from Node.js if not.
Since it will not be cached always, there is possibility of hitting rate limit when downloading from dist
### Checking in lockfiles
It's **always** recommended to commit the lockfile of your package manager for security and performance reasons. For more information consult the "Working with lockfiles" section of the [Advanced usage](docs/advanced-usage.md#working-with-lockfiles) guide.
## Caching global packages data
The action has a built-in functionality for caching and restoring dependencies. It uses [actions/cache](https://github.com/actions/cache) under the hood for caching global packages data but requires less configuration settings. Supported package managers are `npm`, `yarn`, `pnpm` (v6.10+). The `cache` input is optional, and caching is turned off by default.
The action defaults to search for the dependency file (`package-lock.json`, `npm-shrinkwrap.json` or `yarn.lock`) in the repository root, and uses its hash as a part of the cache key. Use `cache-dependency-path` for cases when multiple dependency files are used, or they are located in different subdirectories.
**Note:** The action does not cache `node_modules`
See the examples of using cache for `yarn`/`pnpm` and `cache-dependency-path` input in the [Advanced usage](docs/advanced-usage.md#caching-packages-data) guide.
**Caching npm dependencies:**
```yaml
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
cache: 'npm'
- run: npm ci
- run: npm test
```
**Caching npm dependencies in monorepos:**
```yaml
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
cache: 'npm'
cache-dependency-path: subdir/package-lock.json
- run: npm ci
- run: npm test
```
## Matrix Testing
```yaml ```yaml
jobs: jobs:
build: build:
runs-on: ubuntu-16.04 runs-on: ubuntu-latest
strategy: strategy:
matrix: matrix:
node: [ '10', '12' ] node: [ 14, 16, 18 ]
name: Node ${{ matrix.node }} sample name: Node ${{ matrix.node }} sample
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v4
- name: Setup node - name: Setup node
uses: actions/setup-node@v1 uses: actions/setup-node@v4
with: with:
node-version: ${{ matrix.node }} node-version: ${{ matrix.node }}
- run: npm install - run: npm ci
- run: npm test - run: npm test
``` ```
Publish to npmjs and GPR with npm: ## Using `setup-node` on GHES
`setup-node` comes pre-installed on the appliance with GHES if Actions is enabled. When dynamically downloading Nodejs distributions, `setup-node` downloads distributions from [`actions/node-versions`](https://github.com/actions/node-versions) on github.com (outside of the appliance). These calls to `actions/node-versions` are made via unauthenticated requests, which are limited to [60 requests per hour per IP](https://docs.github.com/en/rest/overview/resources-in-the-rest-api#rate-limiting). If more requests are made within the time frame, then you will start to see rate-limit errors during downloading that looks like: `##[error]API rate limit exceeded for...`. After that error the action will try to download versions directly from the official site, but it also can have rate limit so it's better to put token.
To get a higher rate limit, you can [generate a personal access token on github.com](https://github.com/settings/tokens/new) and pass it as the `token` input for the action:
```yaml ```yaml
steps: uses: actions/setup-node@v4
- uses: actions/checkout@v2 with:
- uses: actions/setup-node@v1 token: ${{ secrets.GH_DOTCOM_TOKEN }}
with: node-version: 20
node-version: '10.x'
registry-url: 'https://registry.npmjs.org'
- run: npm install
- run: npm publish
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
- uses: actions/setup-node@v1
with:
registry-url: 'https://npm.pkg.github.com'
- run: npm publish
env:
NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
``` ```
Publish to npmjs and GPR with yarn: If the runner is not able to access github.com, any Nodejs versions requested during a workflow run must come from the runner's tool cache. See "[Setting up the tool cache on self-hosted runners without internet access](https://docs.github.com/en/enterprise-server@3.2/admin/github-actions/managing-access-to-actions-from-githubcom/setting-up-the-tool-cache-on-self-hosted-runners-without-internet-access)" for more information.
```yaml
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v1
with:
node-version: '10.x'
registry-url: <registry url>
- run: yarn install
- run: yarn publish
env:
NODE_AUTH_TOKEN: ${{ secrets.YARN_TOKEN }}
- uses: actions/setup-node@v1
with:
registry-url: 'https://npm.pkg.github.com'
- run: yarn publish
env:
NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
```
Use private packages: ## Advanced usage
```yaml
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v1
with:
node-version: '10.x'
registry-url: 'https://registry.npmjs.org'
# Skip post-install scripts here, as a malicious
# script could steal NODE_AUTH_TOKEN.
- run: npm install --ignore-scripts
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
# `npm rebuild` will run all those post-install scripts for us.
- run: npm rebuild && npm run prepare --if-present
```
- [Check latest version](docs/advanced-usage.md#check-latest-version)
- [Using a node version file](docs/advanced-usage.md#node-version-file)
- [Using different architectures](docs/advanced-usage.md#architecture)
- [Using v8 canary versions](docs/advanced-usage.md#v8-canary-versions)
- [Using nightly versions](docs/advanced-usage.md#nightly-versions)
- [Using rc versions](docs/advanced-usage.md#rc-versions)
- [Caching packages data](docs/advanced-usage.md#caching-packages-data)
- [Using multiple operating systems and architectures](docs/advanced-usage.md#multiple-operating-systems-and-architectures)
- [Publishing to npmjs and GPR with npm](docs/advanced-usage.md#publish-to-npmjs-and-gpr-with-npm)
- [Publishing to npmjs and GPR with yarn](docs/advanced-usage.md#publish-to-npmjs-and-gpr-with-yarn)
- [Using private packages](docs/advanced-usage.md#use-private-packages)
# License ## License
The scripts and documentation in this project are released under the [MIT License](LICENSE) The scripts and documentation in this project are released under the [MIT License](LICENSE)
# Contributions ## Contributions
Contributions are welcome! See [Contributor's Guide](docs/contributors.md) Contributions are welcome! See [Contributor's Guide](docs/contributors.md)
## Code of Conduct ## Code of Conduct
:wave: Be nice. See [our code of conduct](CONDUCT) :wave: Be nice. See [our code of conduct](CODE_OF_CONDUCT.md)

10
__tests__/README.md Normal file
View File

@ -0,0 +1,10 @@
Files located in data directory are used only for testing purposes.
## Here the list of files in the data directory
- `.nvmrc`, `.tools-versions` and `package.json` are used to test node-version-file logic
- `package-lock.json`, `pnpm-lock.yaml` and `yarn.lock` are used to test cache logic
- `versions-manifest.json` is used for unit testing to check downloading Node.js versions from the node-versions repository.
- `node-dist-index.json` is used for unit testing to check downloading Node.js versions from the official site. The file was constructed from https://nodejs.org/dist/index.json
- `node-rc-index.json` is used for unit testing to check downloading Node.js rc versions from the official site. The file was constructed from https://nodejs.org/download/rc/index.json
- `node-nightly-index.json` is used for unit testing to check downloading Node.js nightly builds from the official site. The file was constructed from https://nodejs.org/download/nightly/index.json

Some files were not shown because too many files have changed in this diff Show More