on master help sign in
better error reporting
407dddeiko
src/Data/Tasks/Build.hs+17−6
@@ -90,7 +90,7 @@ instance Task Build "build-repo" where
90 ExceptT $ D.buildImageFromDockerfile (D.defaultBuildOpts imageName) absDir
90 ExceptT $ D.buildImageFromDockerfile (D.defaultBuildOpts imageName) absDir
91 ExceptT $ D.createContainer opts Nothing
91 ExceptT $ D.createContainer opts Nothing
92 dockerRes <- fmap (either id id)
92 dockerRes <- fmap (either id id)
93− . race (liftIO (threadDelay (timeoutMinutes * 60000000)) >> return (ExitFailure 1, "Time out"))
93+ . race (liftIO (threadDelay (timeoutMinutes * 60000000)) >> return (ExitFailure 1, "Time out", "Time out"))
94 $ flip
94 $ flip
95 finally
95 finally
96 ( runDocker $
96 ( runDocker $
@@ -114,10 +114,21 @@ instance Task Build "build-repo" where
114 tail = D.All
114 tail = D.All
115 }
115 }
116 cid
116 cid
117+ buildErr <-
118+ ExceptT $
119+ D.getContainerLogs
120+ D.LogOpts
121+ { stdout = True,
122+ stderr = True,
123+ since = Nothing,
124+ timestamps = False,
125+ tail = D.All
126+ }
127+ cid
117− return (buildCode, buildOut)
128+ return (buildCode, buildOut, buildErr)
118 case dockerRes of
129 case dockerRes of
119− (ExitFailure n, buildOut) -> do
130+ (ExitFailure n, _, buildErr) -> do
120− let err = BS.unpack buildOut
131+ let err = BS.unpack buildErr
121 logError . T.pack $
132 logError . T.pack $
122 "test command for repo " <> show fullRepoName <> " at sha "
133 "test command for repo " <> show fullRepoName <> " at sha "
123 <> show sha
134 <> show sha
@@ -127,7 +138,7 @@ instance Task Build "build-repo" where
127 <> err
138 <> err
128 scheduleFailedStatus err owner repoName sha
139 scheduleFailedStatus err owner repoName sha
129 updateSubmissionStatus fullRepoName sha' (SubmissionFailed err)
140 updateSubmissionStatus fullRepoName sha' (SubmissionFailed err)
130− (ExitSuccess, buildOut) ->
141+ (ExitSuccess, buildOut, _) ->
131 case eitherDecode' (BS.dropWhile (/= '{') buildOut) of
142 case eitherDecode' (BS.dropWhile (/= '{') buildOut) of
132 Left err' -> do
143 Left err' -> do
133 let err = err' <> " " <> BS.unpack buildOut
144 let err = err' <> " " <> BS.unpack buildOut
@@ -138,7 +149,7 @@ instance Task Build "build-repo" where
138 <> ": "
149 <> ": "
139 <> err
150 <> err
140 scheduleFailedStatus err owner repoName sha
151 scheduleFailedStatus err owner repoName sha
141− updateSubmissionStatus fullRepoName sha' (SubmissionFailed err)
152+ updateSubmissionStatus fullRepoName sha' (SubmissionFailed (err <> BS.unpack buildOut))
142 Right testResult@TestResult {..} -> do
153 Right testResult@TestResult {..} -> do
143 scheduleTestedStatus testResult owner repoName sha
154 scheduleTestedStatus testResult owner repoName sha
144 updateSubmissionStatus fullRepoName sha' (SubmissionRun testResult)
155 updateSubmissionStatus fullRepoName sha' (SubmissionRun testResult)