diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c1225fbf4e..258405d68e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -62,11 +62,14 @@ jobs: strategy: fail-fast: false matrix: - arch: [ amd64, arm64 ] - + include: + - arch: amd64 + runner: ubuntu-latest + - arch: arm64 + runner: ubuntu-latest uses: ./.github/workflows/_artifacts_linux.yml with: - runner: ubuntu-latest + runner: ${{ matrix.runner }} arch: ${{ matrix.arch }} docker_linux_images: @@ -75,11 +78,15 @@ jobs: strategy: fail-fast: false matrix: - arch: [ amd64, arm64 ] + include: + - arch: amd64 + runner: ubuntu-latest + - arch: arm64 + runner: ubuntu-latest uses: ./.github/workflows/_docker.yml with: - runner: ubuntu-latest + runner: ${{ matrix.runner }} arch: ${{ matrix.arch }} secrets: inherit diff --git a/build/artifacts/BuildLifetime.cs b/build/artifacts/BuildLifetime.cs index fc8b003cca..247969238a 100644 --- a/build/artifacts/BuildLifetime.cs +++ b/build/artifacts/BuildLifetime.cs @@ -19,7 +19,7 @@ public override void Setup(BuildContext context, ISetupContext info) var distros = string.IsNullOrWhiteSpace(dockerDistro) ? Constants.DockerDistrosToBuild : [dockerDistro]; var architectures = context.HasArgument(Arguments.Architecture) ? context.Arguments(Arguments.Architecture) : Constants.ArchToBuild; - + var platformArch = context.IsRunningOnAmd64() ? Architecture.Amd64 : Architecture.Arm64; var registry = dockerRegistry == DockerRegistry.DockerHub ? Constants.DockerHubRegistry : Constants.GitHubContainerRegistry; context.Images = from version in versions @@ -32,7 +32,8 @@ from arch in architectures LogBuildInformation(context); context.Information($"IsDockerOnLinux: {context.IsDockerOnLinux}"); - context.Information($"Building for Version: {dotnetVersion}, Distro: {dockerDistro}"); + context.Information($"Building for Version: {dotnetVersion}, Distro: {dockerDistro}, Architecture: {platformArch}"); + context.EndGroup(); } } diff --git a/build/docker/BuildLifetime.cs b/build/docker/BuildLifetime.cs index e54bdf7962..b368ee58b4 100644 --- a/build/docker/BuildLifetime.cs +++ b/build/docker/BuildLifetime.cs @@ -14,7 +14,6 @@ public override void Setup(BuildContext context, ISetupContext info) context.IsDockerOnLinux = context.DockerCustomCommand("info --format '{{.OSType}}'").First().Replace("'", "") == "linux"; - var architectures = context.HasArgument(Arguments.Architecture) ? context.Arguments(Arguments.Architecture) : Constants.ArchToBuild; var dockerRegistry = context.Argument(Arguments.DockerRegistry, DockerRegistry.DockerHub); var dotnetVersion = context.Argument(Arguments.DockerDotnetVersion, string.Empty).ToLower(); var dockerDistro = context.Argument(Arguments.DockerDistro, string.Empty).ToLower(); @@ -22,7 +21,11 @@ public override void Setup(BuildContext context, ISetupContext info) var versions = string.IsNullOrWhiteSpace(dotnetVersion) ? Constants.VersionsToBuild : [dotnetVersion]; var distros = string.IsNullOrWhiteSpace(dockerDistro) ? Constants.DockerDistrosToBuild : [dockerDistro]; + var architectures = context.HasArgument(Arguments.Architecture) ? context.Arguments(Arguments.Architecture) : Constants.ArchToBuild; + var platformArch = context.IsRunningOnAmd64() ? Architecture.Amd64 : Architecture.Arm64; + var registry = dockerRegistry == DockerRegistry.DockerHub ? Constants.DockerHubRegistry : Constants.GitHubContainerRegistry; + context.DockerRegistry = dockerRegistry; context.Architectures = architectures; context.Images = from version in versions @@ -35,7 +38,7 @@ from arch in architectures LogBuildInformation(context); context.Information($"IsDockerOnLinux: {context.IsDockerOnLinux}"); - context.Information($"Building for Version: {dotnetVersion}, Distro: {dockerDistro}"); + context.Information($"Building for Version: {dotnetVersion}, Distro: {dockerDistro}, Architecture: {platformArch}"); context.EndGroup(); } } diff --git a/build/docker/Tasks/DockerManifest.cs b/build/docker/Tasks/DockerManifest.cs index 1b15a27101..0d94df2758 100644 --- a/build/docker/Tasks/DockerManifest.cs +++ b/build/docker/Tasks/DockerManifest.cs @@ -45,8 +45,7 @@ public override void Run(BuildContext context) foreach (var group in context.Images.GroupBy(x => new { x.Distro, x.TargetFramework })) { var amd64DockerImage = group.First(x => x.Architecture == Architecture.Amd64); - var skipArm64 = context.Architectures.Contains(Architecture.Arm64); - context.DockerCreateManifest(amd64DockerImage, skipArm64); + context.DockerCreateManifest(amd64DockerImage); context.DockerPushManifest(amd64DockerImage); } }