From 0570f2ecea02c53edcb1a9a947dc4280a09713ad Mon Sep 17 00:00:00 2001 From: Saw-jan Date: Mon, 26 Jan 2026 18:09:40 +0545 Subject: [PATCH] ci: check discovery urls Signed-off-by: Saw-jan --- .woodpecker.star | 22 ++++++++++++++++++++- tests/acceptance/TestHelpers/HttpLogger.php | 6 +++--- 2 files changed, 24 insertions(+), 4 deletions(-) diff --git a/.woodpecker.star b/.woodpecker.star index 3d34d29ff..8b70e0c2f 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 d63f5fed0..ec3728d21 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 [" . self::getDateTime() . "]\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 [" . self::getDateTime() . "]\n"; + $logMessage = "\t\t<== RESPONSE [" . self::getCurrentDateTime() . "]\n"; $logMessage .= "\t\t$statusCode $statusMessage\n"; $logMessage .= "\t\t$headers"; @@ -127,7 +127,7 @@ class HttpLogger { * * @return string */ - public static function getDateTime(): string { + public static function getCurrentDateTime(): string { return date('Y-m-d\TG:i:s'); } }