#!/bin/bash
# Declare variables
DATE="`date +%d%m%Y-%H%M%S`"
MSG_URL="https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/sendMessage"
DOC_URL="https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/sendDocument"
COMMIT_URL="https://gitlab.com/AuroraOSS/AuroraStore/-/commit/$CI_COMMIT_SHA"
TEXT="New+commit+to+[*${CI_PROJECT_NAME}*](${CI_PROJECT_URL})%0A[*⚒️+Building*](${CI_JOB_URL})+with+HEAD+at+[*${CI_COMMIT_SHORT_SHA}*](${COMMIT_URL})"
# send message to Telegram channel for first job
function tg_build_start()
{
echo -e "*****************************************************"
echo " APK build script & Telegram notify "
echo -e "*****************************************************"
echo "Sending build text to Telegram channel..."
BUILD_START=$(date +"%s")
curl -s -X POST $MSG_URL -d chat_id=$TELEGRAM_CHAT_ID \
-d "disable_web_page_preview=true" \
-d "parse_mode=MarkdownV2" \
-d text=$TEXT
BUILD_END=$(date +"%s")
DIFF=$(($BUILD_END - $BUILD_START))
echo "Message sent!"
}
# NOTES: $CI_COMMIT_AUTHOR and $CI_COMMIT_BRANCH won't work due to Telegram's awful Markdown flavour.
function tg_build_data()
{
echo "Sending build data to Telegram channel..."
if [ -f app/build/outputs/apk/debug/app-debug.apk ]; then
cp app/build/outputs/apk/debug/app-debug.apk app/build/outputs/apk/debug/AuroraStore_CI_$DATE.apk
cd app/build/outputs/apk/debug/
APK=$(echo AuroraStore_CI_*.apk)
curl -F document=@"$APK" $DOC_URL \
-F chat_id=$TELEGRAM_CHAT_ID \
-F "disable_web_page_preview=true" \
-F "parse_mode=html" \
-F caption="✅ CI build completed successfully!"
rm -rf app/build/outputs/apk
else
curl -s -X POST $MSG_URL -d chat_id=$TELEGRAM_CHAT_ID \
-d "disable_web_page_preview=true" \
-d "parse_mode=html" \
-d text="❌ Build error, exiting now!"
fi
echo "Data sent!"
}
function tg_push_error()
{
curl -s -X POST $MSG_URL -d chat_id=$TELEGRAM_CHAT_ID -d "disable_web_page_preview=true" -d "parse_mode=html&text=❌ Build failed after $(($DIFF / 60)) minute(s) and $(($DIFF % 60)) second(s)."
}
function tg_push_log()
{
LOG=ci-logs.log
curl -F document=@"$LOG" $MSG_URL \
-F chat_id="$TELEGRAM_CHAT_ID" \
-F "disable_web_page_preview=true" \
-F "parse_mode=html" \
-F caption="Build logs for $CI_PROJECT_NAME - $DATE, took $(($DIFF / 60)) minute(s) and $(($DIFF % 60)) second(s). @austinhornhead_12"
}
for i in "$@"
do
case $i in
--build)
tg_build_start
shift
;;
--notify)
tg_build_data
shift
;;
--logs)
tg_push_error
tg_push_log
shift
;;
*)
echo "Use available commands: --build, --notify & --logs"
exit
esac
done