-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy pathDockerBuildImagesManifest.cs
33 lines (30 loc) · 1.14 KB
/
DockerBuildImagesManifest.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
namespace Build;
using DockerBuildXImageToolsCreateSettings = Build.Cake.Docker.DockerBuildXImageToolsCreateSettings;
[TaskName(nameof(DockerBuildImagesManifest))]
[TaskDescription("Builds the docker images manifest")]
public class DockerBuildImagesManifest : BaseDockerBuildManifest
{
public override void Run(BuildContext context)
{
if (!context.PushImages)
return;
// build/push manifests
foreach (var group in context.Images.GroupBy(x => new { x.Distro, x.Variant, x.Version }))
{
var dockerImage = group.First();
DockerManifest(context, dockerImage);
}
}
protected override DockerBuildXImageToolsCreateSettings GetManifestSettings(DockerDepsImage dockerImage, string tag)
{
var (distro, version, variant, _) = (DockerImage)dockerImage;
var suffix = $"({distro}-{variant}-{version})";
var settings = base.GetManifestSettings(dockerImage, tag);
settings.Annotation =
[
.. settings.Annotation,
$"index:{Prefix}.description=GitTools build images {suffix}",
];
return settings;
}
}