Skip to content

Commit 7298636

Browse files
committed
simplify docker build/testing
1 parent 8c18104 commit 7298636

File tree

5 files changed

+34
-71
lines changed

5 files changed

+34
-71
lines changed

build/artifacts-test.cake

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ Task("Artifacts-Native-Test")
8888

8989
foreach(var dockerImage in parameters.Docker.Images)
9090
{
91-
var (os, distro, targetframework) = dockerImage;
91+
var (distro, targetframework) = dockerImage;
9292

9393
PackPrepareNative(Context, parameters, distro);
9494

@@ -109,7 +109,11 @@ Task("Artifacts-MsBuildCore-Test")
109109

110110
foreach(var dockerImage in parameters.Docker.Images)
111111
{
112-
var (os, distro, targetframework) = dockerImage;
112+
var (distro, targetframework) = dockerImage;
113+
114+
if (targetframework == "3.1") {
115+
targetframework = $"netcoreapp{targetframework}";
116+
}
113117

114118
var cmd = $"-file {rootPrefix}/scripts/Test-MsBuildCore.ps1 -version {version} -repoPath {rootPrefix}/repo/tests/integration/core -nugetPath {rootPrefix}/nuget -targetframework {targetframework}";
115119

build/utils/artifacts.cake

Lines changed: 12 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -100,65 +100,47 @@ public class DockerImages
100100

101101
public static DockerImages GetDockerImages(ICakeContext context, BuildParameters parameters)
102102
{
103-
var dockerJson = context.ParseJsonFromFile("./src/Docker/docker.json");
104-
105-
var dockerImages = new List<DockerImage>();
106-
foreach (var osItem in dockerJson.Properties())
107-
{
108-
foreach (var targetFramework in ((JObject)osItem.Value).Properties())
109-
{
110-
foreach (var distro in ((JArray)targetFramework.Value))
111-
{
112-
dockerImages.Add(new DockerImage(os: osItem.Name, distro: distro.ToString(), targetFramework: $"netcoreapp{targetFramework.Name}"));
113-
}
114-
}
115-
}
103+
var versions = new[] { "3.1" };
104+
var distros = parameters.DockerDistros;
105+
106+
var dockerImages =
107+
(from version in versions
108+
from distro in distros
109+
select new DockerImage(distro: distro.ToString(), targetFramework: $"{version}")).ToList();
116110

117111
if (!string.IsNullOrEmpty(parameters.DockerDistro)) {
118112
dockerImages = dockerImages.Where(x => x.Distro == parameters.DockerDistro).ToList();
119113
}
120114

121115
if (!string.IsNullOrEmpty(parameters.DockerDotnetVersion)) {
122-
dockerImages = dockerImages.Where(x => x.TargetFramework == $"netcoreapp{parameters.DockerDotnetVersion}").ToList();
116+
dockerImages = dockerImages.Where(x => x.TargetFramework == $"{parameters.DockerDotnetVersion}").ToList();
123117
}
124118

125-
var windowsImages = dockerImages.Where(x => x.OS == "windows").ToArray();
126-
var linuxImages = dockerImages.Where(x => x.OS == "linux").ToArray();
127-
128-
var images = parameters.IsDockerForWindows
129-
? windowsImages
130-
: parameters.IsDockerForLinux
131-
? linuxImages
132-
: Array.Empty<DockerImage>();
133-
134119
return new DockerImages {
135-
Images = images
120+
Images = dockerImages
136121
};
137122
}
138123
}
139124

140125
public class DockerImage
141126
{
142-
public string OS { get; private set; }
143127
public string Distro { get; private set; }
144128
public string TargetFramework { get; private set; }
145129

146-
public DockerImage(string os, string distro, string targetFramework)
130+
public DockerImage(string distro, string targetFramework)
147131
{
148-
OS = os;
149132
Distro = distro;
150133
TargetFramework = targetFramework;
151134
}
152135

153-
public void Deconstruct(out string os, out string distro, out string targetFramework)
136+
public void Deconstruct(out string distro, out string targetFramework)
154137
{
155-
os = OS;
156138
distro = Distro;
157139
targetFramework = TargetFramework;
158140
}
159141

160142
public override string ToString()
161143
{
162-
return $"OS: {OS}, Distro: {Distro}, TargetFramework: {TargetFramework}";
144+
return $"Distro: {Distro}, TargetFramework: {TargetFramework}";
163145
}
164146
}

build/utils/docker.cake

Lines changed: 14 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ void DockerStdinLogin(string username, string password)
2525

2626
void DockerBuild(DockerImage dockerImage, BuildParameters parameters)
2727
{
28-
var (os, distro, targetframework) = dockerImage;
28+
var (distro, targetframework) = dockerImage;
2929
var workDir = DirectoryPath.FromString($"./src/Docker");
3030
var tags = GetDockerTags(dockerImage, parameters);
3131

@@ -37,7 +37,7 @@ void DockerBuild(DockerImage dockerImage, BuildParameters parameters)
3737
BuildArg = new []
3838
{
3939
$"contentFolder=/content",
40-
$"DOTNET_VERSION={targetframework.Replace("netcoreapp", "")}",
40+
$"DOTNET_VERSION={targetframework}",
4141
$"DISTRO={distro}",
4242
$"VERSION={parameters.Version.NugetVersion}"
4343
},
@@ -91,8 +91,8 @@ void DockerTestRun(DockerContainerRunSettings settings, BuildParameters paramete
9191
void DockerTestArtifact(DockerImage dockerImage, BuildParameters parameters, string cmd)
9292
{
9393
var settings = GetDockerRunSettings(parameters);
94-
var (os, distro, targetframework) = dockerImage;
95-
var tag = $"gittools/build-images:{distro}-sdk-{targetframework.Replace("netcoreapp", "")}";
94+
var (distro, targetframework) = dockerImage;
95+
var tag = $"gittools/build-images:{distro}-sdk-{targetframework}";
9696

9797
Information("Docker tag: {0}", tag);
9898
Information("Docker cmd: pwsh {0}", cmd);
@@ -102,8 +102,8 @@ void DockerTestArtifact(DockerImage dockerImage, BuildParameters parameters, str
102102

103103
void DockerPullImage(DockerImage dockerImage, BuildParameters parameters)
104104
{
105-
var (os, distro, targetframework) = dockerImage;
106-
var tag = $"gittools/build-images:{distro}-sdk-{targetframework.Replace("netcoreapp", "")}";
105+
var (distro, targetframework) = dockerImage;
106+
var tag = $"gittools/build-images:{distro}-sdk-{targetframework}";
107107
DockerPull(tag);
108108
}
109109

@@ -143,33 +143,28 @@ DockerContainerRunSettings GetDockerRunSettings(BuildParameters parameters)
143143

144144
string[] GetDockerTags(DockerImage dockerImage, BuildParameters parameters) {
145145
var name = $"gittools/gitversion";
146-
var (os, distro, targetframework) = dockerImage;
146+
var (distro, targetframework) = dockerImage;
147147

148148
var tags = new List<string> {
149-
$"{name}:{parameters.Version.Version}-{os}-{distro}-{targetframework}",
150-
$"{name}:{parameters.Version.SemVersion}-{os}-{distro}-{targetframework}",
149+
$"{name}:{parameters.Version.Version}-{distro}-{targetframework}",
150+
$"{name}:{parameters.Version.SemVersion}-{distro}-{targetframework}",
151151
};
152152

153-
if (distro == "debian-9" && targetframework == parameters.CoreFxVersion31 || distro == "nanoserver-1809") {
153+
if (distro == "debian.10-x64" && targetframework == parameters.CoreFxVersion31) {
154154
tags.AddRange(new[] {
155-
$"{name}:{parameters.Version.Version}-{os}",
156-
$"{name}:{parameters.Version.SemVersion}-{os}",
155+
$"{name}:{parameters.Version.Version}",
156+
$"{name}:{parameters.Version.SemVersion}",
157157

158158
$"{name}:{parameters.Version.Version}-{targetframework}",
159-
$"{name}:{parameters.Version.SemVersion}-{targetframework}",
160-
161-
$"{name}:{parameters.Version.Version}-{os}-{targetframework}",
162-
$"{name}:{parameters.Version.SemVersion}-{os}-{targetframework}",
159+
$"{name}:{parameters.Version.SemVersion}-{targetframework}"
163160
});
164161

165162
if (parameters.IsStableRelease())
166163
{
167164
tags.AddRange(new[] {
168165
$"{name}:latest",
169-
$"{name}:latest-{os}",
170166
$"{name}:latest-{targetframework}",
171-
$"{name}:latest-{os}-{targetframework}",
172-
$"{name}:latest-{os}-{distro}-{targetframework}",
167+
$"{name}:latest-{distro}-{targetframework}",
173168
});
174169
}
175170
}

build/utils/parameters.cake

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ public class BuildParameters
1515

1616
public string DockerDistro { get; private set; }
1717
public string DockerDotnetVersion { get; private set; }
18+
public string[] DockerDistros = new[] { "alpine.3.12-x64", "centos.7-x64", "debian.9-x64", "debian.10-x64", "ubuntu.16.04-x64", "ubuntu.18.04-x64", "ubuntu.20.04-x64" };
1819

1920
public bool EnabledUnitTests { get; private set; }
2021
public bool EnabledPublishNuget { get; private set; }
@@ -140,7 +141,7 @@ public class BuildParameters
140141
NativeRuntimes = new Dictionary<PlatformFamily, string[]>
141142
{
142143
[PlatformFamily.Windows] = new[] { "win-x64", "win-x86" },
143-
[PlatformFamily.Linux] = new[] { "alpine.3.12-x64", "centos.7-x64", "debian.9-x64", "debian.10-x64", "ubuntu.16.04-x64", "ubuntu.18.04-x64", "ubuntu.20.04-x64" },
144+
[PlatformFamily.Linux] = DockerDistros,
144145
[PlatformFamily.OSX] = new[] { "osx-x64" },
145146
};
146147

src/Docker/docker.json

Lines changed: 0 additions & 19 deletions
This file was deleted.

0 commit comments

Comments
 (0)