示例#1
0
    public static void DockerPullImage(this ICakeContext context, DockerImage dockerImage)
    {
        var tag      = $"{dockerImage.DockerImageName()}:{dockerImage.Distro}-sdk-{dockerImage.TargetFramework}";
        var platform = $"linux/{dockerImage.Architecture.ToString().ToLower()}";

        context.DockerPull(new DockerImagePullSettings {
            Platform = platform
        }, tag);
    }
示例#2
0
    private static IEnumerable <string> GetDockerTags(this BuildContextBase context, DockerImage dockerImage, Architecture?arch = null)
    {
        var name            = dockerImage.DockerImageName();
        var distro          = dockerImage.Distro;
        var targetFramework = dockerImage.TargetFramework;

        if (context.Version == null)
        {
            return(Enumerable.Empty <string>());
        }
        var tags = new List <string>
        {
            $"{name}:{context.Version.Version}-{distro}-{targetFramework}",
            $"{name}:{context.Version.SemVersion}-{distro}-{targetFramework}",
        };

        if (distro == Constants.DockerDistroLatest && targetFramework == Constants.Version50)
        {
            tags.AddRange(new[]
            {
                $"{name}:{context.Version.Version}",
                $"{name}:{context.Version.SemVersion}",

                $"{name}:{context.Version.Version}-{distro}",
                $"{name}:{context.Version.SemVersion}-{distro}"
            });

            if (context.IsStableRelease)
            {
                tags.AddRange(new[]
                {
                    $"{name}:latest",
                    $"{name}:latest-{targetFramework}",
                    $"{name}:latest-{distro}",
                    $"{name}:latest-{distro}-{targetFramework}",
                });
            }
        }

        if (!arch.HasValue)
        {
            return(tags.Distinct());
        }

        var suffix = arch.Value.ToSuffix();

        return(tags.Select(x => $"{x}-{suffix}").Distinct());
    }
示例#3
0
    public static void DockerTestArtifact(this BuildContextBase context, DockerImage dockerImage, string cmd)
    {
        var tag = $"{dockerImage.DockerImageName()}:{dockerImage.Distro}-sdk-{dockerImage.TargetFramework}";

        context.DockerTestRun(tag, dockerImage.Architecture, "sh", cmd);
    }