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)); }
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); }