public static BuildTargetResult GenerateNugetPackages(BuildTargetContext c) { var versionSuffix = c.BuildContext.Get <BuildVersion>("BuildVersion").CommitCountString; var configuration = c.BuildContext.Get <string>("Configuration"); var env = GetCommonEnvVars(c); var dotnet = DotNetCli.Stage2; var packagingBuildBasePath = Path.Combine(Dirs.Stage2Compilation, "forPackaging"); FS.Mkdirp(Dirs.Packages); foreach (var projectName in ProjectsToPack) { var projectFile = Path.Combine(Dirs.RepoRoot, "src", projectName, "project.json"); dotnet.Pack( projectFile, "--no-build", "--serviceable", "--build-base-path", packagingBuildBasePath, "--output", Dirs.Packages, "--configuration", configuration, "--version-suffix", versionSuffix) .Execute() .EnsureSuccessful(); } return(c.Success()); }
public void CreateDeb( string debianConfigJsonFile, string packageName, string packageVersion, string inputBinariesDirectory, Dictionary <string, string> debianConfigVariables, string outputFile, string manpagesDirectory = null, bool versionManpages = false, IEnumerable <string> debianFiles = null) { string debIntermediatesDirectory = Path.Combine(_intermediateDirectory, packageName, packageVersion); if (Directory.Exists(debIntermediatesDirectory)) { FS.Rmdir(debIntermediatesDirectory); } FS.Mkdirp(debIntermediatesDirectory); string layoutDirectory = Path.Combine(debIntermediatesDirectory, "debianLayoutDirectory"); var debianLayoutDirectories = new DebianLayoutDirectories(layoutDirectory); CreateEmptyDebianLayout(debianLayoutDirectories); CopyFilesToDebianLayout( debianLayoutDirectories, packageVersion, debianConfigJsonFile, inputBinariesDirectory, manpagesDirectory, versionManpages, debianFiles); ReplaceDebianConfigJsonVariables(debianLayoutDirectories, debianConfigVariables); CreateDebianPackage(debianLayoutDirectories, debIntermediatesDirectory, outputFile, packageName, packageVersion); }
public override bool Execute() { FS.Mkdirp(Path.GetDirectoryName(DestinationPath)); if (File.Exists(DestinationPath) && !Overwrite) { return(true); } Log.LogMessage($"Downloading '{Uri}' to '{DestinationPath}'"); using (var httpClient = new HttpClient()) { var getTask = httpClient.GetStreamAsync(Uri); try { using (var outStream = File.Create(DestinationPath)) { getTask.Result.CopyTo(outStream); } } catch (Exception) { File.Delete(DestinationPath); throw; } } return(true); }
public void CopyHostFxrToVersionedDirectory(string rootDirectory, string hostFxrVersion) { var hostFxrVersionedDirectory = Path.Combine(rootDirectory, "host", "fxr", hostFxrVersion); FS.Mkdirp(hostFxrVersionedDirectory); File.Copy( Path.Combine(_corehostLockedDirectory, HostArtifactNames.DotnetHostFxrBaseName), Path.Combine(hostFxrVersionedDirectory, HostArtifactNames.DotnetHostFxrBaseName), true); }
public override bool Execute() { FS.Mkdirp(Path.GetDirectoryName(DestinationPath)); if (File.Exists(DestinationPath) && !Overwrite) { return(true); } const string FileUriProtocol = "file://"; if (Uri.StartsWith(FileUriProtocol, StringComparison.Ordinal)) { var filePath = Uri.Substring(FileUriProtocol.Length); Log.LogMessage($"Copying '{filePath}' to '{DestinationPath}'"); File.Copy(filePath, DestinationPath); } else { Log.LogMessage($"Downloading '{Uri}' to '{DestinationPath}'"); using (var httpClient = new HttpClient()) { var getTask = httpClient.GetStreamAsync(Uri); try { using (var outStream = File.Create(DestinationPath)) { getTask.Result.CopyTo(outStream); } } catch (Exception) { File.Delete(DestinationPath); throw; } } } return(true); }
public static BuildTargetResult GenerateNugetPackages(BuildTargetContext c) { var versionSuffix = c.BuildContext.Get <BuildVersion>("BuildVersion").VersionSuffix; var configuration = c.BuildContext.Get <string>("Configuration"); var env = GetCommonEnvVars(c); var dotnet = DotNetCli.Stage2; var packagingBuildBasePath = Path.Combine(Dirs.Stage2Compilation, "forPackaging"); FS.Mkdirp(Dirs.PackagesIntermediate); FS.Mkdirp(Dirs.Packages); foreach (var projectName in ProjectsToPack) { var projectFile = Path.Combine(Dirs.RepoRoot, "src", projectName, "project.json"); dotnet.Pack( projectFile, "--no-build", "--build-base-path", packagingBuildBasePath, "--output", Dirs.PackagesIntermediate, "--configuration", configuration, "--version-suffix", versionSuffix) .Execute() .EnsureSuccessful(); } var packageFiles = Directory.EnumerateFiles(Dirs.PackagesIntermediate, "*.nupkg"); foreach (var packageFile in packageFiles) { if (!packageFile.EndsWith(".symbols.nupkg")) { var destinationPath = Path.Combine(Dirs.Packages, Path.GetFileName(packageFile)); File.Copy(packageFile, destinationPath, overwrite: true); } } return(c.Success()); }
private void CreateAndRestoreToolConsumingProject() { if (Directory.Exists(_consumingProjectDirectory)) { FS.Rmdir(_consumingProjectDirectory); } FS.Mkdirp(_consumingProjectDirectory); var projectJsonFile = Path.Combine(_consumingProjectDirectory, "project.json"); File.WriteAllText(projectJsonFile, GetDotnetDebProjectJsonContents()); Command restore = _dotnetDebToolPackageSource == null ? _dotnet.Restore() : _dotnet.Restore("-f", $"{_dotnetDebToolPackageSource}"); restore .WorkingDirectory(Path.GetDirectoryName(projectJsonFile)) .Execute() .EnsureSuccessful(); }