diff --git a/bin/publish-latest-branch-build.php b/bin/publish-latest-branch-build.php index 6e8e9da..67ac2d4 100755 --- a/bin/publish-latest-branch-build.php +++ b/bin/publish-latest-branch-build.php @@ -1,326 +1,327 @@ #!/usr/bin/env php getABI()) { $phorge_apk_lines[] = sprintf( "APK for **%s**: %s", $generated_apk->getABI(), $generated_apk->getPhorgeDownloadLink() ); // TODO: understand why Telegram does not render as bold text lol. $telegram_apk_lines[] = sprintf( "APK for **%s**", TelegramStupidSDK::escapeMarkdownV2($generated_apk->getABI()) ); } foreach ($generated_apk->getTelegramCommentLines() as $apk_line) { $telegram_apk_lines[] = $apk_line; } $telegram_apk_lines[] = ""; foreach ($generated_apk->getPhorgeCommentLines() as $apk_line) { $phorge_apk_lines[] = $apk_line; $phorge_apk_lines[] = ""; } } $telegram_apk_lines_str = implode("\n", $telegram_apk_lines); $phorge_apk_lines_str = implode("\n", $phorge_apk_lines); $phorge_api = new ConduitClient($PHORGE_API_URL); $phorge_api->setConduitToken($PHORGE_API_TOKEN); // add a comment to the build URL if (!empty($phorge_differential_id) && empty(getenv('NO_COMMENT'))) { // We have a Differentials revision under review! $telegram_chat_content = implode("\n", [ // In Telegram, normal text must be escaped. Link destinations must not be escaped. - TelegramStupidSDK::escapeMarkdownV2("⚙ Dear Android hackers, please review this promising patch:"), + TelegramStupidSDK::escapeMarkdownV2("⚙ Dear Android hackers, please test, review and accept:"), + "**" . TelegramStupidSDK::escapeMarkdownV2($git_commit_title) . "**", TelegramStupidSDK::escapeMarkdownV2("https://gitpull.it/$phorge_differential_id"), "", TelegramStupidSDK::escapeMarkdownV2("Here the related fresh test builds:"), "", // The texts in these links are already escaped. $telegram_apk_lines_str, ]); // Send message to Telegram groups. echo "DEBUG TELEGRAM CONTENT\n"; echo "$telegram_chat_content\n"; // Send message to your default Telegram group. // See the TELEGRAM_* environment variables. (new TelegramStupidSDK())->sendMessage($telegram_chat_content); // Publish comment on Phorge too. $phorge_chat_content = implode("\n", [ "Bip bop I'm a bot. Here fresh Android builds {icon cog spin}", "", $phorge_apk_lines_str, ]); $differential_args = [ 'objectIdentifier' => $phorge_document_id, 'transactions' => [ [ 'type' => 'comment', 'value' => $phorge_chat_content, ], ], ]; $phorge_result = $phorge_api->callMethodSynchronous('differential.revision.edit', $differential_args); } elseif (empty(getenv('NO_COMMENT'))) { // We have NOT a Differentials revision under review! // So this is an atomic commit. // Avoid to spam the Telegram chat for post-review commits. // // Escape everything since Telegram markdown is nonsense lol. // $telegram_chat_content = implode("\n", [ // TelegramStupidSDK::escapeMarkdownV2("🌚 New commit: *$git_commit_title*"), // TelegramStupidSDK::escapeMarkdownV2("https://gitpull.it/R4:$git_commit"), // "", // TelegramStupidSDK::escapeMarkdownV2("Here the related fresh test builds:"), // "", // $telegram_apk_lines_str, // This is already Telegram-escaped. // ]); // // // Send message to your default Telegram group. // // See the TELEGRAM_* environment variables. // (new TelegramStupidSDK())->sendMessage($telegram_chat_content); // Publish comment on Phorge too. On the commit page? Uhm. To be tested. print_log_info("Publishing Phorge comment on page '$phorge_document_id' and approve commit."); $phorge_chat_content = implode("\n", [ "{icon gear spin} Bip bop I'm a bot. Here fresh Android builds:", "", // The texts in these links are already escaped. $phorge_apk_lines_str, ]); $differential_args = [ 'objectIdentifier' => $phorge_document_id, 'transactions' => [ [ 'type' => 'comment', 'value' => $phorge_chat_content, ], // The fact that an APK was built is something sufficiently great, so the bot marks the commit as "Accepted". [ 'type' => 'accept', 'value' => true, ], ], ]; $phorge_result = $phorge_api->callMethodSynchronous('diffusion.commit.edit', $differential_args); } // delete very old files print_log_info("Cleaning old artifacts"); shell_exec(sprintf( "find %s -type f -mtime +120 -delete", escapeshellarg($ARTIFACTS_PATH) )); print_log_info("Done");