Skip to content

Commit 5385735

Browse files
committed
(build) artifacts using pwsh scripts
1 parent 98be005 commit 5385735

File tree

7 files changed

+49
-15
lines changed

7 files changed

+49
-15
lines changed

build.config

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
#!/usr/bin/env bash
2-
DOTNET_VERSION=2.1.803,3.1.102
2+
DOTNET_VERSION=2.1.804,3.1.102

build/artifacts-test.cake

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,10 @@ Task("Artifacts-Prepare")
66
.IsDependentOnWhen("Pack-Nuget", singleStageRun)
77
.Does<BuildParameters>((parameters) =>
88
{
9+
foreach(var dockerImage in parameters.Docker.Images)
10+
{
11+
DockerPullImage(dockerImage, parameters);
12+
}
913
});
1014

1115
Task("Artifacts-DotnetTool-Test")
@@ -19,10 +23,7 @@ Task("Artifacts-DotnetTool-Test")
1923

2024
foreach(var dockerImage in parameters.Docker.Images)
2125
{
22-
var cmd = $"$result = dotnet tool install GitVersion.Tool --version {version} --tool-path {rootPrefix}/gitversion --add-source {rootPrefix}/nuget | out-null; ";
23-
cmd += "if($LASTEXITCODE -eq 0) { ";
24-
cmd += $"{rootPrefix}/gitversion/dotnet-gitversion {rootPrefix}/repo /showvariable FullSemver;";
25-
cmd += "} else { echo $result }";
26+
var cmd = $"-file {rootPrefix}/scripts/Test-DotnetGlobalTool.ps1 -version {version} -repoPath {rootPrefix}/repo -nugetPath {rootPrefix}/nuget -toolPath {rootPrefix}/gitversion";
2627

2728
DockerTestArtifact(dockerImage, parameters, cmd);
2829
}
@@ -40,10 +41,8 @@ Task("Artifacts-MsBuild-Test")
4041
foreach(var dockerImage in parameters.Docker.Images)
4142
{
4243
var (os, distro, targetframework) = dockerImage;
43-
var cmd = $"$result = dotnet build {rootPrefix}/repo/test --source {rootPrefix}/nuget --source https://api.nuget.org/v3/index.json -p:GitVersionTaskVersion={version} -p:TargetFramework={targetframework} *>&1; ";
44-
cmd += "if($LASTEXITCODE -eq 0) { ";
45-
cmd += $"dotnet {rootPrefix}/repo/test/build/corefx/{targetframework}/TestRepo.dll;";
46-
cmd += "} else { echo $result }";
44+
45+
var cmd = $"-file {rootPrefix}/scripts/Test-MsBuild.ps1 -version {version} -repoPath {rootPrefix}/repo/test -nugetPath {rootPrefix}/nuget -targetframework {targetframework}";
4746

4847
DockerTestArtifact(dockerImage, parameters, cmd);
4948
}

build/utils/docker.cake

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -99,14 +99,19 @@ void DockerTestArtifact(DockerImage dockerImage, BuildParameters parameters, str
9999
var (os, distro, targetframework) = dockerImage;
100100
var tag = $"gittools/build-images:{distro}-sdk-{targetframework.Replace("netcoreapp", "")}";
101101

102-
cmd = "-Command " + cmd; // powershell 7 needs a -Command parameter
103-
104102
Information("Docker tag: {0}", tag);
105-
Information("Docker cmd: {0}", cmd);
103+
Information("Docker cmd: pwsh {0}", cmd);
106104

107105
DockerTestRun(settings, parameters, tag, "pwsh", cmd);
108106
}
109107

108+
void DockerPullImage(DockerImage dockerImage, BuildParameters parameters)
109+
{
110+
var (os, distro, targetframework) = dockerImage;
111+
var tag = $"gittools/build-images:{distro}-sdk-{targetframework.Replace("netcoreapp", "")}";
112+
DockerPull(tag);
113+
}
114+
110115
DockerContainerRunSettings GetDockerRunSettings(BuildParameters parameters)
111116
{
112117
var currentDir = MakeAbsolute(Directory("."));
@@ -116,7 +121,8 @@ DockerContainerRunSettings GetDockerRunSettings(BuildParameters parameters)
116121
Volume = new[]
117122
{
118123
$"{currentDir}:{parameters.DockerRootPrefix}/repo",
119-
$"{currentDir}/artifacts/v{parameters.Version.SemVersion}/nuget:{parameters.DockerRootPrefix}/nuget"
124+
$"{currentDir}/artifacts/v{parameters.Version.SemVersion}/nuget:{parameters.DockerRootPrefix}/nuget",
125+
$"{currentDir}/test-scripts:{parameters.DockerRootPrefix}/scripts"
120126
}
121127
};
122128

src/Docker/docker.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,10 @@
1717
},
1818
"windows": {
1919
"2.1": [
20-
"nanoserver-1809"
20+
"nanoserver"
2121
],
2222
"3.1": [
23-
"nanoserver-1809"
23+
"nanoserver"
2424
]
2525
}
2626
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
param(
2+
[parameter(Mandatory=$true, Position=0)][string] $version,
3+
[parameter(Mandatory=$true, Position=1)][string] $nugetPath,
4+
[parameter(Mandatory=$true, Position=2)][string] $repoPath,
5+
[parameter(Mandatory=$true, Position=3)][string] $toolPath
6+
)
7+
8+
$result = dotnet tool install GitVersion.Tool --version $version --tool-path $toolPath --add-source $nugetPath | out-null;
9+
10+
if($LASTEXITCODE -eq 0) {
11+
& "$rootPrefix/gitversion/dotnet-gitversion" $repoPath /showvariable FullSemver;
12+
} else {
13+
Write-Output $result
14+
}

test-scripts/Test-MsBuild.ps1

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
param(
2+
[parameter(Mandatory=$true, Position=0)][string] $version,
3+
[parameter(Mandatory=$true, Position=1)][string] $nugetPath,
4+
[parameter(Mandatory=$true, Position=2)][string] $repoPath,
5+
[parameter(Mandatory=$true, Position=3)][string] $targetframework
6+
)
7+
8+
$result = dotnet build $repoPath --source $nugetPath --source https://api.nuget.org/v3/index.json -p:GitVersionTaskVersion=$version -p:TargetFramework=$targetframework *>&1;
9+
10+
if($LASTEXITCODE -eq 0) {
11+
& "dotnet" $repoPath/build/corefx/$targetframework/TestRepo.dll;
12+
} else {
13+
Write-Output $result
14+
}

test/TestRepoCore.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
</Target>
1616

1717
<ItemGroup>
18+
<PackageReference Include="Microsoft.NETFramework.ReferenceAssemblies" Version="1.0.0" />
1819
<PackageReference Include="GitVersionTask" Version="$(GitVersionTaskVersion)">
1920
<PrivateAssets>all</PrivateAssets>
2021
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>

0 commit comments

Comments
 (0)