diff --git a/.woodpecker.star b/.woodpecker.star index 3d34d29ff7..8b70e0c2f6 100644 --- a/.woodpecker.star +++ b/.woodpecker.star @@ -1263,7 +1263,7 @@ def localApiTestPipeline(ctx): "name": pipeline_name, "steps": evaluateWorkflowStep() + restoreBuildArtifactCache(ctx, dirs["opencloudBinArtifact"], dirs["opencloudBinPath"]) + (tikaService() if params["tikaNeeded"] else []) + - (waitForServices("online-offices", ["collabora:9980", "onlyoffice:443", "fakeoffice:8080"]) if params["collaborationServiceNeeded"] else []) + + (waitForWebOffices(["https://collabora:9980", "https://onlyoffice", "http://fakeoffice:8080"]) if params["collaborationServiceNeeded"] else []) + (waitForClamavService() if params["antivirusNeeded"] else []) + (waitForEmailService() if params["emailNeeded"] else []) + (ldapService() if params["ldapNeeded"] else []) + @@ -3471,3 +3471,23 @@ def onlyofficeService(): ], }, ] + +def waitForWebOffices(services = []): + commands = [] + if not services: + return [] + + for service in services: + commands.append( + "timeout 300 bash -c " + + "'while [ `curl %s/hosting/discovery" % service + + " -w \"%{http_code}\" -o /dev/null -sk` != \"200\" ]; do " + + "echo \"Waiting...\" && sleep 2; done'", + ) + return [ + { + "name": "wait-for-weboffices", + "image": OC_CI_ALPINE, + "commands": commands, + }, + ] diff --git a/tests/acceptance/TestHelpers/HttpLogger.php b/tests/acceptance/TestHelpers/HttpLogger.php index 1569205869..ec3728d219 100644 --- a/tests/acceptance/TestHelpers/HttpLogger.php +++ b/tests/acceptance/TestHelpers/HttpLogger.php @@ -77,7 +77,7 @@ class HttpLogger { } $logMessage = "\t\t_______________________________________________________________________\n\n"; - $logMessage .= "\t\t==> REQUEST\n"; + $logMessage .= "\t\t==> REQUEST [" . self::getCurrentDateTime() . "]\n"; $logMessage .= "\t\t$method $path\n"; $logMessage .= $query ? "\t\tQUERY: $query\n" : ""; $logMessage .= "\t\t$headers"; @@ -105,7 +105,7 @@ class HttpLogger { $headers = $key . ": " . $value[0] . "\n"; } - $logMessage = "\t\t<== RESPONSE\n"; + $logMessage = "\t\t<== RESPONSE [" . self::getCurrentDateTime() . "]\n"; $logMessage .= "\t\t$statusCode $statusMessage\n"; $logMessage .= "\t\t$headers"; @@ -121,4 +121,13 @@ class HttpLogger { $logMessage = \rtrim($logMessage) . "\n\n"; self::writeLog(self::getScenarioLogPath(), $logMessage); } + + /** + * Returns current date and time in format: 1999-01-31T23:01:59 + * + * @return string + */ + public static function getCurrentDateTime(): string { + return date('Y-m-d\TG:i:s'); + } }