export async function run(packagingLocation: PackagingLocation): Promise<void> { const workingDir = tl.getInput(NpmTaskInput.WorkingDir) || process.cwd(); const npmrc = util.getTempNpmrcPath(); const npmRegistry: INpmRegistry = await getPublishRegistry(packagingLocation); tl.debug(tl.loc('PublishRegistry', npmRegistry.url)); util.appendToNpmrc(npmrc, `registry=${npmRegistry.url}\n`); util.appendToNpmrc(npmrc, `${npmRegistry.auth}\n`); // For publish, always override their project .npmrc const npm = new NpmToolRunner(workingDir, npmrc, true); npm.line('publish'); npm.execSync(); tl.rmRF(npmrc); tl.rmRF(util.getTempPath()); }
export async function run(packagingLocation: PackagingLocation, command?: string): Promise<void> { const workingDir = tl.getInput(NpmTaskInput.WorkingDir) || process.cwd(); const npmrc = util.getTempNpmrcPath(); const npmRegistries: INpmRegistry[] = await getCustomRegistries(packagingLocation); const overrideNpmrc = (tl.getInput(NpmTaskInput.CustomRegistry) === RegistryLocation.Feed) ? true : false; for (const registry of npmRegistries) { if (registry.authOnly === false) { tl.debug(tl.loc('UsingRegistry', registry.url)); util.appendToNpmrc(npmrc, `registry=${registry.url}\n`); } tl.debug(tl.loc('AddingAuthRegistry', registry.url)); util.appendToNpmrc(npmrc, `${registry.auth}\n`); } const npm = new NpmToolRunner(workingDir, npmrc, overrideNpmrc); npm.line(command || tl.getInput(NpmTaskInput.CustomCommand, true)); npm.execSync(); tl.rmRF(npmrc); tl.rmRF(util.getTempPath()); }
main().catch(error => { tl.rmRF(util.getTempPath()); tl.setResult(tl.TaskResult.Failed, error); });