diff --git a/bin/publish-latest-branch-build.php b/bin/publish-latest-branch-build.php index f98022c..6e8e9da 100755 --- a/bin/publish-latest-branch-build.php +++ b/bin/publish-latest-branch-build.php @@ -1,320 +1,326 @@ #!/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_document_id) && empty(getenv('NO_COMMENT'))) { +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("https://gitpull.it/$phorge_document_id"), + 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. - // 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. - ]); - - 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. On the commit page? Uhm. To be tested. -// $phorge_chat_content = implode("\n", [ -// "{icon gear spin} Bip bop I'm a bot. Here fresh Android builds:", + // 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"), // "", -// // The texts in these links are already escaped. -// $phorge_apk_lines_str, +// TelegramStupidSDK::escapeMarkdownV2("Here the related fresh test builds:"), +// "", +// $telegram_apk_lines_str, // This is already Telegram-escaped. // ]); -// $differential_args = [ -// 'objectIdentifier' => $phorge_document_id, -// 'transactions' => [ -// [ -// 'type' => 'comment', -// 'value' => $phorge_chat_content, -// ], -// ], -// ]; -// $phorge_result = $phorge_api->callMethodSynchronous('diffusion.commit.edit', $differential_args); +// +// // 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");