mirror of
https://github.com/actions/setup-node.git
synced 2026-03-06 22:27:49 +08:00
Compare commits
1 Commits
18f32268e8
...
v4.3.0
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
cdca7365b2 |
2
.licenses/npm/@actions/tool-cache.dep.yml
generated
2
.licenses/npm/@actions/tool-cache.dep.yml
generated
@@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
name: "@actions/tool-cache"
|
name: "@actions/tool-cache"
|
||||||
version: 2.0.1
|
version: 2.0.2
|
||||||
type: npm
|
type: npm
|
||||||
summary: Actions tool-cache lib
|
summary: Actions tool-cache lib
|
||||||
homepage: https://github.com/actions/toolkit/tree/main/packages/tool-cache
|
homepage: https://github.com/actions/toolkit/tree/main/packages/tool-cache
|
||||||
|
|||||||
39
.licenses/npm/uuid-3.4.0.dep.yml
generated
39
.licenses/npm/uuid-3.4.0.dep.yml
generated
@@ -1,39 +0,0 @@
|
|||||||
---
|
|
||||||
name: uuid
|
|
||||||
version: 3.4.0
|
|
||||||
type: npm
|
|
||||||
summary: RFC4122 (v1, v4, and v5) UUIDs
|
|
||||||
homepage: https://github.com/uuidjs/uuid#readme
|
|
||||||
license: mit
|
|
||||||
licenses:
|
|
||||||
- sources: LICENSE.md
|
|
||||||
text: |
|
|
||||||
The MIT License (MIT)
|
|
||||||
|
|
||||||
Copyright (c) 2010-2016 Robert Kieffer and other contributors
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in all
|
|
||||||
copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
||||||
SOFTWARE.
|
|
||||||
notices:
|
|
||||||
- sources: AUTHORS
|
|
||||||
text: |-
|
|
||||||
Robert Kieffer <robert@broofa.com>
|
|
||||||
Christoph Tavan <dev@tavan.de>
|
|
||||||
AJ ONeal <coolaj86@gmail.com>
|
|
||||||
Vincent Voyer <vincent@zeroload.net>
|
|
||||||
Roman Shtylman <shtylman@gmail.com>
|
|
||||||
15
README.md
15
README.md
@@ -76,21 +76,6 @@ See [action.yml](action.yml)
|
|||||||
# Set always-auth option in npmrc file.
|
# Set always-auth option in npmrc file.
|
||||||
# Default: ''
|
# Default: ''
|
||||||
always-auth: ''
|
always-auth: ''
|
||||||
|
|
||||||
# Optional mirror to download binaries from.
|
|
||||||
# Artifacts need to match the official Node.js
|
|
||||||
# Example:
|
|
||||||
# V8 Canaray Build: <mirror_url>/download/v8-canary
|
|
||||||
# RC Build: <mirror_url>/download/rc
|
|
||||||
# Official: Build <mirror_url>/dist
|
|
||||||
# Nightly build: <mirror_url>/download/nightly
|
|
||||||
# Default: ''
|
|
||||||
mirror: ''
|
|
||||||
|
|
||||||
# Optional mirror token.
|
|
||||||
# The token will be used as a bearer token in the Authorization header
|
|
||||||
# Default: ''
|
|
||||||
mirror-token: ''
|
|
||||||
```
|
```
|
||||||
<!-- end usage -->
|
<!-- end usage -->
|
||||||
|
|
||||||
|
|||||||
@@ -498,70 +498,6 @@ describe('setup-node', () => {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
it.each([
|
|
||||||
[
|
|
||||||
'20.0.0-v8-canary',
|
|
||||||
'20.0.0-v8-canary20221103f7e2421e91',
|
|
||||||
'20.0.0-v8-canary20221030fefe1c0879',
|
|
||||||
'https://my_mirror.org/download/v8-canary/v20.0.0-v8-canary20221103f7e2421e91/node-v20.0.0-v8-canary20221103f7e2421e91-linux-x64.tar.gz'
|
|
||||||
],
|
|
||||||
[
|
|
||||||
'20-v8-canary',
|
|
||||||
'20.0.0-v8-canary20221103f7e2421e91',
|
|
||||||
'20.0.0-v8-canary20221030fefe1c0879',
|
|
||||||
'https://my_mirror.org/download/v8-canary/v20.0.0-v8-canary20221103f7e2421e91/node-v20.0.0-v8-canary20221103f7e2421e91-linux-x64.tar.gz'
|
|
||||||
],
|
|
||||||
[
|
|
||||||
'19.0.0-v8-canary',
|
|
||||||
'19.0.0-v8-canary202210187d6960f23f',
|
|
||||||
'19.0.0-v8-canary202210172ec229fc56',
|
|
||||||
'https://my_mirror.org/download/v8-canary/v19.0.0-v8-canary202210187d6960f23f/node-v19.0.0-v8-canary202210187d6960f23f-linux-x64.tar.gz'
|
|
||||||
],
|
|
||||||
[
|
|
||||||
'19-v8-canary',
|
|
||||||
'19.0.0-v8-canary202210187d6960f23f',
|
|
||||||
'19.0.0-v8-canary202210172ec229fc56',
|
|
||||||
'https://my_mirror.org/download/v8-canary/v19.0.0-v8-canary202210187d6960f23f/node-v19.0.0-v8-canary202210187d6960f23f-linux-x64.tar.gz'
|
|
||||||
]
|
|
||||||
])(
|
|
||||||
'get %s version from dist if check-latest is true',
|
|
||||||
async (input, expectedVersion, foundVersion, expectedUrl) => {
|
|
||||||
const foundToolPath = path.normalize(`/cache/node/${foundVersion}/x64`);
|
|
||||||
const toolPath = path.normalize(`/cache/node/${expectedVersion}/x64`);
|
|
||||||
|
|
||||||
inputs['node-version'] = input;
|
|
||||||
inputs['check-latest'] = 'true';
|
|
||||||
os['arch'] = 'x64';
|
|
||||||
os['platform'] = 'linux';
|
|
||||||
inputs['mirror'] = 'https://my_mirror.org';
|
|
||||||
inputs['mirror-token'] = 'faketoken';
|
|
||||||
|
|
||||||
findSpy.mockReturnValue(foundToolPath);
|
|
||||||
findAllVersionsSpy.mockReturnValue([
|
|
||||||
'20.0.0-v8-canary20221030fefe1c0879',
|
|
||||||
'19.0.0-v8-canary202210172ec229fc56',
|
|
||||||
'20.0.0-v8-canary2022102310ff1e5a8d'
|
|
||||||
]);
|
|
||||||
dlSpy.mockImplementation(async () => '/some/temp/path');
|
|
||||||
exSpy.mockImplementation(async () => '/some/other/temp/path');
|
|
||||||
cacheSpy.mockImplementation(async () => toolPath);
|
|
||||||
|
|
||||||
// act
|
|
||||||
await main.run();
|
|
||||||
|
|
||||||
// assert
|
|
||||||
expect(findAllVersionsSpy).toHaveBeenCalled();
|
|
||||||
expect(logSpy).toHaveBeenCalledWith(
|
|
||||||
`Acquiring ${expectedVersion} - ${os.arch} from ${expectedUrl}`
|
|
||||||
);
|
|
||||||
expect(logSpy).toHaveBeenCalledWith('Extracting ...');
|
|
||||||
expect(logSpy).toHaveBeenCalledWith('Adding to the cache ...');
|
|
||||||
expect(cnSpy).toHaveBeenCalledWith(
|
|
||||||
`::add-path::${path.join(toolPath, 'bin')}${osm.EOL}`
|
|
||||||
);
|
|
||||||
}
|
|
||||||
);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('setup-node v8 canary tests', () => {
|
describe('setup-node v8 canary tests', () => {
|
||||||
|
|||||||
@@ -315,7 +315,7 @@ describe('setup-node', () => {
|
|||||||
await main.run();
|
await main.run();
|
||||||
|
|
||||||
workingUrls.forEach(url => {
|
workingUrls.forEach(url => {
|
||||||
expect(dlSpy).toHaveBeenCalledWith(url, undefined, undefined);
|
expect(dlSpy).toHaveBeenCalledWith(url);
|
||||||
});
|
});
|
||||||
expect(cnSpy).toHaveBeenCalledWith(`::add-path::${toolPath}${osm.EOL}`);
|
expect(cnSpy).toHaveBeenCalledWith(`::add-path::${toolPath}${osm.EOL}`);
|
||||||
});
|
});
|
||||||
@@ -449,54 +449,6 @@ describe('setup-node', () => {
|
|||||||
}
|
}
|
||||||
}, 100000);
|
}, 100000);
|
||||||
|
|
||||||
it('acquires specified architecture of node from mirror', async () => {
|
|
||||||
for (const {arch, version, osSpec} of [
|
|
||||||
{
|
|
||||||
arch: 'x86',
|
|
||||||
version: '18.0.0-nightly202110204cb3e06ed8',
|
|
||||||
osSpec: 'win32'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
arch: 'x86',
|
|
||||||
version: '20.0.0-nightly2022101987cdf7d412',
|
|
||||||
osSpec: 'win32'
|
|
||||||
}
|
|
||||||
]) {
|
|
||||||
os.platform = osSpec;
|
|
||||||
os.arch = arch;
|
|
||||||
const fileExtension = os.platform === 'win32' ? '7z' : 'tar.gz';
|
|
||||||
const platform = {
|
|
||||||
linux: 'linux',
|
|
||||||
darwin: 'darwin',
|
|
||||||
win32: 'win'
|
|
||||||
}[os.platform];
|
|
||||||
|
|
||||||
inputs['node-version'] = version;
|
|
||||||
inputs['architecture'] = arch;
|
|
||||||
inputs['always-auth'] = false;
|
|
||||||
inputs['token'] = 'faketoken';
|
|
||||||
inputs['mirror'] = 'https://my-mirror.org';
|
|
||||||
inputs['mirror-token'] = 'my-mirror-token';
|
|
||||||
|
|
||||||
const expectedUrl = `https://my-mirror.org/download/nightly/v${version}/node-v${version}-${platform}-${arch}.${fileExtension}`;
|
|
||||||
|
|
||||||
// ... but not in the local cache
|
|
||||||
findSpy.mockImplementation(() => '');
|
|
||||||
findAllVersionsSpy.mockImplementation(() => []);
|
|
||||||
|
|
||||||
dlSpy.mockImplementation(async () => '/some/temp/path');
|
|
||||||
const toolPath = path.normalize(`/cache/node/${version}/${arch}`);
|
|
||||||
exSpy.mockImplementation(async () => '/some/other/temp/path');
|
|
||||||
cacheSpy.mockImplementation(async () => toolPath);
|
|
||||||
|
|
||||||
await main.run();
|
|
||||||
expect(dlSpy).toHaveBeenCalled();
|
|
||||||
expect(logSpy).toHaveBeenCalledWith(
|
|
||||||
`Acquiring ${version} - ${arch} from ${expectedUrl}`
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}, 100000);
|
|
||||||
|
|
||||||
describe('nightly versions', () => {
|
describe('nightly versions', () => {
|
||||||
it.each([
|
it.each([
|
||||||
[
|
[
|
||||||
|
|||||||
@@ -828,46 +828,4 @@ describe('setup-node', () => {
|
|||||||
}
|
}
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('acquires specified architecture of node from mirror', async () => {
|
|
||||||
for (const {arch, version, osSpec} of [
|
|
||||||
{arch: 'x86', version: '12.16.2', osSpec: 'win32'},
|
|
||||||
{arch: 'x86', version: '14.0.0', osSpec: 'win32'}
|
|
||||||
]) {
|
|
||||||
os.platform = osSpec;
|
|
||||||
os.arch = arch;
|
|
||||||
const fileExtension = os.platform === 'win32' ? '7z' : 'tar.gz';
|
|
||||||
const platform = {
|
|
||||||
linux: 'linux',
|
|
||||||
darwin: 'darwin',
|
|
||||||
win32: 'win'
|
|
||||||
}[os.platform];
|
|
||||||
|
|
||||||
inputs['node-version'] = version;
|
|
||||||
inputs['architecture'] = arch;
|
|
||||||
inputs['always-auth'] = false;
|
|
||||||
inputs['token'] = 'faketoken';
|
|
||||||
inputs['mirror'] = 'https://my_mirror_url';
|
|
||||||
inputs['mirror-token'] = 'faketoken';
|
|
||||||
|
|
||||||
const expectedUrl =
|
|
||||||
arch === 'x64'
|
|
||||||
? `https://github.com/actions/node-versions/releases/download/${version}/node-${version}-${platform}-${arch}.zip`
|
|
||||||
: `https://my_mirror_url/dist/v${version}/node-v${version}-${platform}-${arch}.${fileExtension}`;
|
|
||||||
|
|
||||||
// ... but not in the local cache
|
|
||||||
findSpy.mockImplementation(() => '');
|
|
||||||
|
|
||||||
dlSpy.mockImplementation(async () => '/some/temp/path');
|
|
||||||
const toolPath = path.normalize(`/cache/node/${version}/${arch}`);
|
|
||||||
exSpy.mockImplementation(async () => '/some/other/temp/path');
|
|
||||||
cacheSpy.mockImplementation(async () => toolPath);
|
|
||||||
|
|
||||||
await main.run();
|
|
||||||
expect(dlSpy).toHaveBeenCalled();
|
|
||||||
expect(logSpy).toHaveBeenCalledWith(
|
|
||||||
`Acquiring ${version} - ${arch} from ${expectedUrl}`
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}, 100000);
|
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -25,10 +25,6 @@ inputs:
|
|||||||
description: 'Used to specify a package manager for caching in the default directory. Supported values: npm, yarn, pnpm.'
|
description: 'Used to specify a package manager for caching in the default directory. Supported values: npm, yarn, pnpm.'
|
||||||
cache-dependency-path:
|
cache-dependency-path:
|
||||||
description: 'Used to specify the path to a dependency file: package-lock.json, yarn.lock, etc. Supports wildcards or a list of file names for caching multiple dependencies.'
|
description: 'Used to specify the path to a dependency file: package-lock.json, yarn.lock, etc. Supports wildcards or a list of file names for caching multiple dependencies.'
|
||||||
mirror:
|
|
||||||
description: 'Used to specify an alternative mirror to downlooad Node.js binaries from'
|
|
||||||
mirror-token:
|
|
||||||
description: 'The token used as Authorization header when fetching from the mirror'
|
|
||||||
# TODO: add input to control forcing to pull from cloud or dist.
|
# TODO: add input to control forcing to pull from cloud or dist.
|
||||||
# escape valve for someone having issues or needing the absolute latest which isn't cached yet
|
# escape valve for someone having issues or needing the absolute latest which isn't cached yet
|
||||||
outputs:
|
outputs:
|
||||||
|
|||||||
208
dist/setup/index.js
vendored
208
dist/setup/index.js
vendored
@@ -10371,7 +10371,11 @@ function copyFile(srcFile, destFile, force) {
|
|||||||
|
|
||||||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
||||||
if (k2 === undefined) k2 = k;
|
if (k2 === undefined) k2 = k;
|
||||||
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
var desc = Object.getOwnPropertyDescriptor(m, k);
|
||||||
|
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
||||||
|
desc = { enumerable: true, get: function() { return m[k]; } };
|
||||||
|
}
|
||||||
|
Object.defineProperty(o, k2, desc);
|
||||||
}) : (function(o, m, k, k2) {
|
}) : (function(o, m, k, k2) {
|
||||||
if (k2 === undefined) k2 = k;
|
if (k2 === undefined) k2 = k;
|
||||||
o[k2] = m[k];
|
o[k2] = m[k];
|
||||||
@@ -10384,7 +10388,7 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|||||||
var __importStar = (this && this.__importStar) || function (mod) {
|
var __importStar = (this && this.__importStar) || function (mod) {
|
||||||
if (mod && mod.__esModule) return mod;
|
if (mod && mod.__esModule) return mod;
|
||||||
var result = {};
|
var result = {};
|
||||||
if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
||||||
__setModuleDefault(result, mod);
|
__setModuleDefault(result, mod);
|
||||||
return result;
|
return result;
|
||||||
};
|
};
|
||||||
@@ -10414,11 +10418,11 @@ function _findMatch(versionSpec, stable, candidates, archFilter) {
|
|||||||
let file;
|
let file;
|
||||||
for (const candidate of candidates) {
|
for (const candidate of candidates) {
|
||||||
const version = candidate.version;
|
const version = candidate.version;
|
||||||
core_1.debug(`check ${version} satisfies ${versionSpec}`);
|
(0, core_1.debug)(`check ${version} satisfies ${versionSpec}`);
|
||||||
if (semver.satisfies(version, versionSpec) &&
|
if (semver.satisfies(version, versionSpec) &&
|
||||||
(!stable || candidate.stable === stable)) {
|
(!stable || candidate.stable === stable)) {
|
||||||
file = candidate.files.find(item => {
|
file = candidate.files.find(item => {
|
||||||
core_1.debug(`${item.arch}===${archFilter} && ${item.platform}===${platFilter}`);
|
(0, core_1.debug)(`${item.arch}===${archFilter} && ${item.platform}===${platFilter}`);
|
||||||
let chk = item.arch === archFilter && item.platform === platFilter;
|
let chk = item.arch === archFilter && item.platform === platFilter;
|
||||||
if (chk && item.platform_version) {
|
if (chk && item.platform_version) {
|
||||||
const osVersion = module.exports._getOsVersion();
|
const osVersion = module.exports._getOsVersion();
|
||||||
@@ -10432,7 +10436,7 @@ function _findMatch(versionSpec, stable, candidates, archFilter) {
|
|||||||
return chk;
|
return chk;
|
||||||
});
|
});
|
||||||
if (file) {
|
if (file) {
|
||||||
core_1.debug(`matched ${candidate.version}`);
|
(0, core_1.debug)(`matched ${candidate.version}`);
|
||||||
match = candidate;
|
match = candidate;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -10470,10 +10474,7 @@ function _getOsVersion() {
|
|||||||
if (parts.length === 2 &&
|
if (parts.length === 2 &&
|
||||||
(parts[0].trim() === 'VERSION_ID' ||
|
(parts[0].trim() === 'VERSION_ID' ||
|
||||||
parts[0].trim() === 'DISTRIB_RELEASE')) {
|
parts[0].trim() === 'DISTRIB_RELEASE')) {
|
||||||
version = parts[1]
|
version = parts[1].trim().replace(/^"/, '').replace(/"$/, '');
|
||||||
.trim()
|
|
||||||
.replace(/^"/, '')
|
|
||||||
.replace(/"$/, '');
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -10506,7 +10507,11 @@ exports._readLinuxVersionFile = _readLinuxVersionFile;
|
|||||||
|
|
||||||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
||||||
if (k2 === undefined) k2 = k;
|
if (k2 === undefined) k2 = k;
|
||||||
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
var desc = Object.getOwnPropertyDescriptor(m, k);
|
||||||
|
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
||||||
|
desc = { enumerable: true, get: function() { return m[k]; } };
|
||||||
|
}
|
||||||
|
Object.defineProperty(o, k2, desc);
|
||||||
}) : (function(o, m, k, k2) {
|
}) : (function(o, m, k, k2) {
|
||||||
if (k2 === undefined) k2 = k;
|
if (k2 === undefined) k2 = k;
|
||||||
o[k2] = m[k];
|
o[k2] = m[k];
|
||||||
@@ -10519,7 +10524,7 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|||||||
var __importStar = (this && this.__importStar) || function (mod) {
|
var __importStar = (this && this.__importStar) || function (mod) {
|
||||||
if (mod && mod.__esModule) return mod;
|
if (mod && mod.__esModule) return mod;
|
||||||
var result = {};
|
var result = {};
|
||||||
if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
||||||
__setModuleDefault(result, mod);
|
__setModuleDefault(result, mod);
|
||||||
return result;
|
return result;
|
||||||
};
|
};
|
||||||
@@ -10596,7 +10601,11 @@ exports.RetryHelper = RetryHelper;
|
|||||||
|
|
||||||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
||||||
if (k2 === undefined) k2 = k;
|
if (k2 === undefined) k2 = k;
|
||||||
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
var desc = Object.getOwnPropertyDescriptor(m, k);
|
||||||
|
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
||||||
|
desc = { enumerable: true, get: function() { return m[k]; } };
|
||||||
|
}
|
||||||
|
Object.defineProperty(o, k2, desc);
|
||||||
}) : (function(o, m, k, k2) {
|
}) : (function(o, m, k, k2) {
|
||||||
if (k2 === undefined) k2 = k;
|
if (k2 === undefined) k2 = k;
|
||||||
o[k2] = m[k];
|
o[k2] = m[k];
|
||||||
@@ -10609,7 +10618,7 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|||||||
var __importStar = (this && this.__importStar) || function (mod) {
|
var __importStar = (this && this.__importStar) || function (mod) {
|
||||||
if (mod && mod.__esModule) return mod;
|
if (mod && mod.__esModule) return mod;
|
||||||
var result = {};
|
var result = {};
|
||||||
if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
||||||
__setModuleDefault(result, mod);
|
__setModuleDefault(result, mod);
|
||||||
return result;
|
return result;
|
||||||
};
|
};
|
||||||
@@ -10622,13 +10631,11 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|||||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
||||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
||||||
};
|
|
||||||
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
||||||
exports.evaluateVersions = exports.isExplicitVersion = exports.findFromManifest = exports.getManifestFromRepo = exports.findAllVersions = exports.find = exports.cacheFile = exports.cacheDir = exports.extractZip = exports.extractXar = exports.extractTar = exports.extract7z = exports.downloadTool = exports.HTTPError = void 0;
|
exports.evaluateVersions = exports.isExplicitVersion = exports.findFromManifest = exports.getManifestFromRepo = exports.findAllVersions = exports.find = exports.cacheFile = exports.cacheDir = exports.extractZip = exports.extractXar = exports.extractTar = exports.extract7z = exports.downloadTool = exports.HTTPError = void 0;
|
||||||
const core = __importStar(__nccwpck_require__(7484));
|
const core = __importStar(__nccwpck_require__(7484));
|
||||||
const io = __importStar(__nccwpck_require__(4994));
|
const io = __importStar(__nccwpck_require__(4994));
|
||||||
|
const crypto = __importStar(__nccwpck_require__(6982));
|
||||||
const fs = __importStar(__nccwpck_require__(9896));
|
const fs = __importStar(__nccwpck_require__(9896));
|
||||||
const mm = __importStar(__nccwpck_require__(8036));
|
const mm = __importStar(__nccwpck_require__(8036));
|
||||||
const os = __importStar(__nccwpck_require__(857));
|
const os = __importStar(__nccwpck_require__(857));
|
||||||
@@ -10638,7 +10645,6 @@ const semver = __importStar(__nccwpck_require__(6193));
|
|||||||
const stream = __importStar(__nccwpck_require__(2203));
|
const stream = __importStar(__nccwpck_require__(2203));
|
||||||
const util = __importStar(__nccwpck_require__(9023));
|
const util = __importStar(__nccwpck_require__(9023));
|
||||||
const assert_1 = __nccwpck_require__(2613);
|
const assert_1 = __nccwpck_require__(2613);
|
||||||
const v4_1 = __importDefault(__nccwpck_require__(1350));
|
|
||||||
const exec_1 = __nccwpck_require__(5236);
|
const exec_1 = __nccwpck_require__(5236);
|
||||||
const retry_helper_1 = __nccwpck_require__(7380);
|
const retry_helper_1 = __nccwpck_require__(7380);
|
||||||
class HTTPError extends Error {
|
class HTTPError extends Error {
|
||||||
@@ -10663,7 +10669,7 @@ const userAgent = 'actions/tool-cache';
|
|||||||
*/
|
*/
|
||||||
function downloadTool(url, dest, auth, headers) {
|
function downloadTool(url, dest, auth, headers) {
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
dest = dest || path.join(_getTempDirectory(), v4_1.default());
|
dest = dest || path.join(_getTempDirectory(), crypto.randomUUID());
|
||||||
yield io.mkdirP(path.dirname(dest));
|
yield io.mkdirP(path.dirname(dest));
|
||||||
core.debug(`Downloading ${url}`);
|
core.debug(`Downloading ${url}`);
|
||||||
core.debug(`Destination ${dest}`);
|
core.debug(`Destination ${dest}`);
|
||||||
@@ -10752,8 +10758,8 @@ function downloadToolAttempt(url, dest, auth, headers) {
|
|||||||
*/
|
*/
|
||||||
function extract7z(file, dest, _7zPath) {
|
function extract7z(file, dest, _7zPath) {
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
assert_1.ok(IS_WINDOWS, 'extract7z() not supported on current OS');
|
(0, assert_1.ok)(IS_WINDOWS, 'extract7z() not supported on current OS');
|
||||||
assert_1.ok(file, 'parameter "file" is required');
|
(0, assert_1.ok)(file, 'parameter "file" is required');
|
||||||
dest = yield _createExtractFolder(dest);
|
dest = yield _createExtractFolder(dest);
|
||||||
const originalCwd = process.cwd();
|
const originalCwd = process.cwd();
|
||||||
process.chdir(dest);
|
process.chdir(dest);
|
||||||
@@ -10770,7 +10776,7 @@ function extract7z(file, dest, _7zPath) {
|
|||||||
const options = {
|
const options = {
|
||||||
silent: true
|
silent: true
|
||||||
};
|
};
|
||||||
yield exec_1.exec(`"${_7zPath}"`, args, options);
|
yield (0, exec_1.exec)(`"${_7zPath}"`, args, options);
|
||||||
}
|
}
|
||||||
finally {
|
finally {
|
||||||
process.chdir(originalCwd);
|
process.chdir(originalCwd);
|
||||||
@@ -10799,7 +10805,7 @@ function extract7z(file, dest, _7zPath) {
|
|||||||
};
|
};
|
||||||
try {
|
try {
|
||||||
const powershellPath = yield io.which('powershell', true);
|
const powershellPath = yield io.which('powershell', true);
|
||||||
yield exec_1.exec(`"${powershellPath}"`, args, options);
|
yield (0, exec_1.exec)(`"${powershellPath}"`, args, options);
|
||||||
}
|
}
|
||||||
finally {
|
finally {
|
||||||
process.chdir(originalCwd);
|
process.chdir(originalCwd);
|
||||||
@@ -10827,7 +10833,7 @@ function extractTar(file, dest, flags = 'xz') {
|
|||||||
// Determine whether GNU tar
|
// Determine whether GNU tar
|
||||||
core.debug('Checking tar --version');
|
core.debug('Checking tar --version');
|
||||||
let versionOutput = '';
|
let versionOutput = '';
|
||||||
yield exec_1.exec('tar --version', [], {
|
yield (0, exec_1.exec)('tar --version', [], {
|
||||||
ignoreReturnCode: true,
|
ignoreReturnCode: true,
|
||||||
silent: true,
|
silent: true,
|
||||||
listeners: {
|
listeners: {
|
||||||
@@ -10863,7 +10869,7 @@ function extractTar(file, dest, flags = 'xz') {
|
|||||||
args.push('--overwrite');
|
args.push('--overwrite');
|
||||||
}
|
}
|
||||||
args.push('-C', destArg, '-f', fileArg);
|
args.push('-C', destArg, '-f', fileArg);
|
||||||
yield exec_1.exec(`tar`, args);
|
yield (0, exec_1.exec)(`tar`, args);
|
||||||
return dest;
|
return dest;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -10878,8 +10884,8 @@ exports.extractTar = extractTar;
|
|||||||
*/
|
*/
|
||||||
function extractXar(file, dest, flags = []) {
|
function extractXar(file, dest, flags = []) {
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
assert_1.ok(IS_MAC, 'extractXar() not supported on current OS');
|
(0, assert_1.ok)(IS_MAC, 'extractXar() not supported on current OS');
|
||||||
assert_1.ok(file, 'parameter "file" is required');
|
(0, assert_1.ok)(file, 'parameter "file" is required');
|
||||||
dest = yield _createExtractFolder(dest);
|
dest = yield _createExtractFolder(dest);
|
||||||
let args;
|
let args;
|
||||||
if (flags instanceof Array) {
|
if (flags instanceof Array) {
|
||||||
@@ -10893,7 +10899,7 @@ function extractXar(file, dest, flags = []) {
|
|||||||
args.push('-v');
|
args.push('-v');
|
||||||
}
|
}
|
||||||
const xarPath = yield io.which('xar', true);
|
const xarPath = yield io.which('xar', true);
|
||||||
yield exec_1.exec(`"${xarPath}"`, _unique(args));
|
yield (0, exec_1.exec)(`"${xarPath}"`, _unique(args));
|
||||||
return dest;
|
return dest;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -10947,7 +10953,7 @@ function extractZipWin(file, dest) {
|
|||||||
pwshCommand
|
pwshCommand
|
||||||
];
|
];
|
||||||
core.debug(`Using pwsh at path: ${pwshPath}`);
|
core.debug(`Using pwsh at path: ${pwshPath}`);
|
||||||
yield exec_1.exec(`"${pwshPath}"`, args);
|
yield (0, exec_1.exec)(`"${pwshPath}"`, args);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
const powershellCommand = [
|
const powershellCommand = [
|
||||||
@@ -10968,7 +10974,7 @@ function extractZipWin(file, dest) {
|
|||||||
];
|
];
|
||||||
const powershellPath = yield io.which('powershell', true);
|
const powershellPath = yield io.which('powershell', true);
|
||||||
core.debug(`Using powershell at path: ${powershellPath}`);
|
core.debug(`Using powershell at path: ${powershellPath}`);
|
||||||
yield exec_1.exec(`"${powershellPath}"`, args);
|
yield (0, exec_1.exec)(`"${powershellPath}"`, args);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -10980,7 +10986,7 @@ function extractZipNix(file, dest) {
|
|||||||
args.unshift('-q');
|
args.unshift('-q');
|
||||||
}
|
}
|
||||||
args.unshift('-o'); //overwrite with -o, otherwise a prompt is shown which freezes the run
|
args.unshift('-o'); //overwrite with -o, otherwise a prompt is shown which freezes the run
|
||||||
yield exec_1.exec(`"${unzipPath}"`, args, { cwd: dest });
|
yield (0, exec_1.exec)(`"${unzipPath}"`, args, { cwd: dest });
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
@@ -11157,7 +11163,7 @@ function _createExtractFolder(dest) {
|
|||||||
return __awaiter(this, void 0, void 0, function* () {
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
if (!dest) {
|
if (!dest) {
|
||||||
// create a temp dir
|
// create a temp dir
|
||||||
dest = path.join(_getTempDirectory(), v4_1.default());
|
dest = path.join(_getTempDirectory(), crypto.randomUUID());
|
||||||
}
|
}
|
||||||
yield io.mkdirP(dest);
|
yield io.mkdirP(dest);
|
||||||
return dest;
|
return dest;
|
||||||
@@ -11230,7 +11236,7 @@ exports.evaluateVersions = evaluateVersions;
|
|||||||
*/
|
*/
|
||||||
function _getCacheDirectory() {
|
function _getCacheDirectory() {
|
||||||
const cacheDirectory = process.env['RUNNER_TOOL_CACHE'] || '';
|
const cacheDirectory = process.env['RUNNER_TOOL_CACHE'] || '';
|
||||||
assert_1.ok(cacheDirectory, 'Expected RUNNER_TOOL_CACHE to be defined');
|
(0, assert_1.ok)(cacheDirectory, 'Expected RUNNER_TOOL_CACHE to be defined');
|
||||||
return cacheDirectory;
|
return cacheDirectory;
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
@@ -11238,7 +11244,7 @@ function _getCacheDirectory() {
|
|||||||
*/
|
*/
|
||||||
function _getTempDirectory() {
|
function _getTempDirectory() {
|
||||||
const tempDirectory = process.env['RUNNER_TEMP'] || '';
|
const tempDirectory = process.env['RUNNER_TEMP'] || '';
|
||||||
assert_1.ok(tempDirectory, 'Expected RUNNER_TEMP to be defined');
|
(0, assert_1.ok)(tempDirectory, 'Expected RUNNER_TEMP to be defined');
|
||||||
return tempDirectory;
|
return tempDirectory;
|
||||||
}
|
}
|
||||||
/**
|
/**
|
||||||
@@ -12909,90 +12915,6 @@ function coerce (version, options) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/***/ }),
|
|
||||||
|
|
||||||
/***/ 2727:
|
|
||||||
/***/ ((module) => {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Convert array of 16 byte values to UUID string format of the form:
|
|
||||||
* XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
|
|
||||||
*/
|
|
||||||
var byteToHex = [];
|
|
||||||
for (var i = 0; i < 256; ++i) {
|
|
||||||
byteToHex[i] = (i + 0x100).toString(16).substr(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
function bytesToUuid(buf, offset) {
|
|
||||||
var i = offset || 0;
|
|
||||||
var bth = byteToHex;
|
|
||||||
// join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4
|
|
||||||
return ([
|
|
||||||
bth[buf[i++]], bth[buf[i++]],
|
|
||||||
bth[buf[i++]], bth[buf[i++]], '-',
|
|
||||||
bth[buf[i++]], bth[buf[i++]], '-',
|
|
||||||
bth[buf[i++]], bth[buf[i++]], '-',
|
|
||||||
bth[buf[i++]], bth[buf[i++]], '-',
|
|
||||||
bth[buf[i++]], bth[buf[i++]],
|
|
||||||
bth[buf[i++]], bth[buf[i++]],
|
|
||||||
bth[buf[i++]], bth[buf[i++]]
|
|
||||||
]).join('');
|
|
||||||
}
|
|
||||||
|
|
||||||
module.exports = bytesToUuid;
|
|
||||||
|
|
||||||
|
|
||||||
/***/ }),
|
|
||||||
|
|
||||||
/***/ 9879:
|
|
||||||
/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
|
|
||||||
|
|
||||||
// Unique ID creation requires a high quality random # generator. In node.js
|
|
||||||
// this is pretty straight-forward - we use the crypto API.
|
|
||||||
|
|
||||||
var crypto = __nccwpck_require__(6982);
|
|
||||||
|
|
||||||
module.exports = function nodeRNG() {
|
|
||||||
return crypto.randomBytes(16);
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
/***/ }),
|
|
||||||
|
|
||||||
/***/ 1350:
|
|
||||||
/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => {
|
|
||||||
|
|
||||||
var rng = __nccwpck_require__(9879);
|
|
||||||
var bytesToUuid = __nccwpck_require__(2727);
|
|
||||||
|
|
||||||
function v4(options, buf, offset) {
|
|
||||||
var i = buf && offset || 0;
|
|
||||||
|
|
||||||
if (typeof(options) == 'string') {
|
|
||||||
buf = options === 'binary' ? new Array(16) : null;
|
|
||||||
options = null;
|
|
||||||
}
|
|
||||||
options = options || {};
|
|
||||||
|
|
||||||
var rnds = options.random || (options.rng || rng)();
|
|
||||||
|
|
||||||
// Per 4.4, set bits for version and `clock_seq_hi_and_reserved`
|
|
||||||
rnds[6] = (rnds[6] & 0x0f) | 0x40;
|
|
||||||
rnds[8] = (rnds[8] & 0x3f) | 0x80;
|
|
||||||
|
|
||||||
// Copy bytes to buffer, if provided
|
|
||||||
if (buf) {
|
|
||||||
for (var ii = 0; ii < 16; ++ii) {
|
|
||||||
buf[i + ii] = rnds[ii];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return buf || bytesToUuid(rnds);
|
|
||||||
}
|
|
||||||
|
|
||||||
module.exports = v4;
|
|
||||||
|
|
||||||
|
|
||||||
/***/ }),
|
/***/ }),
|
||||||
|
|
||||||
/***/ 8110:
|
/***/ 8110:
|
||||||
@@ -97289,13 +97211,9 @@ class BaseDistribution {
|
|||||||
}
|
}
|
||||||
getNodeJsVersions() {
|
getNodeJsVersions() {
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
const initialUrl = this.getDistributionUrl(this.nodeInfo.mirror);
|
const initialUrl = this.getDistributionUrl();
|
||||||
const dataUrl = `${initialUrl}/index.json`;
|
const dataUrl = `${initialUrl}/index.json`;
|
||||||
const headers = {};
|
const response = yield this.httpClient.getJson(dataUrl);
|
||||||
if (this.nodeInfo.mirrorToken) {
|
|
||||||
headers['Authorization'] = `Bearer ${this.nodeInfo.mirrorToken}`;
|
|
||||||
}
|
|
||||||
const response = yield this.httpClient.getJson(dataUrl, headers);
|
|
||||||
return response.result || [];
|
return response.result || [];
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -97310,7 +97228,7 @@ class BaseDistribution {
|
|||||||
? `${fileName}.zip`
|
? `${fileName}.zip`
|
||||||
: `${fileName}.7z`
|
: `${fileName}.7z`
|
||||||
: `${fileName}.tar.gz`;
|
: `${fileName}.tar.gz`;
|
||||||
const initialUrl = this.getDistributionUrl(this.nodeInfo.mirror);
|
const initialUrl = this.getDistributionUrl();
|
||||||
const url = `${initialUrl}/v${version}/${urlFileName}`;
|
const url = `${initialUrl}/v${version}/${urlFileName}`;
|
||||||
return {
|
return {
|
||||||
downloadUrl: url,
|
downloadUrl: url,
|
||||||
@@ -97324,7 +97242,7 @@ class BaseDistribution {
|
|||||||
let downloadPath = '';
|
let downloadPath = '';
|
||||||
core.info(`Acquiring ${info.resolvedVersion} - ${info.arch} from ${info.downloadUrl}`);
|
core.info(`Acquiring ${info.resolvedVersion} - ${info.arch} from ${info.downloadUrl}`);
|
||||||
try {
|
try {
|
||||||
downloadPath = yield tc.downloadTool(info.downloadUrl, undefined, this.nodeInfo.mirrorToken);
|
downloadPath = yield tc.downloadTool(info.downloadUrl);
|
||||||
}
|
}
|
||||||
catch (err) {
|
catch (err) {
|
||||||
if (err instanceof tc.HTTPError &&
|
if (err instanceof tc.HTTPError &&
|
||||||
@@ -97348,7 +97266,7 @@ class BaseDistribution {
|
|||||||
}
|
}
|
||||||
acquireWindowsNodeFromFallbackLocation(version_1) {
|
acquireWindowsNodeFromFallbackLocation(version_1) {
|
||||||
return __awaiter(this, arguments, void 0, function* (version, arch = os_1.default.arch()) {
|
return __awaiter(this, arguments, void 0, function* (version, arch = os_1.default.arch()) {
|
||||||
const initialUrl = this.getDistributionUrl(this.nodeInfo.mirror);
|
const initialUrl = this.getDistributionUrl();
|
||||||
const osArch = this.translateArchToDistUrl(arch);
|
const osArch = this.translateArchToDistUrl(arch);
|
||||||
// Create temporary folder to download to
|
// Create temporary folder to download to
|
||||||
const tempDownloadFolder = `temp_${(0, uuid_1.v4)()}`;
|
const tempDownloadFolder = `temp_${(0, uuid_1.v4)()}`;
|
||||||
@@ -97362,18 +97280,18 @@ class BaseDistribution {
|
|||||||
exeUrl = `${initialUrl}/v${version}/win-${osArch}/node.exe`;
|
exeUrl = `${initialUrl}/v${version}/win-${osArch}/node.exe`;
|
||||||
libUrl = `${initialUrl}/v${version}/win-${osArch}/node.lib`;
|
libUrl = `${initialUrl}/v${version}/win-${osArch}/node.lib`;
|
||||||
core.info(`Downloading only node binary from ${exeUrl}`);
|
core.info(`Downloading only node binary from ${exeUrl}`);
|
||||||
const exePath = yield tc.downloadTool(exeUrl, undefined, this.nodeInfo.mirrorToken);
|
const exePath = yield tc.downloadTool(exeUrl);
|
||||||
yield io.cp(exePath, path.join(tempDir, 'node.exe'));
|
yield io.cp(exePath, path.join(tempDir, 'node.exe'));
|
||||||
const libPath = yield tc.downloadTool(libUrl, undefined, this.nodeInfo.mirrorToken);
|
const libPath = yield tc.downloadTool(libUrl);
|
||||||
yield io.cp(libPath, path.join(tempDir, 'node.lib'));
|
yield io.cp(libPath, path.join(tempDir, 'node.lib'));
|
||||||
}
|
}
|
||||||
catch (err) {
|
catch (err) {
|
||||||
if (err instanceof tc.HTTPError && err.httpStatusCode == 404) {
|
if (err instanceof tc.HTTPError && err.httpStatusCode == 404) {
|
||||||
exeUrl = `${initialUrl}/v${version}/node.exe`;
|
exeUrl = `${initialUrl}/v${version}/node.exe`;
|
||||||
libUrl = `${initialUrl}/v${version}/node.lib`;
|
libUrl = `${initialUrl}/v${version}/node.lib`;
|
||||||
const exePath = yield tc.downloadTool(exeUrl, undefined, this.nodeInfo.mirrorToken);
|
const exePath = yield tc.downloadTool(exeUrl);
|
||||||
yield io.cp(exePath, path.join(tempDir, 'node.exe'));
|
yield io.cp(exePath, path.join(tempDir, 'node.exe'));
|
||||||
const libPath = yield tc.downloadTool(libUrl, undefined, this.nodeInfo.mirrorToken);
|
const libPath = yield tc.downloadTool(libUrl);
|
||||||
yield io.cp(libPath, path.join(tempDir, 'node.lib'));
|
yield io.cp(libPath, path.join(tempDir, 'node.lib'));
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@@ -97536,9 +97454,8 @@ class NightlyNodejs extends base_distribution_prerelease_1.default {
|
|||||||
super(nodeInfo);
|
super(nodeInfo);
|
||||||
this.distribution = 'nightly';
|
this.distribution = 'nightly';
|
||||||
}
|
}
|
||||||
getDistributionUrl(mirror) {
|
getDistributionUrl() {
|
||||||
const url = mirror || 'https://nodejs.org';
|
return 'https://nodejs.org/download/nightly';
|
||||||
return `${url}/download/nightly`;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
exports["default"] = NightlyNodejs;
|
exports["default"] = NightlyNodejs;
|
||||||
@@ -97636,7 +97553,7 @@ class OfficialBuilds extends base_distribution_1.default {
|
|||||||
const versionInfo = yield this.getInfoFromManifest(this.nodeInfo.versionSpec, this.nodeInfo.stable, osArch, manifest);
|
const versionInfo = yield this.getInfoFromManifest(this.nodeInfo.versionSpec, this.nodeInfo.stable, osArch, manifest);
|
||||||
if (versionInfo) {
|
if (versionInfo) {
|
||||||
core.info(`Acquiring ${versionInfo.resolvedVersion} - ${versionInfo.arch} from ${versionInfo.downloadUrl}`);
|
core.info(`Acquiring ${versionInfo.resolvedVersion} - ${versionInfo.arch} from ${versionInfo.downloadUrl}`);
|
||||||
downloadPath = yield tc.downloadTool(versionInfo.downloadUrl, undefined, this.nodeInfo.mirror ? this.nodeInfo.mirrorToken : this.nodeInfo.auth);
|
downloadPath = yield tc.downloadTool(versionInfo.downloadUrl, undefined, this.nodeInfo.auth);
|
||||||
if (downloadPath) {
|
if (downloadPath) {
|
||||||
toolPath = yield this.extractArchive(downloadPath, versionInfo, false);
|
toolPath = yield this.extractArchive(downloadPath, versionInfo, false);
|
||||||
}
|
}
|
||||||
@@ -97704,13 +97621,12 @@ class OfficialBuilds extends base_distribution_1.default {
|
|||||||
version = super.evaluateVersions(versions);
|
version = super.evaluateVersions(versions);
|
||||||
return version;
|
return version;
|
||||||
}
|
}
|
||||||
getDistributionUrl(mirror) {
|
getDistributionUrl() {
|
||||||
const url = mirror || 'https://nodejs.org';
|
return `https://nodejs.org/dist`;
|
||||||
return `${url}/dist`;
|
|
||||||
}
|
}
|
||||||
getManifest() {
|
getManifest() {
|
||||||
core.debug('Getting manifest from actions/node-versions@main');
|
core.debug('Getting manifest from actions/node-versions@main');
|
||||||
return tc.getManifestFromRepo('actions', 'node-versions', this.nodeInfo.mirror ? this.nodeInfo.mirrorToken : this.nodeInfo.auth, 'main');
|
return tc.getManifestFromRepo('actions', 'node-versions', this.nodeInfo.auth, 'main');
|
||||||
}
|
}
|
||||||
resolveLtsAliasFromManifest(versionSpec, stable, manifest) {
|
resolveLtsAliasFromManifest(versionSpec, stable, manifest) {
|
||||||
var _a;
|
var _a;
|
||||||
@@ -97793,9 +97709,8 @@ class RcBuild extends base_distribution_1.default {
|
|||||||
constructor(nodeInfo) {
|
constructor(nodeInfo) {
|
||||||
super(nodeInfo);
|
super(nodeInfo);
|
||||||
}
|
}
|
||||||
getDistributionUrl(mirror) {
|
getDistributionUrl() {
|
||||||
const url = mirror || 'https://nodejs.org';
|
return 'https://nodejs.org/download/rc';
|
||||||
return `${url}/download/rc`;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
exports["default"] = RcBuild;
|
exports["default"] = RcBuild;
|
||||||
@@ -97818,9 +97733,8 @@ class CanaryBuild extends base_distribution_prerelease_1.default {
|
|||||||
super(nodeInfo);
|
super(nodeInfo);
|
||||||
this.distribution = 'v8-canary';
|
this.distribution = 'v8-canary';
|
||||||
}
|
}
|
||||||
getDistributionUrl(mirror) {
|
getDistributionUrl() {
|
||||||
const url = mirror || 'https://nodejs.org';
|
return 'https://nodejs.org/download/v8-canary';
|
||||||
return `${url}/download/v8-canary`;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
exports["default"] = CanaryBuild;
|
exports["default"] = CanaryBuild;
|
||||||
@@ -97900,8 +97814,6 @@ function run() {
|
|||||||
if (version) {
|
if (version) {
|
||||||
const token = core.getInput('token');
|
const token = core.getInput('token');
|
||||||
const auth = !token ? undefined : `token ${token}`;
|
const auth = !token ? undefined : `token ${token}`;
|
||||||
const mirror = core.getInput('mirror');
|
|
||||||
const mirrorToken = core.getInput('mirror-token');
|
|
||||||
const stable = (core.getInput('stable') || 'true').toUpperCase() === 'TRUE';
|
const stable = (core.getInput('stable') || 'true').toUpperCase() === 'TRUE';
|
||||||
const checkLatest = (core.getInput('check-latest') || 'false').toUpperCase() === 'TRUE';
|
const checkLatest = (core.getInput('check-latest') || 'false').toUpperCase() === 'TRUE';
|
||||||
const nodejsInfo = {
|
const nodejsInfo = {
|
||||||
@@ -97909,9 +97821,7 @@ function run() {
|
|||||||
checkLatest,
|
checkLatest,
|
||||||
auth,
|
auth,
|
||||||
stable,
|
stable,
|
||||||
arch,
|
arch
|
||||||
mirror,
|
|
||||||
mirrorToken
|
|
||||||
};
|
};
|
||||||
const nodeDistribution = (0, installer_factory_1.getNodejsDistribution)(nodejsInfo);
|
const nodeDistribution = (0, installer_factory_1.getNodejsDistribution)(nodejsInfo);
|
||||||
yield nodeDistribution.setupNodeJs();
|
yield nodeDistribution.setupNodeJs();
|
||||||
|
|||||||
@@ -418,18 +418,3 @@ Please refer to the [Ensuring workflow access to your package - Configuring a pa
|
|||||||
|
|
||||||
### always-auth input
|
### always-auth input
|
||||||
The always-auth input sets `always-auth=true` in .npmrc file. With this option set [npm](https://docs.npmjs.com/cli/v6/using-npm/config#always-auth)/yarn sends the authentication credentials when making a request to the registries.
|
The always-auth input sets `always-auth=true` in .npmrc file. With this option set [npm](https://docs.npmjs.com/cli/v6/using-npm/config#always-auth)/yarn sends the authentication credentials when making a request to the registries.
|
||||||
|
|
||||||
## Use private mirror
|
|
||||||
|
|
||||||
It is possible to use a private mirror hosting Node.js binaries. This mirror must be a full mirror of the official Node.js distribution.
|
|
||||||
The mirror URL can be set using the `mirror` input.
|
|
||||||
It is possible to specify a token to authenticate with the mirror using the `mirror-token` input.
|
|
||||||
The token will be passed as a bearer token in the `Authorization` header.
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
- uses: actions/setup-node@v4
|
|
||||||
with:
|
|
||||||
node-version: '14.x'
|
|
||||||
mirror: 'https://nodejs.org/dist'
|
|
||||||
mirror-token: 'your-mirror-token'
|
|
||||||
```
|
|
||||||
|
|||||||
23
package-lock.json
generated
23
package-lock.json
generated
@@ -16,7 +16,7 @@
|
|||||||
"@actions/glob": "^0.5.0",
|
"@actions/glob": "^0.5.0",
|
||||||
"@actions/http-client": "^2.2.1",
|
"@actions/http-client": "^2.2.1",
|
||||||
"@actions/io": "^1.0.2",
|
"@actions/io": "^1.0.2",
|
||||||
"@actions/tool-cache": "^2.0.1",
|
"@actions/tool-cache": "^2.0.2",
|
||||||
"semver": "^7.6.3",
|
"semver": "^7.6.3",
|
||||||
"uuid": "^9.0.1"
|
"uuid": "^9.0.1"
|
||||||
},
|
},
|
||||||
@@ -138,16 +138,16 @@
|
|||||||
"integrity": "sha512-wi9JjgKLYS7U/z8PPbco+PvTb/nRWjeoFlJ1Qer83k/3C5PHQi28hiVdeE2kHXmIL99mQFawx8qt/JPjZilJ8Q=="
|
"integrity": "sha512-wi9JjgKLYS7U/z8PPbco+PvTb/nRWjeoFlJ1Qer83k/3C5PHQi28hiVdeE2kHXmIL99mQFawx8qt/JPjZilJ8Q=="
|
||||||
},
|
},
|
||||||
"node_modules/@actions/tool-cache": {
|
"node_modules/@actions/tool-cache": {
|
||||||
"version": "2.0.1",
|
"version": "2.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/@actions/tool-cache/-/tool-cache-2.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/@actions/tool-cache/-/tool-cache-2.0.2.tgz",
|
||||||
"integrity": "sha512-iPU+mNwrbA8jodY8eyo/0S/QqCKDajiR8OxWTnSk/SnYg0sj8Hp4QcUEVC1YFpHWXtrfbQrE13Jz4k4HXJQKcA==",
|
"integrity": "sha512-fBhNNOWxuoLxztQebpOaWu6WeVmuwa77Z+DxIZ1B+OYvGkGQon6kTVg6Z32Cb13WCuw0szqonK+hh03mJV7Z6w==",
|
||||||
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@actions/core": "^1.2.6",
|
"@actions/core": "^1.11.1",
|
||||||
"@actions/exec": "^1.0.0",
|
"@actions/exec": "^1.0.0",
|
||||||
"@actions/http-client": "^2.0.1",
|
"@actions/http-client": "^2.0.1",
|
||||||
"@actions/io": "^1.1.1",
|
"@actions/io": "^1.1.1",
|
||||||
"semver": "^6.1.0",
|
"semver": "^6.1.0"
|
||||||
"uuid": "^3.3.2"
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@actions/tool-cache/node_modules/semver": {
|
"node_modules/@actions/tool-cache/node_modules/semver": {
|
||||||
@@ -158,15 +158,6 @@
|
|||||||
"semver": "bin/semver.js"
|
"semver": "bin/semver.js"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@actions/tool-cache/node_modules/uuid": {
|
|
||||||
"version": "3.4.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
|
|
||||||
"integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==",
|
|
||||||
"deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.",
|
|
||||||
"bin": {
|
|
||||||
"uuid": "bin/uuid"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/@ampproject/remapping": {
|
"node_modules/@ampproject/remapping": {
|
||||||
"version": "2.2.1",
|
"version": "2.2.1",
|
||||||
"resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz",
|
"resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz",
|
||||||
|
|||||||
@@ -32,7 +32,7 @@
|
|||||||
"@actions/glob": "^0.5.0",
|
"@actions/glob": "^0.5.0",
|
||||||
"@actions/http-client": "^2.2.1",
|
"@actions/http-client": "^2.2.1",
|
||||||
"@actions/io": "^1.0.2",
|
"@actions/io": "^1.0.2",
|
||||||
"@actions/tool-cache": "^2.0.1",
|
"@actions/tool-cache": "^2.0.2",
|
||||||
"semver": "^7.6.3",
|
"semver": "^7.6.3",
|
||||||
"uuid": "^9.0.1"
|
"uuid": "^9.0.1"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ export default abstract class BaseDistribution {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
protected abstract getDistributionUrl(mirror: string): string;
|
protected abstract getDistributionUrl(): string;
|
||||||
|
|
||||||
public async setupNodeJs() {
|
public async setupNodeJs() {
|
||||||
let nodeJsVersions: INodeVersion[] | undefined;
|
let nodeJsVersions: INodeVersion[] | undefined;
|
||||||
@@ -97,19 +97,10 @@ export default abstract class BaseDistribution {
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected async getNodeJsVersions(): Promise<INodeVersion[]> {
|
protected async getNodeJsVersions(): Promise<INodeVersion[]> {
|
||||||
const initialUrl = this.getDistributionUrl(this.nodeInfo.mirror);
|
const initialUrl = this.getDistributionUrl();
|
||||||
const dataUrl = `${initialUrl}/index.json`;
|
const dataUrl = `${initialUrl}/index.json`;
|
||||||
|
|
||||||
const headers = {};
|
const response = await this.httpClient.getJson<INodeVersion[]>(dataUrl);
|
||||||
|
|
||||||
if (this.nodeInfo.mirrorToken) {
|
|
||||||
headers['Authorization'] = `Bearer ${this.nodeInfo.mirrorToken}`;
|
|
||||||
}
|
|
||||||
|
|
||||||
const response = await this.httpClient.getJson<INodeVersion[]>(
|
|
||||||
dataUrl,
|
|
||||||
headers
|
|
||||||
);
|
|
||||||
return response.result || [];
|
return response.result || [];
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -126,7 +117,7 @@ export default abstract class BaseDistribution {
|
|||||||
? `${fileName}.zip`
|
? `${fileName}.zip`
|
||||||
: `${fileName}.7z`
|
: `${fileName}.7z`
|
||||||
: `${fileName}.tar.gz`;
|
: `${fileName}.tar.gz`;
|
||||||
const initialUrl = this.getDistributionUrl(this.nodeInfo.mirror);
|
const initialUrl = this.getDistributionUrl();
|
||||||
const url = `${initialUrl}/v${version}/${urlFileName}`;
|
const url = `${initialUrl}/v${version}/${urlFileName}`;
|
||||||
|
|
||||||
return <INodeVersionInfo>{
|
return <INodeVersionInfo>{
|
||||||
@@ -143,11 +134,7 @@ export default abstract class BaseDistribution {
|
|||||||
`Acquiring ${info.resolvedVersion} - ${info.arch} from ${info.downloadUrl}`
|
`Acquiring ${info.resolvedVersion} - ${info.arch} from ${info.downloadUrl}`
|
||||||
);
|
);
|
||||||
try {
|
try {
|
||||||
downloadPath = await tc.downloadTool(
|
downloadPath = await tc.downloadTool(info.downloadUrl);
|
||||||
info.downloadUrl,
|
|
||||||
undefined,
|
|
||||||
this.nodeInfo.mirrorToken
|
|
||||||
);
|
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
if (
|
if (
|
||||||
err instanceof tc.HTTPError &&
|
err instanceof tc.HTTPError &&
|
||||||
@@ -181,7 +168,7 @@ export default abstract class BaseDistribution {
|
|||||||
version: string,
|
version: string,
|
||||||
arch: string = os.arch()
|
arch: string = os.arch()
|
||||||
): Promise<string> {
|
): Promise<string> {
|
||||||
const initialUrl = this.getDistributionUrl(this.nodeInfo.mirror);
|
const initialUrl = this.getDistributionUrl();
|
||||||
const osArch: string = this.translateArchToDistUrl(arch);
|
const osArch: string = this.translateArchToDistUrl(arch);
|
||||||
|
|
||||||
// Create temporary folder to download to
|
// Create temporary folder to download to
|
||||||
@@ -198,34 +185,18 @@ export default abstract class BaseDistribution {
|
|||||||
|
|
||||||
core.info(`Downloading only node binary from ${exeUrl}`);
|
core.info(`Downloading only node binary from ${exeUrl}`);
|
||||||
|
|
||||||
const exePath = await tc.downloadTool(
|
const exePath = await tc.downloadTool(exeUrl);
|
||||||
exeUrl,
|
|
||||||
undefined,
|
|
||||||
this.nodeInfo.mirrorToken
|
|
||||||
);
|
|
||||||
await io.cp(exePath, path.join(tempDir, 'node.exe'));
|
await io.cp(exePath, path.join(tempDir, 'node.exe'));
|
||||||
const libPath = await tc.downloadTool(
|
const libPath = await tc.downloadTool(libUrl);
|
||||||
libUrl,
|
|
||||||
undefined,
|
|
||||||
this.nodeInfo.mirrorToken
|
|
||||||
);
|
|
||||||
await io.cp(libPath, path.join(tempDir, 'node.lib'));
|
await io.cp(libPath, path.join(tempDir, 'node.lib'));
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
if (err instanceof tc.HTTPError && err.httpStatusCode == 404) {
|
if (err instanceof tc.HTTPError && err.httpStatusCode == 404) {
|
||||||
exeUrl = `${initialUrl}/v${version}/node.exe`;
|
exeUrl = `${initialUrl}/v${version}/node.exe`;
|
||||||
libUrl = `${initialUrl}/v${version}/node.lib`;
|
libUrl = `${initialUrl}/v${version}/node.lib`;
|
||||||
|
|
||||||
const exePath = await tc.downloadTool(
|
const exePath = await tc.downloadTool(exeUrl);
|
||||||
exeUrl,
|
|
||||||
undefined,
|
|
||||||
this.nodeInfo.mirrorToken
|
|
||||||
);
|
|
||||||
await io.cp(exePath, path.join(tempDir, 'node.exe'));
|
await io.cp(exePath, path.join(tempDir, 'node.exe'));
|
||||||
const libPath = await tc.downloadTool(
|
const libPath = await tc.downloadTool(libUrl);
|
||||||
libUrl,
|
|
||||||
undefined,
|
|
||||||
this.nodeInfo.mirrorToken
|
|
||||||
);
|
|
||||||
await io.cp(libPath, path.join(tempDir, 'node.lib'));
|
await io.cp(libPath, path.join(tempDir, 'node.lib'));
|
||||||
} else {
|
} else {
|
||||||
throw err;
|
throw err;
|
||||||
|
|||||||
@@ -4,8 +4,6 @@ export interface NodeInputs {
|
|||||||
auth?: string;
|
auth?: string;
|
||||||
checkLatest: boolean;
|
checkLatest: boolean;
|
||||||
stable: boolean;
|
stable: boolean;
|
||||||
mirror: string;
|
|
||||||
mirrorToken: string;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface INodeVersionInfo {
|
export interface INodeVersionInfo {
|
||||||
|
|||||||
@@ -7,8 +7,7 @@ export default class NightlyNodejs extends BasePrereleaseNodejs {
|
|||||||
super(nodeInfo);
|
super(nodeInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected getDistributionUrl(mirror: string): string {
|
protected getDistributionUrl(): string {
|
||||||
const url = mirror || 'https://nodejs.org';
|
return 'https://nodejs.org/download/nightly';
|
||||||
return `${url}/download/nightly`;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -84,7 +84,7 @@ export default class OfficialBuilds extends BaseDistribution {
|
|||||||
downloadPath = await tc.downloadTool(
|
downloadPath = await tc.downloadTool(
|
||||||
versionInfo.downloadUrl,
|
versionInfo.downloadUrl,
|
||||||
undefined,
|
undefined,
|
||||||
this.nodeInfo.mirror ? this.nodeInfo.mirrorToken : this.nodeInfo.auth
|
this.nodeInfo.auth
|
||||||
);
|
);
|
||||||
|
|
||||||
if (downloadPath) {
|
if (downloadPath) {
|
||||||
@@ -176,9 +176,8 @@ export default class OfficialBuilds extends BaseDistribution {
|
|||||||
return version;
|
return version;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected getDistributionUrl(mirror: string): string {
|
protected getDistributionUrl(): string {
|
||||||
const url = mirror || 'https://nodejs.org';
|
return `https://nodejs.org/dist`;
|
||||||
return `${url}/dist`;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private getManifest(): Promise<tc.IToolRelease[]> {
|
private getManifest(): Promise<tc.IToolRelease[]> {
|
||||||
@@ -186,7 +185,7 @@ export default class OfficialBuilds extends BaseDistribution {
|
|||||||
return tc.getManifestFromRepo(
|
return tc.getManifestFromRepo(
|
||||||
'actions',
|
'actions',
|
||||||
'node-versions',
|
'node-versions',
|
||||||
this.nodeInfo.mirror ? this.nodeInfo.mirrorToken : this.nodeInfo.auth,
|
this.nodeInfo.auth,
|
||||||
'main'
|
'main'
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,8 +6,7 @@ export default class RcBuild extends BaseDistribution {
|
|||||||
super(nodeInfo);
|
super(nodeInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
getDistributionUrl(mirror: string): string {
|
getDistributionUrl(): string {
|
||||||
const url = mirror || 'https://nodejs.org';
|
return 'https://nodejs.org/download/rc';
|
||||||
return `${url}/download/rc`;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,8 +7,7 @@ export default class CanaryBuild extends BasePrereleaseNodejs {
|
|||||||
super(nodeInfo);
|
super(nodeInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected getDistributionUrl(mirror: string): string {
|
protected getDistributionUrl(): string {
|
||||||
const url = mirror || 'https://nodejs.org';
|
return 'https://nodejs.org/download/v8-canary';
|
||||||
return `${url}/download/v8-canary`;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -36,8 +36,6 @@ export async function run() {
|
|||||||
if (version) {
|
if (version) {
|
||||||
const token = core.getInput('token');
|
const token = core.getInput('token');
|
||||||
const auth = !token ? undefined : `token ${token}`;
|
const auth = !token ? undefined : `token ${token}`;
|
||||||
const mirror = core.getInput('mirror');
|
|
||||||
const mirrorToken = core.getInput('mirror-token');
|
|
||||||
const stable =
|
const stable =
|
||||||
(core.getInput('stable') || 'true').toUpperCase() === 'TRUE';
|
(core.getInput('stable') || 'true').toUpperCase() === 'TRUE';
|
||||||
const checkLatest =
|
const checkLatest =
|
||||||
@@ -47,9 +45,7 @@ export async function run() {
|
|||||||
checkLatest,
|
checkLatest,
|
||||||
auth,
|
auth,
|
||||||
stable,
|
stable,
|
||||||
arch,
|
arch
|
||||||
mirror,
|
|
||||||
mirrorToken
|
|
||||||
};
|
};
|
||||||
const nodeDistribution = getNodejsDistribution(nodejsInfo);
|
const nodeDistribution = getNodejsDistribution(nodejsInfo);
|
||||||
await nodeDistribution.setupNodeJs();
|
await nodeDistribution.setupNodeJs();
|
||||||
|
|||||||
Reference in New Issue
Block a user