Skip to content

Commit aefb1fa

Browse files
authored
Merge pull request #3852 from arturcic/main
Arm64 - disable testing the artifacts as well as the docker images for Arm64
2 parents 4722a7e + fe8e894 commit aefb1fa

File tree

12 files changed

+39
-29
lines changed

12 files changed

+39
-29
lines changed

.github/workflows/_docker.yml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,16 @@ jobs:
3737
with:
3838
name: nuget
3939
path: ${{ github.workspace }}/artifacts/packages/nuget
40+
-
41+
name: Setup QEMU
42+
if: inputs.arch == 'arm64'
43+
uses: docker/setup-qemu-action@v3
44+
-
45+
name: Setup Docker Buildx
46+
if: inputs.arch == 'arm64'
47+
uses: docker/setup-buildx-action@v3
48+
with:
49+
install: true
4050
-
4151
name: Docker Test
4252
if: success() && github.event_name == 'pull_request' || github.repository_owner != 'GitTools'

.github/workflows/ci.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ jobs:
6262
strategy:
6363
fail-fast: false
6464
matrix:
65-
arch: [ amd64, amd64 ]
65+
arch: [ amd64, arm64 ]
6666

6767
uses: ./.github/workflows/_artifacts_linux.yml
6868
with:
@@ -75,7 +75,7 @@ jobs:
7575
strategy:
7676
fail-fast: false
7777
matrix:
78-
arch: [ amd64, amd64 ]
78+
arch: [ amd64, arm64 ]
7979

8080
uses: ./.github/workflows/_docker.yml
8181
with:

build/artifacts/Tasks/ArtifactsDotnetToolTest.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ public override void Run(BuildContext context)
2727

2828
foreach (var dockerImage in context.Images)
2929
{
30-
if (context.SkipImageForArtifacts(dockerImage)) continue;
30+
if (context.SkipImageTesting(dockerImage)) continue;
3131

3232
var cmd = $"{rootPrefix}/scripts/test-global-tool.sh --version {version} --nugetPath {rootPrefix}/nuget --repoPath {rootPrefix}/repo";
3333

build/artifacts/Tasks/ArtifactsMsBuildCoreTest.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ public override void Run(BuildContext context)
2626

2727
foreach (var dockerImage in context.Images)
2828
{
29-
if (context.SkipImageForArtifacts(dockerImage)) continue;
29+
if (context.SkipImageTesting(dockerImage)) continue;
3030

3131
var framework = dockerImage.TargetFramework;
3232

build/artifacts/Tasks/ArtifactsNativeTest.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ public override void Run(BuildContext context)
2727

2828
foreach (var dockerImage in context.Images)
2929
{
30-
if (context.SkipImageForArtifacts(dockerImage)) continue;
30+
if (context.SkipImageTesting(dockerImage)) continue;
3131

3232
var runtime = "linux";
3333
if (dockerImage.Distro.StartsWith("alpine"))

build/artifacts/Tasks/ArtifactsPrepare.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ public override void Run(BuildContext context)
2121
{
2222
foreach (var dockerImage in context.Images)
2323
{
24-
if (context.SkipImageForArtifacts(dockerImage)) continue;
24+
if (context.SkipImageTesting(dockerImage)) continue;
2525
context.DockerPullImage(dockerImage);
2626
}
2727
}

build/common/Utilities/Constants.cs

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,6 @@ public class Constants
2222
public static readonly string[] VersionsToBuild = [Version60, Version70, Version80];
2323
public static readonly string[] Frameworks = [NetVersion60, NetVersion70, NetVersion80];
2424

25-
public static readonly string[] DistrosToSkipForArtifacts = [];
26-
public static readonly string[] DistrosToSkipForDocker = [];
27-
2825
public const string DockerBaseImageName = "gittools/build-images";
2926
public const string DockerImageName = "gittools/gitversion";
3027

build/common/Utilities/ContextExtensions.cs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
1+
using System.Runtime.InteropServices;
12
using Cake.Common.Build.AzurePipelines;
23
using Xunit;
4+
using ProcessArchitecture = System.Runtime.InteropServices.Architecture;
35

46
namespace Common.Utilities;
57

@@ -12,6 +14,7 @@ public static IEnumerable<string> ExecuteCommand(this ICakeContext context, File
1214
{
1315
processSettings.WorkingDirectory = workDir;
1416
}
17+
1518
context.StartProcess(exe, processSettings, out var redirectedOutput);
1619
return redirectedOutput.ToList();
1720
}
@@ -79,6 +82,12 @@ public static string GetOS(this ICakeContext context)
7982
return string.Empty;
8083
}
8184

85+
public static bool IsRunningOnAmd64(this ICakeContext _)
86+
=> RuntimeInformation.ProcessArchitecture == ProcessArchitecture.X64;
87+
88+
public static bool IsRunningOnArm64(this ICakeContext _) =>
89+
RuntimeInformation.ProcessArchitecture == ProcessArchitecture.Arm64;
90+
8291
public static string GetBuildAgent(this ICakeContext context)
8392
{
8493
var buildSystem = context.BuildSystem();
@@ -142,6 +151,7 @@ public static string GetBranchName(this ICakeContext context)
142151
{
143152
repositoryBranch = buildSystem.GitHubActions.Environment.Workflow.Ref.Replace("refs/heads/", "");
144153
}
154+
145155
return repositoryBranch;
146156
}
147157

@@ -161,6 +171,7 @@ public static string GetRepositoryName(this ICakeContext context)
161171
{
162172
repositoryName = buildSystem.GitHubActions.Environment.Workflow.Repository;
163173
}
174+
164175
return repositoryName;
165176
}
166177

@@ -172,6 +183,7 @@ public static string GetRepositoryName(this ICakeContext context)
172183
context.GetFiles($"src/GitVersion.App/bin/{Constants.DefaultConfiguration}/{Constants.NetVersionLatest}/gitversion.dll").SingleOrDefault();
173184
public static FilePath? GetGitVersionDotnetToolLocation(this ICakeContext context) =>
174185
context.MakeAbsolute(Paths.Tools.Combine("gitversion").CombineWithFilePath("gitversion.dll"));
186+
175187
public static FilePath? GetSchemaDotnetToolLocation(this ICakeContext context) =>
176188
context.MakeAbsolute(Paths.Tools.Combine("schema").CombineWithFilePath("schema.dll"));
177189
}

build/common/Utilities/DockerContextExtensions.cs

Lines changed: 10 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -10,26 +10,19 @@ public enum Architecture
1010

1111
public static class DockerContextExtensions
1212
{
13-
public static bool SkipImageForArtifacts(this ICakeContext context, DockerImage dockerImage)
13+
public static bool SkipImageTesting(this ICakeContext context, DockerImage dockerImage)
1414
{
1515
var (distro, targetFramework, architecture, _, _) = dockerImage;
1616

17-
if (architecture == Architecture.Amd64) return false;
18-
if (!Constants.DistrosToSkipForArtifacts.Contains(distro)) return false;
19-
20-
context.Information($"Skipping Target: {targetFramework}, Distro: {distro}, Arch: {architecture}");
21-
return true;
22-
}
23-
24-
public static bool SkipImageForDocker(this ICakeContext context, DockerImage dockerImage)
25-
{
26-
var (distro, targetFramework, architecture, _, _) = dockerImage;
27-
28-
if (architecture == Architecture.Amd64) return false;
29-
if (!Constants.DistrosToSkipForDocker.Contains(distro)) return false;
30-
31-
context.Information($"Skipping Target: {targetFramework}, Distro: {distro}, Arch: {architecture}");
32-
return true;
17+
switch (architecture)
18+
{
19+
case Architecture.Amd64:
20+
case Architecture.Arm64 when context.IsRunningOnArm64():
21+
return false;
22+
default:
23+
context.Information($"Skipping Target: {targetFramework}, Distro: {distro}, Arch: {architecture}");
24+
return true;
25+
}
3326
}
3427

3528
public static void DockerBuildImage(this BuildContextBase context, DockerImage dockerImage)

build/docker/Tasks/DockerBuild.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ public override void Run(BuildContext context)
2727

2828
foreach (var dockerImage in context.Images)
2929
{
30-
if (context.SkipImageForDocker(dockerImage)) continue;
3130
context.DockerBuildImage(dockerImage);
3231
}
3332
}

build/docker/Tasks/DockerPublish.cs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,6 @@ public override void Run(BuildContext context)
4545
{
4646
foreach (var dockerImage in context.Images)
4747
{
48-
if (context.SkipImageForDocker(dockerImage)) continue;
4948
context.DockerPushImage(dockerImage);
5049
}
5150
}

build/docker/Tasks/DockerTest.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ public override void Run(BuildContext context)
2323
{
2424
foreach (var dockerImage in context.Images)
2525
{
26-
if (context.SkipImageForDocker(dockerImage)) continue;
26+
if (context.SkipImageTesting(dockerImage)) continue;
2727
context.DockerTestImage(dockerImage);
2828
}
2929
}

0 commit comments

Comments
 (0)