Fixed incorrect relative paths in DotnetCommands
ln.build - build0.waldrennach.l--n.de build job pending Details

master
Harald Wolff 2020-12-09 11:03:03 +01:00
parent 654ae4156e
commit b6cde40c20
1 changed files with 9 additions and 11 deletions

View File

@ -3,8 +3,6 @@ using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.InteropServices;
using ln.application;
using ln.build.pipeline;
using ln.build.semver;
using ln.build.support.dotnet;
@ -18,8 +16,8 @@ namespace ln.build.commands
{
public static void Prepare(Stage stage,params string[] arguments)
{
if (Directory.Exists(".build"))
Directory.Delete(".build", true);
if (Directory.Exists(Path.Combine(stage.CommandEnvironment.WorkingDirectory, ".build")))
Directory.Delete(Path.Combine(stage.CommandEnvironment.WorkingDirectory, ".build"), true);
List<string> projectFiles = new List<string>();
List<string> slnFiles = new List<string>();
@ -77,10 +75,10 @@ namespace ln.build.commands
new CommandRunner("dotnet","pack", projectFileName)
.AddArgument(new CommandRunner.Option("-c", stage.CommandEnvironment.Get("DOTNET_CONFIGURATION")))
.AddArguments("-o", ".build/")
.AddArguments("-o", Path.Combine(stage.CommandEnvironment.WorkingDirectory, ".build/"))
.Run(stage.CommandEnvironment);
string artefact = String.Format(".build/{0}.{1}.nupkg",csProject.GetName(), csProject.GetVersion());
string artefact = String.Format(Path.Combine(stage.CommandEnvironment.WorkingDirectory, ".build","{0}.{1}.nupkg"),csProject.GetName(), csProject.GetVersion());
if (!File.Exists(artefact))
throw new FileNotFoundException(artefact);
@ -113,7 +111,7 @@ namespace ln.build.commands
.AddArgument(new CommandRunner.Option("-c", stage.CommandEnvironment.Get("DOTNET_CONFIGURATION")))
.AddArguments("-p:PublishTrimmed=true","-p:PublishSingleFile=true","-p:PublishReadyToRun=false");
CommandRunner.Option outputOption = new CommandRunner.Option("-o", ".build/");
CommandRunner.Option outputOption = new CommandRunner.Option("-o", Path.Combine(stage.CommandEnvironment.WorkingDirectory, ".build"));
cr.AddArgument(outputOption);
string[] rids = stage.CommandEnvironment.Get("DOTNET_RIDS","").Split(':');
@ -130,24 +128,24 @@ namespace ln.build.commands
foreach (string rid in rids)
{
ridOption.SetValue(rid);
outputOption.SetValue(String.Format(".build/{0}/", rid));
outputOption.SetValue(Path.Combine(stage.CommandEnvironment.WorkingDirectory, ".build",rid));
cr.Run(stage.CommandEnvironment);
string artefact = Directory.GetFiles(String.Format(".build/{0}/", rid)).Where((fn)=>!fn.EndsWith(".pdb")).FirstOrDefault();
string artefact = Directory.GetFiles(Path.Combine(stage.CommandEnvironment.WorkingDirectory, ".build",rid)).Where((fn)=>!fn.EndsWith(".pdb")).FirstOrDefault();
if (artefact != null)
{
string ext = Path.GetExtension(artefact);
if (!ext.Equals(".exe"))
ext = "";
string finalName = string.Format(".build/{0}-{3}-{1}{2}",csProject.GetName(), rid, ext, csProject.GetVersion());
string finalName = Path.Combine(stage.CommandEnvironment.WorkingDirectory, ".build", string.Format("{0}-{3}-{1}{2}",csProject.GetName(), rid, ext, csProject.GetVersion()));
File.Move(artefact, finalName);
artefacts.Add(finalName);
stage.PipeLine.CommandEnvironment.Extend("DOTNET_ARTEFACTS", finalName);
Directory.Delete(String.Format(".build/{0}/", rid), true);
Directory.Delete(Path.Combine(stage.CommandEnvironment.WorkingDirectory, ".build",rid), true);
}
}
}