Skip to content

Commit 2498b14

Browse files
committed
(build) improve docker build and test
1 parent 5ac32c2 commit 2498b14

21 files changed

+128
-124
lines changed

.github/workflows/ci.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -188,7 +188,7 @@ jobs:
188188
-
189189
name: '[Test Artifacts]'
190190
shell: pwsh
191-
run: dotnet run/artifacts-test.dll --target=ArtifactsTest --docker_dotnetversion=${{ matrix.targetFramework }} --docker_distro=${{ matrix.distro }}
191+
run: dotnet run/artifacts.dll --target=ArtifactsTest --docker_dotnetversion=${{ matrix.targetFramework }} --docker_distro=${{ matrix.distro }}
192192

193193
artifacts_windows_test:
194194
name: Test artifacts on windows
@@ -229,7 +229,7 @@ jobs:
229229
-
230230
name: '[Test Artifacts]'
231231
shell: pwsh
232-
run: dotnet run/artifacts-test.dll --target=Artifacts${{ matrix.package }}Test
232+
run: dotnet run/artifacts.dll --target=Artifacts${{ matrix.package }}Test
233233

234234
docker_linux_images:
235235
name: Build, Test and Publish Docker Images

build/.run/Docker Test.run.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<component name="ProjectRunConfigurationManager">
22
<configuration default="false" name="Docker Test" type="DotNetProject" factoryName=".NET Project" folderName="Docker">
33
<option name="EXE_PATH" value="$PROJECT_DIR$/../run/docker.exe" />
4-
<option name="PROGRAM_PARAMETERS" value="--target=DockerTest --docker_dotnetversion=5.0 --docker_distro=alpine.3.12-x64" />
4+
<option name="PROGRAM_PARAMETERS" value="--target=DockerTest --docker_registry github --docker_dotnetversion=5.0 --docker_distro=alpine.3.12-x64" />
55
<option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/.." />
66
<option name="PASS_PARENT_ENVS" value="1" />
77
<option name="USE_EXTERNAL_CONSOLE" value="0" />

build/artifacts/BuildContext.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ public class BuildContext : BuildContextBase
88
{
99
public string MsBuildConfiguration { get; set; } = "Release";
1010

11-
public string DockerRegistry { get; set; } = Constants.GitHubContainerRegistry;
1211
public bool IsDockerOnLinux { get; set; }
1312

1413
public IEnumerable<DockerImage> Images { get; set; } = new List<DockerImage>();

build/artifacts/BuildLifetime.cs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,19 +12,20 @@ public class BuildLifetime : BuildLifetimeBase<BuildContext>
1212
public override void Setup(BuildContext context)
1313
{
1414
base.Setup(context);
15+
1516
context.IsDockerOnLinux = context.DockerCustomCommand("info --format '{{.OSType}}'").First().Replace("'", string.Empty) == "linux";
1617

17-
var dockerRegistry = context.Argument(Arguments.DockerRegistry, "github").ToLower();
18+
var dockerRegistry = context.Argument(Arguments.DockerRegistry, DockerRegistry.GitHub);
1819
var dotnetVersion = context.Argument(Arguments.DockerDotnetVersion, string.Empty).ToLower();
1920
var dockerDistro = context.Argument(Arguments.DockerDistro, string.Empty).ToLower();
2021

2122
var versions = string.IsNullOrWhiteSpace(dotnetVersion) ? Constants.VersionsToBuild : new[] { dotnetVersion };
2223
var distros = string.IsNullOrWhiteSpace(dockerDistro) ? Constants.DockerDistrosToBuild : new[] { dockerDistro };
2324

24-
context.DockerRegistry = dockerRegistry == "github" ? Constants.GitHubContainerRegistry : Constants.DockerHubRegistry;
25+
var registry = dockerRegistry == DockerRegistry.GitHub ? Constants.GitHubContainerRegistry : Constants.DockerHubRegistry;
2526
context.Images = from version in versions
2627
from distro in distros
27-
select new DockerImage(distro, version);
28+
select new DockerImage(distro, version, registry, true);
2829

2930
context.StartGroup("Build Setup");
3031

build/artifacts/Tasks/ArtifactsDotnetToolTest.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ namespace Artifacts.Tasks
55
{
66
[TaskName(nameof(ArtifactsDotnetToolTest))]
77
[TaskDescription("Tests the dotnet global tool in docker container")]
8-
[TaskArgument(Arguments.DockerRegistry, "github", "dockerhub")]
8+
[TaskArgument(Arguments.DockerRegistry, Constants.GitHub, Constants.DockerHub)]
99
[TaskArgument(Arguments.DockerDotnetVersion, Constants.Version50, Constants.Version31)]
1010
[TaskArgument(Arguments.DockerDistro, Constants.Alpine312, Constants.Debian10, Constants.Ubuntu2004)]
1111
[IsDependentOn(typeof(ArtifactsPrepare))]
@@ -30,7 +30,7 @@ public override void Run(BuildContext context)
3030
{
3131
var cmd = $"-file {rootPrefix}/scripts/Test-DotnetGlobalTool.ps1 -version {version} -repoPath {rootPrefix}/repo -nugetPath {rootPrefix}/nuget";
3232

33-
context.DockerTestArtifact(dockerImage, cmd, context.DockerRegistry);
33+
context.DockerTestArtifact(dockerImage, cmd);
3434
}
3535
}
3636
}

build/artifacts/Tasks/ArtifactsMsBuildCoreTest.cs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ namespace Artifacts.Tasks
55
{
66
[TaskName(nameof(ArtifactsMsBuildCoreTest))]
77
[TaskDescription("Tests the msbuild package in docker container")]
8-
[TaskArgument(Arguments.DockerRegistry, "github", "dockerhub")]
8+
[TaskArgument(Arguments.DockerRegistry, Constants.GitHub, Constants.DockerHub)]
99
[TaskArgument(Arguments.DockerDotnetVersion, Constants.Version50, Constants.Version31)]
1010
[TaskArgument(Arguments.DockerDistro, Constants.Alpine312, Constants.Debian10, Constants.Ubuntu2004)]
1111
[IsDependentOn(typeof(ArtifactsPrepare))]
@@ -28,7 +28,8 @@ public override void Run(BuildContext context)
2828

2929
foreach (var dockerImage in context.Images)
3030
{
31-
var (distro, targetFramework) = dockerImage;
31+
string distro = dockerImage.Distro;
32+
string targetFramework = dockerImage.TargetFramework;
3233

3334
if (targetFramework == Constants.Version31 && distro == "centos.8-x64") continue; // TODO check why this one fails
3435
targetFramework = targetFramework switch
@@ -40,7 +41,7 @@ public override void Run(BuildContext context)
4041

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

43-
context.DockerTestArtifact(dockerImage, cmd, context.DockerRegistry);
44+
context.DockerTestArtifact(dockerImage, cmd);
4445
}
4546
}
4647
}

build/artifacts/Tasks/ArtifactsNativeTest.cs

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ namespace Artifacts.Tasks
55
{
66
[TaskName(nameof(ArtifactsNativeTest))]
77
[TaskDescription("Tests the native executables in docker container")]
8-
[TaskArgument(Arguments.DockerRegistry, "github", "dockerhub")]
8+
[TaskArgument(Arguments.DockerRegistry, Constants.GitHub, Constants.DockerHub)]
99
[TaskArgument(Arguments.DockerDotnetVersion, Constants.Version50, Constants.Version31)]
1010
[TaskArgument(Arguments.DockerDistro, Constants.Alpine312, Constants.Debian10, Constants.Ubuntu2004)]
1111
[IsDependentOn(typeof(ArtifactsPrepare))]
@@ -28,17 +28,15 @@ public override void Run(BuildContext context)
2828

2929
foreach (var dockerImage in context.Images)
3030
{
31-
var (distro, _) = dockerImage;
32-
3331
var runtime = "linux-x64";
34-
if (distro.StartsWith("alpine"))
32+
if (dockerImage.Distro.StartsWith("alpine"))
3533
{
3634
runtime = "linux-musl-x64";
3735
}
3836

3937
var cmd = $"-file {rootPrefix}/scripts/Test-Native.ps1 -version {version} -repoPath {rootPrefix}/repo -runtime {runtime}";
4038

41-
context.DockerTestArtifact(dockerImage, cmd, context.DockerRegistry);
39+
context.DockerTestArtifact(dockerImage, cmd);
4240
}
4341
}
4442
}

build/artifacts/Tasks/ArtifactsPrepare.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ namespace Artifacts.Tasks
55
{
66
[TaskName(nameof(ArtifactsPrepare))]
77
[TaskDescription("Pulls the docker images needed for testing the artifacts")]
8-
[TaskArgument(Arguments.DockerRegistry, "github", "dockerhub")]
8+
[TaskArgument(Arguments.DockerRegistry, Constants.GitHub, Constants.DockerHub)]
99
[TaskArgument(Arguments.DockerDotnetVersion, Constants.Version50, Constants.Version31)]
1010
[TaskArgument(Arguments.DockerDistro, Constants.Alpine312, Constants.Debian10, Constants.Ubuntu2004)]
1111
public class ArtifactsPrepare : FrostingTask<BuildContext>
@@ -22,7 +22,7 @@ public override void Run(BuildContext context)
2222
{
2323
foreach (var dockerImage in context.Images)
2424
{
25-
context.DockerPullImage(dockerImage, context.DockerRegistry);
25+
context.DockerPullImage(dockerImage);
2626
}
2727
}
2828
}

build/artifacts/Tasks/ArtifactsTest.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@ namespace Artifacts.Tasks
55
{
66
[TaskName(nameof(ArtifactsTest))]
77
[TaskDescription("Tests packages in docker container")]
8-
[TaskArgument(Arguments.DockerRegistry, "github", "dockerhub")]
8+
[TaskArgument(Arguments.DockerRegistry, Constants.GitHub, Constants.DockerHub)]
99
[TaskArgument(Arguments.DockerDotnetVersion, Constants.Version50, Constants.Version31)]
1010
[TaskArgument(Arguments.DockerDistro, Constants.Alpine312, Constants.Debian10, Constants.Ubuntu2004)]
11-
[IsDependentOn(typeof(ArtifactsNativeTest))]
11+
// [IsDependentOn(typeof(ArtifactsNativeTest))]
1212
[IsDependentOn(typeof(ArtifactsDotnetToolTest))]
1313
[IsDependentOn(typeof(ArtifactsMsBuildCoreTest))]
1414
public class ArtifactsTest : FrostingTask<BuildContext>

build/artifacts/artifacts.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22
<PropertyGroup>
3-
<AssemblyName>artifacts-test</AssemblyName>
3+
<AssemblyName>artifacts</AssemblyName>
44
<RootNamespace>Artifacts</RootNamespace>
55
</PropertyGroup>
66
<ItemGroup>

0 commit comments

Comments
 (0)