From 6f8d55dcb8c1a4462c57d4ce2a2739a0eb2c5cfd Mon Sep 17 00:00:00 2001 From: joanna Date: Mon, 5 Sep 2022 23:50:49 +0200 Subject: [PATCH] wip --- .../ContainerOperationProvider.cs | 22 +++++++++++++++++-- src/Runner.Worker/JobExtension.cs | 2 +- src/runnerversion | 2 +- 3 files changed, 22 insertions(+), 4 deletions(-) diff --git a/src/Runner.Worker/ContainerOperationProvider.cs b/src/Runner.Worker/ContainerOperationProvider.cs index 73472795c..3cb2f6197 100644 --- a/src/Runner.Worker/ContainerOperationProvider.cs +++ b/src/Runner.Worker/ContainerOperationProvider.cs @@ -134,7 +134,6 @@ namespace GitHub.Runner.Worker ArgUtil.NotNull(executionContext, nameof(executionContext)); ArgUtil.NotNull(container, nameof(container)); ArgUtil.NotNullOrEmpty(container.ContainerImage, nameof(container.ContainerImage)); - Trace.Info($"Container name: {container.ContainerName}"); Trace.Info($"Container image: {container.ContainerImage}"); Trace.Info($"Container options: {container.ContainerCreateOptions}"); @@ -197,6 +196,8 @@ namespace GitHub.Runner.Worker container.ContainerId = await _dockerManager.DockerCreate(executionContext, container); ArgUtil.NotNullOrEmpty(container.ContainerId, nameof(container.ContainerId)); + + // Start container int startExitCode = await _dockerManager.DockerStart(executionContext, container.ContainerId); @@ -207,20 +208,37 @@ namespace GitHub.Runner.Worker try { + // Make sure container is up and running var psOutputs = await _dockerManager.DockerPS(executionContext, $"--all --filter id={container.ContainerId} --filter status=running --no-trunc --format \"{{{{.ID}}}} {{{{.Status}}}}\""); + if (psOutputs.FirstOrDefault(x => !string.IsNullOrEmpty(x))?.StartsWith(container.ContainerId) != true) { // container is not up and running, pull docker log for this container. await _dockerManager.DockerPS(executionContext, $"--all --filter id={container.ContainerId} --no-trunc --format \"{{{{.ID}}}} {{{{.Status}}}}\""); + + + //executionContext.Output("##[group]Getting docker logs.."); + int logsExitCode = await _dockerManager.DockerLogs(executionContext, container.ContainerId); + if (logsExitCode != 0) { executionContext.Warning($"Docker logs fail with exit code {logsExitCode}"); } - + //executionContext.Output("##[endgroup]"); executionContext.Warning($"Docker container {container.ContainerId} is not in running state."); } + else { + executionContext.Output($"##[group]Container {container.ContainerId} is not running!"); + string opt = "--format=\'{{.State.ExitCode}}\'"; + await _dockerManager.DockerInspect(executionContext, container.ContainerId, opt); + await _dockerManager.DockerLogs(executionContext, container.ContainerId); + //if exit code is not 0 we can maybe print a message? + //executionContext.Output("Container exit code: "); + + executionContext.Output("##[endgroup]"); + } } catch (Exception ex) { diff --git a/src/Runner.Worker/JobExtension.cs b/src/Runner.Worker/JobExtension.cs index 09bbdd479..b43b9f647 100644 --- a/src/Runner.Worker/JobExtension.cs +++ b/src/Runner.Worker/JobExtension.cs @@ -279,7 +279,7 @@ namespace GitHub.Runner.Worker preJobSteps.Add(new JobExtensionRunner(runAsync: containerProvider.StartContainersAsync, condition: $"{PipelineTemplateConstants.Success}()", - displayName: "Initialize containers", + displayName: "**Initialize containers**", data: (object)containers)); } diff --git a/src/runnerversion b/src/runnerversion index f7b71d481..d6cec8685 100644 --- a/src/runnerversion +++ b/src/runnerversion @@ -1 +1 @@ -2.296.1 +2.296.1 \ No newline at end of file