@Override protected NodeTask newTask(FrontendPluginFactory factory, Config conf, ProxyConfig proxy, Map<String, String> env, String nodeVersion) throws InstallationException { Function<String, String> property = key -> conf.hasPath(key) ? conf.getString(key) : null; factory.getYarnInstaller(proxy) .setYarnVersion(yarnVersion) .setYarnDownloadRoot(conf.getString("yarn.downloadRoot")) .setUserName(property.apply("yarn.username")) .setPassword(property.apply("yarn.password")) .install(); YarnRunner yarn = factory.getYarnRunner(proxy, conf.getString("npm.registryURL")); return (cmd, args) -> { String cmdline = cmd + " " + Arrays.asList(args).stream().collect(Collectors.joining(" ")); yarn.execute(cmdline, env); }; }
@Override public void execute(FrontendPluginFactory factory) throws TaskRunnerException { File packageJson = new File(this.workingDirectory, "package.json"); if (this.buildContext == null || this.buildContext.hasDelta(packageJson) || !this.buildContext.isIncremental()) { ProxyConfig proxyConfig = getProxyConfig(); factory.getYarnRunner(proxyConfig, getRegistryUrl()).execute(this.arguments, this.environmentVariables); } else { getLog().info("Skipping yarn install as package.json unchanged"); } }
@Override public void execute(FrontendPluginFactory factory) throws TaskRunnerException { File packageJson = new File(this.workingDirectory, "package.json"); if (this.buildContext == null || this.buildContext.hasDelta(packageJson) || !this.buildContext.isIncremental()) { ProxyConfig proxyConfig = getProxyConfig(); factory.getYarnRunner(proxyConfig, getRegistryUrl()).execute(this.arguments, this.environmentVariables); } else { getLog().info("Skipping yarn install as package.json unchanged"); } }
private YarnRunner downloadYarn(File workingDirectory, ProxyConfig proxyConfig, String npmRegistryUrl, String yarnVersion) { FrontendPluginFactory factory = new FrontendPluginFactory( workingDirectory, workingDirectory); try { factory.getYarnInstaller(proxyConfig).setYarnVersion(yarnVersion) .setYarnDownloadRoot( YarnInstaller.DEFAULT_YARN_DOWNLOAD_ROOT) .install(); } catch (InstallationException e) { throw new IllegalStateException("Failed to download yarn", e); } return factory.getYarnRunner(proxyConfig, validateUrl(npmRegistryUrl)); }