Exemplo n.º 1
0
    private static string DockerRunImage(this ICakeContext context, DockerContainerRunSettings settings, string image, string command, params string[] args)
    {
        if (string.IsNullOrEmpty(image))
        {
            throw new ArgumentNullException(nameof(image));
        }
        var           runner    = new GenericDockerRunner <DockerContainerRunSettings>(context.FileSystem, context.Environment, context.ProcessRunner, context.Tools);
        List <string> arguments = new()
        {
            image
        };

        if (!string.IsNullOrEmpty(command))
        {
            arguments.Add(command);
            if (args.Length > 0)
            {
                arguments.AddRange(args);
            }
        }

        var result = runner.RunWithResult("run", settings, r => r.ToArray(), arguments.ToArray());

        return(string.Join("\n", result));
    }
Exemplo n.º 2
0
    private static DockerContainerRunSettings GetDockerRunSettings(this BuildContextBase context, Architecture arch)
    {
        var currentDir = context.MakeAbsolute(context.Directory("."));
        var root       = string.Empty;
        var settings   = new DockerContainerRunSettings
        {
            Rm     = true,
            Volume = new[]
            {
                $"{currentDir}:{root}/repo",
                $"{currentDir}/tests/scripts:{root}/scripts",
                $"{currentDir}/artifacts/packages/nuget:{root}/nuget",
                $"{currentDir}/artifacts/packages/native:{root}/native",
            },
            Platform = $"linux/{arch.ToString().ToLower()}"
        };

        if (context.IsAzurePipelineBuild)
        {
            settings.Env = new[]
            {
                "TF_BUILD=true",
                $"BUILD_SOURCEBRANCH={context.EnvironmentVariable("BUILD_SOURCEBRANCH")}"
            };
        }
        if (context.IsGitHubActionsBuild)
        {
            settings.Env = new[]
            {
                "GITHUB_ACTIONS=true",
                $"GITHUB_REF={context.EnvironmentVariable("GITHUB_REF")}"
            };
        }

        return(settings);
    }