From be33caae9f35e3340760eaf392b90943bbd366d6 Mon Sep 17 00:00:00 2001 From: Zachary Eisinger Date: Thu, 16 Jul 2020 14:31:59 -0700 Subject: [PATCH] Honor specified nuget file location --- __tests__/authutil.test.ts | 58 ++++++++++++++++++++++++++++---------- src/authutil.ts | 8 ++++-- 2 files changed, 48 insertions(+), 18 deletions(-) diff --git a/__tests__/authutil.test.ts b/__tests__/authutil.test.ts index 0ed596d..cf0b52a 100644 --- a/__tests__/authutil.test.ts +++ b/__tests__/authutil.test.ts @@ -75,7 +75,6 @@ const azureartifactsnugetorgNuGetConfig: string = ` { @@ -95,7 +94,9 @@ describe('authutil tests', () => { it('No existing config, sets up a full NuGet.config with URL and user/PAT for GPR', async () => { process.env['NUGET_AUTH_TOKEN'] = 'TEST_FAKE_AUTH_TOKEN'; await auth.configAuthentication( - 'https://nuget.pkg.github.com/OwnerName/index.json' + 'https://nuget.pkg.github.com/OwnerName/index.json', + '', + fakeSourcesDirForTesting ); expect(fs.existsSync(nugetConfigFile)).toBe(true); expect( @@ -107,7 +108,9 @@ describe('authutil tests', () => { let thrown = false; try { await auth.configAuthentication( - 'https://nuget.pkg.github.com/OwnerName/index.json' + 'https://nuget.pkg.github.com/OwnerName/index.json', + '', + fakeSourcesDirForTesting ); } catch { thrown = true; @@ -119,7 +122,9 @@ describe('authutil tests', () => { process.env['NUGET_AUTH_TOKEN'] = 'TEST_FAKE_AUTH_TOKEN'; process.env['INPUT_OWNER'] = 'otherorg'; await auth.configAuthentication( - 'https://nuget.pkg.github.com/otherorg/index.json' + 'https://nuget.pkg.github.com/otherorg/index.json', + '', + fakeSourcesDirForTesting ); expect(fs.existsSync(nugetConfigFile)).toBe(true); expect( @@ -137,7 +142,9 @@ describe('authutil tests', () => { let thrown = false; try { await auth.configAuthentication( - 'https://nuget.pkg.github.com/OwnerName/index.json' + 'https://nuget.pkg.github.com/OwnerName/index.json', + '', + fakeSourcesDirForTesting ); } catch { thrown = true; @@ -153,7 +160,9 @@ describe('authutil tests', () => { ); fs.writeFileSync(inputNuGetConfigPath, emptyNuGetConfig); await auth.configAuthentication( - 'https://nuget.pkg.github.com/OwnerName/index.json' + 'https://nuget.pkg.github.com/OwnerName/index.json', + '', + fakeSourcesDirForTesting ); expect(fs.existsSync(nugetConfigFile)).toBe(true); expect( @@ -169,7 +178,9 @@ describe('authutil tests', () => { ); fs.writeFileSync(inputNuGetConfigPath, nugetorgNuGetConfig); await auth.configAuthentication( - 'https://nuget.pkg.github.com/OwnerName/index.json' + 'https://nuget.pkg.github.com/OwnerName/index.json', + '', + fakeSourcesDirForTesting ); expect(fs.existsSync(nugetConfigFile)).toBe(true); expect( @@ -185,7 +196,9 @@ describe('authutil tests', () => { ); fs.writeFileSync(inputNuGetConfigPath, gprNuGetConfig); await auth.configAuthentication( - 'https://nuget.pkg.github.com/OwnerName/index.json' + 'https://nuget.pkg.github.com/OwnerName/index.json', + '', + fakeSourcesDirForTesting ); expect(fs.existsSync(nugetConfigFile)).toBe(true); expect( @@ -201,7 +214,9 @@ describe('authutil tests', () => { ); fs.writeFileSync(inputNuGetConfigPath, gprnugetorgNuGetConfig); await auth.configAuthentication( - 'https://nuget.pkg.github.com/OwnerName/index.json' + 'https://nuget.pkg.github.com/OwnerName/index.json', + '', + fakeSourcesDirForTesting ); expect(fs.existsSync(nugetConfigFile)).toBe(true); expect( @@ -216,7 +231,11 @@ describe('authutil tests', () => { 'nuget.config' ); fs.writeFileSync(inputNuGetConfigPath, twogprNuGetConfig); - await auth.configAuthentication('https://nuget.pkg.github.com'); + await auth.configAuthentication( + 'https://nuget.pkg.github.com', + '', + fakeSourcesDirForTesting + ); expect(fs.existsSync(nugetConfigFile)).toBe(true); expect( fs.readFileSync(nugetConfigFile, {encoding: 'utf8'}) @@ -233,7 +252,9 @@ describe('authutil tests', () => { let thrown = false; try { await auth.configAuthentication( - 'https://nuget.pkg.github.com/OwnerName/index.json' + 'https://nuget.pkg.github.com/OwnerName/index.json', + '', + fakeSourcesDirForTesting ); } catch { thrown = true; @@ -255,7 +276,8 @@ describe('authutil tests', () => { fs.writeFileSync(inputNuGetConfigPath, gprNuGetConfig); await auth.configAuthentication( 'https://nuget.pkg.github.com/OwnerName/index.json', - 'subfolder/nuget.config' + 'subfolder/nuget.config', + fakeSourcesDirForTesting ); expect(fs.existsSync(nugetConfigFile)).toBe(true); expect( @@ -271,7 +293,9 @@ describe('authutil tests', () => { ); fs.writeFileSync(inputNuGetConfigPath, azureartifactsNuGetConfig); await auth.configAuthentication( - 'https://pkgs.dev.azure.com/amullans/_packaging/GitHubBuilds/nuget/v3/index.json' + 'https://pkgs.dev.azure.com/amullans/_packaging/GitHubBuilds/nuget/v3/index.json', + '', + fakeSourcesDirForTesting ); expect(fs.existsSync(nugetConfigFile)).toBe(true); expect( @@ -287,7 +311,9 @@ describe('authutil tests', () => { ); fs.writeFileSync(inputNuGetConfigPath, azureartifactsnugetorgNuGetConfig); await auth.configAuthentication( - 'https://pkgs.dev.azure.com/amullans/_packaging/GitHubBuilds/nuget/v3/index.json' + 'https://pkgs.dev.azure.com/amullans/_packaging/GitHubBuilds/nuget/v3/index.json', + '', + fakeSourcesDirForTesting ); expect(fs.existsSync(nugetConfigFile)).toBe(true); expect( @@ -298,7 +324,9 @@ describe('authutil tests', () => { it('No existing config, sets up a full NuGet.config with URL and token for other source', async () => { process.env['NUGET_AUTH_TOKEN'] = 'TEST_FAKE_AUTH_TOKEN'; await auth.configAuthentication( - 'https://pkgs.dev.azure.com/amullans/_packaging/GitHubBuilds/nuget/v3/index.json' + 'https://pkgs.dev.azure.com/amullans/_packaging/GitHubBuilds/nuget/v3/index.json', + '', + fakeSourcesDirForTesting ); expect(fs.existsSync(nugetConfigFile)).toBe(true); expect( diff --git a/src/authutil.ts b/src/authutil.ts index 69f3750..c7a88db 100644 --- a/src/authutil.ts +++ b/src/authutil.ts @@ -4,18 +4,20 @@ import * as core from '@actions/core'; import * as github from '@actions/github'; import * as xmlbuilder from 'xmlbuilder'; import * as xmlParser from 'fast-xml-parser'; +import { ProcessEnvOptions } from 'child_process'; export function configAuthentication( feedUrl: string, - existingFileLocation: string = '' + existingFileLocation: string = '', + processRoot: string = process.cwd() ) { const existingNuGetConfig: string = path.resolve( - process.env['RUNNER_TEMP'] || process.cwd(), + processRoot, existingFileLocation == '' ? 'nuget.config' : existingFileLocation ); const tempNuGetConfig: string = path.resolve( - process.env['RUNNER_TEMP'] || process.cwd(), + processRoot, '../', 'nuget.config' );