mirror of
				https://gitea.com/actions/setup-node.git
				synced 2025-11-02 07:48:42 +00:00 
			
		
		
		
	Compare commits
	
		
			8 Commits
		
	
	
		
			ethomson/u
			...
			releases/v
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					b6651e20e5 | ||
| 
						 | 
					8de2f9fcbc | ||
| 
						 | 
					5273d0df9c | ||
| 
						 | 
					fc9ff49b90 | ||
| 
						 | 
					552489ce4b | ||
| 
						 | 
					401832ee64 | ||
| 
						 | 
					b0d4a002ac | ||
| 
						 | 
					ea546c14bf | 
							
								
								
									
										90
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										90
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							@@ -1,92 +1,2 @@
 | 
				
			|||||||
# Explicitly not ignoring node_modules so that they are included in package downloaded by runner
 | 
					 | 
				
			||||||
!node_modules/
 | 
					!node_modules/
 | 
				
			||||||
__tests__/runner/*
 | 
					__tests__/runner/*
 | 
				
			||||||
 | 
					 | 
				
			||||||
# Rest of the file pulled from https://github.com/github/gitignore/blob/master/Node.gitignore
 | 
					 | 
				
			||||||
# Logs
 | 
					 | 
				
			||||||
logs
 | 
					 | 
				
			||||||
*.log
 | 
					 | 
				
			||||||
npm-debug.log*
 | 
					 | 
				
			||||||
yarn-debug.log*
 | 
					 | 
				
			||||||
yarn-error.log*
 | 
					 | 
				
			||||||
lerna-debug.log*
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Diagnostic reports (https://nodejs.org/api/report.html)
 | 
					 | 
				
			||||||
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Runtime data
 | 
					 | 
				
			||||||
pids
 | 
					 | 
				
			||||||
*.pid
 | 
					 | 
				
			||||||
*.seed
 | 
					 | 
				
			||||||
*.pid.lock
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Directory for instrumented libs generated by jscoverage/JSCover
 | 
					 | 
				
			||||||
lib-cov
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Coverage directory used by tools like istanbul
 | 
					 | 
				
			||||||
coverage
 | 
					 | 
				
			||||||
*.lcov
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# nyc test coverage
 | 
					 | 
				
			||||||
.nyc_output
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
 | 
					 | 
				
			||||||
.grunt
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Bower dependency directory (https://bower.io/)
 | 
					 | 
				
			||||||
bower_components
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# node-waf configuration
 | 
					 | 
				
			||||||
.lock-wscript
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Compiled binary addons (https://nodejs.org/api/addons.html)
 | 
					 | 
				
			||||||
build/Release
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Dependency directories
 | 
					 | 
				
			||||||
jspm_packages/
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# TypeScript v1 declaration files
 | 
					 | 
				
			||||||
typings/
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# TypeScript cache
 | 
					 | 
				
			||||||
*.tsbuildinfo
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Optional npm cache directory
 | 
					 | 
				
			||||||
.npm
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Optional eslint cache
 | 
					 | 
				
			||||||
.eslintcache
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Optional REPL history
 | 
					 | 
				
			||||||
.node_repl_history
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Output of 'npm pack'
 | 
					 | 
				
			||||||
*.tgz
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Yarn Integrity file
 | 
					 | 
				
			||||||
.yarn-integrity
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# dotenv environment variables file
 | 
					 | 
				
			||||||
.env
 | 
					 | 
				
			||||||
.env.test
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# parcel-bundler cache (https://parceljs.org/)
 | 
					 | 
				
			||||||
.cache
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# next.js build output
 | 
					 | 
				
			||||||
.next
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# nuxt.js build output
 | 
					 | 
				
			||||||
.nuxt
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# vuepress build output
 | 
					 | 
				
			||||||
.vuepress/dist
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# Serverless directories
 | 
					 | 
				
			||||||
.serverless/
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# FuseBox cache
 | 
					 | 
				
			||||||
.fusebox/
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# DynamoDB Local files
 | 
					 | 
				
			||||||
.dynamodb/
 | 
					 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										27
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										27
									
								
								README.md
									
									
									
									
									
								
							@@ -16,7 +16,7 @@ See [action.yml](action.yml)
 | 
				
			|||||||
Basic:
 | 
					Basic:
 | 
				
			||||||
```yaml
 | 
					```yaml
 | 
				
			||||||
steps:
 | 
					steps:
 | 
				
			||||||
- uses: actions/checkout@v1
 | 
					- uses: actions/checkout@master
 | 
				
			||||||
- uses: actions/setup-node@v1
 | 
					- uses: actions/setup-node@v1
 | 
				
			||||||
  with:
 | 
					  with:
 | 
				
			||||||
    node-version: '10.x'
 | 
					    node-version: '10.x'
 | 
				
			||||||
@@ -34,7 +34,7 @@ jobs:
 | 
				
			|||||||
        node: [ '10', '8' ]
 | 
					        node: [ '10', '8' ]
 | 
				
			||||||
    name: Node ${{ matrix.node }} sample
 | 
					    name: Node ${{ matrix.node }} sample
 | 
				
			||||||
    steps:
 | 
					    steps:
 | 
				
			||||||
      - uses: actions/checkout@v1
 | 
					      - uses: actions/checkout@master
 | 
				
			||||||
      - name: Setup node
 | 
					      - name: Setup node
 | 
				
			||||||
        uses: actions/setup-node@v1
 | 
					        uses: actions/setup-node@v1
 | 
				
			||||||
        with:
 | 
					        with:
 | 
				
			||||||
@@ -46,7 +46,7 @@ jobs:
 | 
				
			|||||||
Publish to npmjs and GPR with npm:
 | 
					Publish to npmjs and GPR with npm:
 | 
				
			||||||
```yaml
 | 
					```yaml
 | 
				
			||||||
steps:
 | 
					steps:
 | 
				
			||||||
- uses: actions/checkout@v1
 | 
					- uses: actions/checkout@master
 | 
				
			||||||
- uses: actions/setup-node@v1
 | 
					- uses: actions/setup-node@v1
 | 
				
			||||||
  with:
 | 
					  with:
 | 
				
			||||||
    node-version: '10.x'
 | 
					    node-version: '10.x'
 | 
				
			||||||
@@ -66,11 +66,12 @@ steps:
 | 
				
			|||||||
Publish to npmjs and GPR with yarn:
 | 
					Publish to npmjs and GPR with yarn:
 | 
				
			||||||
```yaml
 | 
					```yaml
 | 
				
			||||||
steps:
 | 
					steps:
 | 
				
			||||||
- uses: actions/checkout@v1
 | 
					- uses: actions/checkout@master
 | 
				
			||||||
- uses: actions/setup-node@v1
 | 
					- uses: actions/setup-node@v1
 | 
				
			||||||
  with:
 | 
					  with:
 | 
				
			||||||
    node-version: '10.x'
 | 
					    node-version: '10.x'
 | 
				
			||||||
    registry-url: <registry url>
 | 
					    registry-url: <registry url>
 | 
				
			||||||
 | 
					- run: npm install -g yarn
 | 
				
			||||||
- run: yarn install
 | 
					- run: yarn install
 | 
				
			||||||
- run: yarn publish
 | 
					- run: yarn publish
 | 
				
			||||||
  env:
 | 
					  env:
 | 
				
			||||||
@@ -83,24 +84,6 @@ steps:
 | 
				
			|||||||
    NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
 | 
					    NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
 | 
				
			||||||
```
 | 
					```
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Use private packages:
 | 
					 | 
				
			||||||
```yaml
 | 
					 | 
				
			||||||
steps:
 | 
					 | 
				
			||||||
- uses: actions/checkout@v1
 | 
					 | 
				
			||||||
- 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
 | 
					 | 
				
			||||||
```
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# 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)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -2,30 +2,20 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
exports[`installer tests Appends trailing slash to registry 1`] = `
 | 
					exports[`installer tests Appends trailing slash to registry 1`] = `
 | 
				
			||||||
"//registry.npmjs.org/:_authToken=\${NODE_AUTH_TOKEN}
 | 
					"//registry.npmjs.org/:_authToken=\${NODE_AUTH_TOKEN}
 | 
				
			||||||
registry=https://registry.npmjs.org/
 | 
					registry=https://registry.npmjs.org/"
 | 
				
			||||||
always-auth=false"
 | 
					 | 
				
			||||||
`;
 | 
					`;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
exports[`installer tests Automatically configures GPR scope 1`] = `
 | 
					exports[`installer tests Automatically configures GPR scope 1`] = `
 | 
				
			||||||
"npm.pkg.github.com/:_authToken=\${NODE_AUTH_TOKEN}
 | 
					"npm.pkg.github.com/:_authToken=\${NODE_AUTH_TOKEN}
 | 
				
			||||||
@ownername:registry=npm.pkg.github.com/
 | 
					@ownername:registry=npm.pkg.github.com/"
 | 
				
			||||||
always-auth=false"
 | 
					 | 
				
			||||||
`;
 | 
					`;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
exports[`installer tests Configures scoped npm registries 1`] = `
 | 
					exports[`installer tests Configures scoped npm registries 1`] = `
 | 
				
			||||||
"//registry.npmjs.org/:_authToken=\${NODE_AUTH_TOKEN}
 | 
					"//registry.npmjs.org/:_authToken=\${NODE_AUTH_TOKEN}
 | 
				
			||||||
@myscope:registry=https://registry.npmjs.org/
 | 
					@myscope:registry=https://registry.npmjs.org/"
 | 
				
			||||||
always-auth=false"
 | 
					 | 
				
			||||||
`;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
exports[`installer tests Sets up npmrc for always-auth true 1`] = `
 | 
					 | 
				
			||||||
"//registry.npmjs.org/:_authToken=\${NODE_AUTH_TOKEN}
 | 
					 | 
				
			||||||
registry=https://registry.npmjs.org/
 | 
					 | 
				
			||||||
always-auth=true"
 | 
					 | 
				
			||||||
`;
 | 
					`;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
exports[`installer tests Sets up npmrc for npmjs 1`] = `
 | 
					exports[`installer tests Sets up npmrc for npmjs 1`] = `
 | 
				
			||||||
"//registry.npmjs.org/:_authToken=\${NODE_AUTH_TOKEN}
 | 
					"//registry.npmjs.org/:_authToken=\${NODE_AUTH_TOKEN}
 | 
				
			||||||
registry=https://registry.npmjs.org/
 | 
					registry=https://registry.npmjs.org/"
 | 
				
			||||||
always-auth=false"
 | 
					 | 
				
			||||||
`;
 | 
					`;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -33,13 +33,13 @@ describe('installer tests', () => {
 | 
				
			|||||||
  });
 | 
					  });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  it('Sets up npmrc for npmjs', async () => {
 | 
					  it('Sets up npmrc for npmjs', async () => {
 | 
				
			||||||
    await auth.configAuthentication('https://registry.npmjs.org/', 'false');
 | 
					    await auth.configAuthentication('https://registry.npmjs.org/');
 | 
				
			||||||
    expect(fs.existsSync(rcFile)).toBe(true);
 | 
					    expect(fs.existsSync(rcFile)).toBe(true);
 | 
				
			||||||
    expect(fs.readFileSync(rcFile, {encoding: 'utf8'})).toMatchSnapshot();
 | 
					    expect(fs.readFileSync(rcFile, {encoding: 'utf8'})).toMatchSnapshot();
 | 
				
			||||||
  });
 | 
					  });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  it('Appends trailing slash to registry', async () => {
 | 
					  it('Appends trailing slash to registry', async () => {
 | 
				
			||||||
    await auth.configAuthentication('https://registry.npmjs.org', 'false');
 | 
					    await auth.configAuthentication('https://registry.npmjs.org');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    expect(fs.existsSync(rcFile)).toBe(true);
 | 
					    expect(fs.existsSync(rcFile)).toBe(true);
 | 
				
			||||||
    expect(fs.readFileSync(rcFile, {encoding: 'utf8'})).toMatchSnapshot();
 | 
					    expect(fs.readFileSync(rcFile, {encoding: 'utf8'})).toMatchSnapshot();
 | 
				
			||||||
@@ -47,22 +47,16 @@ describe('installer tests', () => {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  it('Configures scoped npm registries', async () => {
 | 
					  it('Configures scoped npm registries', async () => {
 | 
				
			||||||
    process.env['INPUT_SCOPE'] = 'myScope';
 | 
					    process.env['INPUT_SCOPE'] = 'myScope';
 | 
				
			||||||
    await auth.configAuthentication('https://registry.npmjs.org', 'false');
 | 
					    await auth.configAuthentication('https://registry.npmjs.org');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    expect(fs.existsSync(rcFile)).toBe(true);
 | 
					    expect(fs.existsSync(rcFile)).toBe(true);
 | 
				
			||||||
    expect(fs.readFileSync(rcFile, {encoding: 'utf8'})).toMatchSnapshot();
 | 
					    expect(fs.readFileSync(rcFile, {encoding: 'utf8'})).toMatchSnapshot();
 | 
				
			||||||
  });
 | 
					  });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  it('Automatically configures GPR scope', async () => {
 | 
					  it('Automatically configures GPR scope', async () => {
 | 
				
			||||||
    await auth.configAuthentication('npm.pkg.github.com', 'false');
 | 
					    await auth.configAuthentication('npm.pkg.github.com');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    expect(fs.existsSync(rcFile)).toBe(true);
 | 
					    expect(fs.existsSync(rcFile)).toBe(true);
 | 
				
			||||||
    expect(fs.readFileSync(rcFile, {encoding: 'utf8'})).toMatchSnapshot();
 | 
					    expect(fs.readFileSync(rcFile, {encoding: 'utf8'})).toMatchSnapshot();
 | 
				
			||||||
  });
 | 
					  });
 | 
				
			||||||
 | 
					 | 
				
			||||||
  it('Sets up npmrc for always-auth true', async () => {
 | 
					 | 
				
			||||||
    await auth.configAuthentication('https://registry.npmjs.org/', 'true');
 | 
					 | 
				
			||||||
    expect(fs.existsSync(rcFile)).toBe(true);
 | 
					 | 
				
			||||||
    expect(fs.readFileSync(rcFile, {encoding: 'utf8'})).toMatchSnapshot();
 | 
					 | 
				
			||||||
  });
 | 
					 | 
				
			||||||
});
 | 
					});
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,10 +1,7 @@
 | 
				
			|||||||
name: 'Setup Node.js'
 | 
					name: 'Setup Node.js environment'
 | 
				
			||||||
description: 'Set up a specific version of Node.js and add the command-line tools to the PATH'
 | 
					description: 'Setup a Node.js environment and add it to the PATH, additionally providing proxy support'
 | 
				
			||||||
author: 'GitHub'
 | 
					author: 'GitHub'
 | 
				
			||||||
inputs:
 | 
					inputs:
 | 
				
			||||||
  always-auth:
 | 
					 | 
				
			||||||
    description: 'Set always-auth in npmrc'
 | 
					 | 
				
			||||||
    default: 'false'
 | 
					 | 
				
			||||||
  node-version:
 | 
					  node-version:
 | 
				
			||||||
    description: 'Version Spec of the version to use.  Examples: 10.x, 10.15.1, >=10.15.0'
 | 
					    description: 'Version Spec of the version to use.  Examples: 10.x, 10.15.1, >=10.15.0'
 | 
				
			||||||
    default: '10.x'
 | 
					    default: '10.x'
 | 
				
			||||||
@@ -15,7 +12,6 @@ inputs:
 | 
				
			|||||||
# Deprecated option, do not use. Will not be supported after October 1, 2019
 | 
					# Deprecated option, do not use. Will not be supported after October 1, 2019
 | 
				
			||||||
  version:
 | 
					  version:
 | 
				
			||||||
    description: 'Deprecated. Use node-version instead. Will not be supported after October 1, 2019'
 | 
					    description: 'Deprecated. Use node-version instead. Will not be supported after October 1, 2019'
 | 
				
			||||||
    deprecationMessage: 'The version property will not be supported after October 1, 2019. Use node-version instead'
 | 
					 | 
				
			||||||
runs:
 | 
					runs:
 | 
				
			||||||
  using: 'node12'
 | 
					  using: 'node12'
 | 
				
			||||||
  main: 'lib/setup-node.js'
 | 
					  main: 'lib/setup-node.js'
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -12,15 +12,15 @@ const os = __importStar(require("os"));
 | 
				
			|||||||
const path = __importStar(require("path"));
 | 
					const path = __importStar(require("path"));
 | 
				
			||||||
const core = __importStar(require("@actions/core"));
 | 
					const core = __importStar(require("@actions/core"));
 | 
				
			||||||
const github = __importStar(require("@actions/github"));
 | 
					const github = __importStar(require("@actions/github"));
 | 
				
			||||||
function configAuthentication(registryUrl, alwaysAuth) {
 | 
					function configAuthentication(registryUrl) {
 | 
				
			||||||
    const npmrc = path.resolve(process.env['RUNNER_TEMP'] || process.cwd(), '.npmrc');
 | 
					    const npmrc = path.resolve(process.env['RUNNER_TEMP'] || process.cwd(), '.npmrc');
 | 
				
			||||||
    if (!registryUrl.endsWith('/')) {
 | 
					    if (!registryUrl.endsWith('/')) {
 | 
				
			||||||
        registryUrl += '/';
 | 
					        registryUrl += '/';
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    writeRegistryToFile(registryUrl, npmrc, alwaysAuth);
 | 
					    writeRegistryToFile(registryUrl, npmrc);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
exports.configAuthentication = configAuthentication;
 | 
					exports.configAuthentication = configAuthentication;
 | 
				
			||||||
function writeRegistryToFile(registryUrl, fileLocation, alwaysAuth) {
 | 
					function writeRegistryToFile(registryUrl, fileLocation) {
 | 
				
			||||||
    let scope = core.getInput('scope');
 | 
					    let scope = core.getInput('scope');
 | 
				
			||||||
    if (!scope && registryUrl.indexOf('npm.pkg.github.com') > -1) {
 | 
					    if (!scope && registryUrl.indexOf('npm.pkg.github.com') > -1) {
 | 
				
			||||||
        scope = github.context.repo.owner;
 | 
					        scope = github.context.repo.owner;
 | 
				
			||||||
@@ -47,8 +47,7 @@ function writeRegistryToFile(registryUrl, fileLocation, alwaysAuth) {
 | 
				
			|||||||
    const registryString = scope
 | 
					    const registryString = scope
 | 
				
			||||||
        ? `${scope}:registry=${registryUrl}`
 | 
					        ? `${scope}:registry=${registryUrl}`
 | 
				
			||||||
        : `registry=${registryUrl}`;
 | 
					        : `registry=${registryUrl}`;
 | 
				
			||||||
    const alwaysAuthString = `always-auth=${alwaysAuth}`;
 | 
					    newContents += `${authString}${os.EOL}${registryString}`;
 | 
				
			||||||
    newContents += `${authString}${os.EOL}${registryString}${os.EOL}${alwaysAuthString}`;
 | 
					 | 
				
			||||||
    fs.writeFileSync(fileLocation, newContents);
 | 
					    fs.writeFileSync(fileLocation, newContents);
 | 
				
			||||||
    core.exportVariable('NPM_CONFIG_USERCONFIG', fileLocation);
 | 
					    core.exportVariable('NPM_CONFIG_USERCONFIG', fileLocation);
 | 
				
			||||||
    // Export empty node_auth_token so npm doesn't complain about not being able to find it
 | 
					    // Export empty node_auth_token so npm doesn't complain about not being able to find it
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -25,7 +25,7 @@ const os = __importStar(require("os"));
 | 
				
			|||||||
const path = __importStar(require("path"));
 | 
					const path = __importStar(require("path"));
 | 
				
			||||||
const semver = __importStar(require("semver"));
 | 
					const semver = __importStar(require("semver"));
 | 
				
			||||||
let osPlat = os.platform();
 | 
					let osPlat = os.platform();
 | 
				
			||||||
let osArch = os.arch();
 | 
					let osArch = translateArchToDistUrl(os.arch());
 | 
				
			||||||
if (!tempDirectory) {
 | 
					if (!tempDirectory) {
 | 
				
			||||||
    let baseLocation;
 | 
					    let baseLocation;
 | 
				
			||||||
    if (process.platform === 'win32') {
 | 
					    if (process.platform === 'win32') {
 | 
				
			||||||
@@ -90,13 +90,13 @@ function queryLatestMatch(versionSpec) {
 | 
				
			|||||||
        let dataFileName;
 | 
					        let dataFileName;
 | 
				
			||||||
        switch (osPlat) {
 | 
					        switch (osPlat) {
 | 
				
			||||||
            case 'linux':
 | 
					            case 'linux':
 | 
				
			||||||
                dataFileName = 'linux-' + osArch;
 | 
					                dataFileName = `linux-${osArch}`;
 | 
				
			||||||
                break;
 | 
					                break;
 | 
				
			||||||
            case 'darwin':
 | 
					            case 'darwin':
 | 
				
			||||||
                dataFileName = 'osx-' + osArch + '-tar';
 | 
					                dataFileName = `osx-${osArch}-tar`;
 | 
				
			||||||
                break;
 | 
					                break;
 | 
				
			||||||
            case 'win32':
 | 
					            case 'win32':
 | 
				
			||||||
                dataFileName = 'win-' + osArch + '-exe';
 | 
					                dataFileName = `win-${osArch}-exe`;
 | 
				
			||||||
                break;
 | 
					                break;
 | 
				
			||||||
            default:
 | 
					            default:
 | 
				
			||||||
                throw new Error(`Unexpected OS '${osPlat}'`);
 | 
					                throw new Error(`Unexpected OS '${osPlat}'`);
 | 
				
			||||||
@@ -149,10 +149,10 @@ function acquireNode(version) {
 | 
				
			|||||||
        //
 | 
					        //
 | 
				
			||||||
        version = semver.clean(version) || '';
 | 
					        version = semver.clean(version) || '';
 | 
				
			||||||
        let fileName = osPlat == 'win32'
 | 
					        let fileName = osPlat == 'win32'
 | 
				
			||||||
            ? 'node-v' + version + '-win-' + os.arch()
 | 
					            ? `node-v${version}-win-${osArch}`
 | 
				
			||||||
            : 'node-v' + version + '-' + osPlat + '-' + os.arch();
 | 
					            : `node-v${version}-${osPlat}-${osArch}`;
 | 
				
			||||||
        let urlFileName = osPlat == 'win32' ? fileName + '.7z' : fileName + '.tar.gz';
 | 
					        let urlFileName = osPlat == 'win32' ? `${fileName}.7z` : `${fileName}.tar.gz`;
 | 
				
			||||||
        let downloadUrl = 'https://nodejs.org/dist/v' + version + '/' + urlFileName;
 | 
					        let downloadUrl = `https://nodejs.org/dist/v${version}/${urlFileName}`;
 | 
				
			||||||
        let downloadPath;
 | 
					        let downloadPath;
 | 
				
			||||||
        try {
 | 
					        try {
 | 
				
			||||||
            downloadPath = yield tc.downloadTool(downloadUrl);
 | 
					            downloadPath = yield tc.downloadTool(downloadUrl);
 | 
				
			||||||
@@ -202,8 +202,8 @@ function acquireNodeFromFallbackLocation(version) {
 | 
				
			|||||||
        let exeUrl;
 | 
					        let exeUrl;
 | 
				
			||||||
        let libUrl;
 | 
					        let libUrl;
 | 
				
			||||||
        try {
 | 
					        try {
 | 
				
			||||||
            exeUrl = `https://nodejs.org/dist/v${version}/win-${os.arch()}/node.exe`;
 | 
					            exeUrl = `https://nodejs.org/dist/v${version}/win-${osArch}/node.exe`;
 | 
				
			||||||
            libUrl = `https://nodejs.org/dist/v${version}/win-${os.arch()}/node.lib`;
 | 
					            libUrl = `https://nodejs.org/dist/v${version}/win-${osArch}/node.lib`;
 | 
				
			||||||
            const exePath = yield tc.downloadTool(exeUrl);
 | 
					            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);
 | 
					            const libPath = yield tc.downloadTool(libUrl);
 | 
				
			||||||
@@ -225,3 +225,13 @@ function acquireNodeFromFallbackLocation(version) {
 | 
				
			|||||||
        return yield tc.cacheDir(tempDir, 'node', version);
 | 
					        return yield tc.cacheDir(tempDir, 'node', version);
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					// os.arch does not always match the relative download url, e.g.
 | 
				
			||||||
 | 
					// os.arch == 'arm' != node-v12.13.1-linux-armv7l.tar.gz
 | 
				
			||||||
 | 
					function translateArchToDistUrl(arch) {
 | 
				
			||||||
 | 
					    switch (arch) {
 | 
				
			||||||
 | 
					        case 'arm':
 | 
				
			||||||
 | 
					            return 'armv7l';
 | 
				
			||||||
 | 
					        default:
 | 
				
			||||||
 | 
					            return arch;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -35,9 +35,8 @@ function run() {
 | 
				
			|||||||
                yield installer.getNode(version);
 | 
					                yield installer.getNode(version);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            const registryUrl = core.getInput('registry-url');
 | 
					            const registryUrl = core.getInput('registry-url');
 | 
				
			||||||
            const alwaysAuth = core.getInput('always-auth');
 | 
					 | 
				
			||||||
            if (registryUrl) {
 | 
					            if (registryUrl) {
 | 
				
			||||||
                auth.configAuthentication(registryUrl, alwaysAuth);
 | 
					                auth.configAuthentication(registryUrl);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            // TODO: setup proxy from runner proxy config
 | 
					            // TODO: setup proxy from runner proxy config
 | 
				
			||||||
            const matchersPath = path.join(__dirname, '..', '.github');
 | 
					            const matchersPath = path.join(__dirname, '..', '.github');
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										6
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										6
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							@@ -3628,9 +3628,9 @@
 | 
				
			|||||||
      }
 | 
					      }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "lodash": {
 | 
					    "lodash": {
 | 
				
			||||||
      "version": "4.17.15",
 | 
					      "version": "4.17.11",
 | 
				
			||||||
      "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz",
 | 
					      "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz",
 | 
				
			||||||
      "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==",
 | 
					      "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg==",
 | 
				
			||||||
      "dev": true
 | 
					      "dev": true
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "lodash.get": {
 | 
					    "lodash.get": {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -4,7 +4,7 @@ import * as path from 'path';
 | 
				
			|||||||
import * as core from '@actions/core';
 | 
					import * as core from '@actions/core';
 | 
				
			||||||
import * as github from '@actions/github';
 | 
					import * as github from '@actions/github';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export function configAuthentication(registryUrl: string, alwaysAuth: string) {
 | 
					export function configAuthentication(registryUrl: string) {
 | 
				
			||||||
  const npmrc: string = path.resolve(
 | 
					  const npmrc: string = path.resolve(
 | 
				
			||||||
    process.env['RUNNER_TEMP'] || process.cwd(),
 | 
					    process.env['RUNNER_TEMP'] || process.cwd(),
 | 
				
			||||||
    '.npmrc'
 | 
					    '.npmrc'
 | 
				
			||||||
@@ -13,14 +13,10 @@ export function configAuthentication(registryUrl: string, alwaysAuth: string) {
 | 
				
			|||||||
    registryUrl += '/';
 | 
					    registryUrl += '/';
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  writeRegistryToFile(registryUrl, npmrc, alwaysAuth);
 | 
					  writeRegistryToFile(registryUrl, npmrc);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function writeRegistryToFile(
 | 
					function writeRegistryToFile(registryUrl: string, fileLocation: string) {
 | 
				
			||||||
  registryUrl: string,
 | 
					 | 
				
			||||||
  fileLocation: string,
 | 
					 | 
				
			||||||
  alwaysAuth: string
 | 
					 | 
				
			||||||
) {
 | 
					 | 
				
			||||||
  let scope: string = core.getInput('scope');
 | 
					  let scope: string = core.getInput('scope');
 | 
				
			||||||
  if (!scope && registryUrl.indexOf('npm.pkg.github.com') > -1) {
 | 
					  if (!scope && registryUrl.indexOf('npm.pkg.github.com') > -1) {
 | 
				
			||||||
    scope = github.context.repo.owner;
 | 
					    scope = github.context.repo.owner;
 | 
				
			||||||
@@ -49,8 +45,7 @@ function writeRegistryToFile(
 | 
				
			|||||||
  const registryString: string = scope
 | 
					  const registryString: string = scope
 | 
				
			||||||
    ? `${scope}:registry=${registryUrl}`
 | 
					    ? `${scope}:registry=${registryUrl}`
 | 
				
			||||||
    : `registry=${registryUrl}`;
 | 
					    : `registry=${registryUrl}`;
 | 
				
			||||||
  const alwaysAuthString: string = `always-auth=${alwaysAuth}`;
 | 
					  newContents += `${authString}${os.EOL}${registryString}`;
 | 
				
			||||||
  newContents += `${authString}${os.EOL}${registryString}${os.EOL}${alwaysAuthString}`;
 | 
					 | 
				
			||||||
  fs.writeFileSync(fileLocation, newContents);
 | 
					  fs.writeFileSync(fileLocation, newContents);
 | 
				
			||||||
  core.exportVariable('NPM_CONFIG_USERCONFIG', fileLocation);
 | 
					  core.exportVariable('NPM_CONFIG_USERCONFIG', fileLocation);
 | 
				
			||||||
  // Export empty node_auth_token so npm doesn't complain about not being able to find it
 | 
					  // Export empty node_auth_token so npm doesn't complain about not being able to find it
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -9,7 +9,7 @@ import * as path from 'path';
 | 
				
			|||||||
import * as semver from 'semver';
 | 
					import * as semver from 'semver';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
let osPlat: string = os.platform();
 | 
					let osPlat: string = os.platform();
 | 
				
			||||||
let osArch: string = os.arch();
 | 
					let osArch: string = translateArchToDistUrl(os.arch());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if (!tempDirectory) {
 | 
					if (!tempDirectory) {
 | 
				
			||||||
  let baseLocation;
 | 
					  let baseLocation;
 | 
				
			||||||
@@ -86,13 +86,13 @@ async function queryLatestMatch(versionSpec: string): Promise<string> {
 | 
				
			|||||||
  let dataFileName: string;
 | 
					  let dataFileName: string;
 | 
				
			||||||
  switch (osPlat) {
 | 
					  switch (osPlat) {
 | 
				
			||||||
    case 'linux':
 | 
					    case 'linux':
 | 
				
			||||||
      dataFileName = 'linux-' + osArch;
 | 
					      dataFileName = `linux-${osArch}`;
 | 
				
			||||||
      break;
 | 
					      break;
 | 
				
			||||||
    case 'darwin':
 | 
					    case 'darwin':
 | 
				
			||||||
      dataFileName = 'osx-' + osArch + '-tar';
 | 
					      dataFileName = `osx-${osArch}-tar`;
 | 
				
			||||||
      break;
 | 
					      break;
 | 
				
			||||||
    case 'win32':
 | 
					    case 'win32':
 | 
				
			||||||
      dataFileName = 'win-' + osArch + '-exe';
 | 
					      dataFileName = `win-${osArch}-exe`;
 | 
				
			||||||
      break;
 | 
					      break;
 | 
				
			||||||
    default:
 | 
					    default:
 | 
				
			||||||
      throw new Error(`Unexpected OS '${osPlat}'`);
 | 
					      throw new Error(`Unexpected OS '${osPlat}'`);
 | 
				
			||||||
@@ -150,12 +150,11 @@ async function acquireNode(version: string): Promise<string> {
 | 
				
			|||||||
  version = semver.clean(version) || '';
 | 
					  version = semver.clean(version) || '';
 | 
				
			||||||
  let fileName: string =
 | 
					  let fileName: string =
 | 
				
			||||||
    osPlat == 'win32'
 | 
					    osPlat == 'win32'
 | 
				
			||||||
      ? 'node-v' + version + '-win-' + os.arch()
 | 
					      ? `node-v${version}-win-${osArch}`
 | 
				
			||||||
      : 'node-v' + version + '-' + osPlat + '-' + os.arch();
 | 
					      : `node-v${version}-${osPlat}-${osArch}`;
 | 
				
			||||||
  let urlFileName: string =
 | 
					  let urlFileName: string =
 | 
				
			||||||
    osPlat == 'win32' ? fileName + '.7z' : fileName + '.tar.gz';
 | 
					    osPlat == 'win32' ? `${fileName}.7z` : `${fileName}.tar.gz`;
 | 
				
			||||||
 | 
					  let downloadUrl = `https://nodejs.org/dist/v${version}/${urlFileName}`;
 | 
				
			||||||
  let downloadUrl = 'https://nodejs.org/dist/v' + version + '/' + urlFileName;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
  let downloadPath: string;
 | 
					  let downloadPath: string;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -210,8 +209,8 @@ async function acquireNodeFromFallbackLocation(
 | 
				
			|||||||
  let exeUrl: string;
 | 
					  let exeUrl: string;
 | 
				
			||||||
  let libUrl: string;
 | 
					  let libUrl: string;
 | 
				
			||||||
  try {
 | 
					  try {
 | 
				
			||||||
    exeUrl = `https://nodejs.org/dist/v${version}/win-${os.arch()}/node.exe`;
 | 
					    exeUrl = `https://nodejs.org/dist/v${version}/win-${osArch}/node.exe`;
 | 
				
			||||||
    libUrl = `https://nodejs.org/dist/v${version}/win-${os.arch()}/node.lib`;
 | 
					    libUrl = `https://nodejs.org/dist/v${version}/win-${osArch}/node.lib`;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    const exePath = await tc.downloadTool(exeUrl);
 | 
					    const exePath = await tc.downloadTool(exeUrl);
 | 
				
			||||||
    await io.cp(exePath, path.join(tempDir, 'node.exe'));
 | 
					    await io.cp(exePath, path.join(tempDir, 'node.exe'));
 | 
				
			||||||
@@ -232,3 +231,17 @@ async function acquireNodeFromFallbackLocation(
 | 
				
			|||||||
  }
 | 
					  }
 | 
				
			||||||
  return await tc.cacheDir(tempDir, 'node', version);
 | 
					  return await tc.cacheDir(tempDir, 'node', version);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// os.arch does not always match the relative download url, e.g.
 | 
				
			||||||
 | 
					// os.arch == 'arm' != node-v12.13.1-linux-armv7l.tar.gz
 | 
				
			||||||
 | 
					// All other currently supported architectures match, e.g.:
 | 
				
			||||||
 | 
					//   os.arch = arm64 => https://nodejs.org/dist/v{VERSION}/node-v{VERSION}-{OS}-arm64.tar.gz
 | 
				
			||||||
 | 
					//   os.arch = x64 => https://nodejs.org/dist/v{VERSION}/node-v{VERSION}-{OS}-x64.tar.gz
 | 
				
			||||||
 | 
					function translateArchToDistUrl(arch: string): string {
 | 
				
			||||||
 | 
					  switch (arch) {
 | 
				
			||||||
 | 
					    case 'arm':
 | 
				
			||||||
 | 
					      return 'armv7l';
 | 
				
			||||||
 | 
					    default:
 | 
				
			||||||
 | 
					      return arch;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -19,9 +19,8 @@ async function run() {
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    const registryUrl: string = core.getInput('registry-url');
 | 
					    const registryUrl: string = core.getInput('registry-url');
 | 
				
			||||||
    const alwaysAuth: string = core.getInput('always-auth');
 | 
					 | 
				
			||||||
    if (registryUrl) {
 | 
					    if (registryUrl) {
 | 
				
			||||||
      auth.configAuthentication(registryUrl, alwaysAuth);
 | 
					      auth.configAuthentication(registryUrl);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // TODO: setup proxy from runner proxy config
 | 
					    // TODO: setup proxy from runner proxy config
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										
											BIN
										
									
								
								toolkit/actions-core-0.0.0.tgz
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								toolkit/actions-core-0.0.0.tgz
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								toolkit/actions-exec-0.0.0.tgz
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								toolkit/actions-exec-0.0.0.tgz
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								toolkit/actions-exit-0.0.0.tgz
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								toolkit/actions-exit-0.0.0.tgz
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								toolkit/actions-github-0.0.0.tgz
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								toolkit/actions-github-0.0.0.tgz
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								toolkit/actions-io-0.0.0.tgz
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								toolkit/actions-io-0.0.0.tgz
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										
											BIN
										
									
								
								toolkit/actions-tool-cache-0.0.0.tgz
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								toolkit/actions-tool-cache-0.0.0.tgz
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
		Reference in New Issue
	
	Block a user