run.sh (1409B)
1 #!/bin/bash 2 set -o pipefail 3 4 cd "$JCI_REPO_ROOT" || exit 1 5 6 REPO_NAME=$(basename "$JCI_REPO_ROOT") 7 TIMESTAMP=$(date '+%Y-%m-%d %H:%M:%S') 8 SHORT_COMMIT=$(echo "$JCI_COMMIT" | head -c 7) 9 10 # ── Run Django tests ───────────────────────────────────────── 11 TEST_OUTPUT=$(python3 manage.py test core 2>&1) 12 TEST_EXIT=$? 13 14 # ── Save results to output dir ─────────────────────────────── 15 echo "$TEST_OUTPUT" > "$JCI_OUTPUT_DIR/test_output.txt" 16 echo "$TEST_EXIT" > "$JCI_OUTPUT_DIR/exit_code.txt" 17 18 if [ "$TEST_EXIT" -eq 0 ]; then 19 STATUS="✅ PASSED" 20 else 21 STATUS="❌ FAILED" 22 fi 23 24 # ── Send Telegram notification ─────────────────────────────── 25 MESSAGE=$(cat <<EOF 26 *Midnight Build Report* 27 28 Repo: \`${REPO_NAME}\` 29 Commit: \`${SHORT_COMMIT}\` 30 Status: ${STATUS} 31 Timestamp: ${TIMESTAMP} 32 EOF 33 ) 34 35 if [ -n "$TELEGRAM_BOT_TOKEN" ] && [ -n "$TELEGRAM_CHAT_ID" ]; then 36 curl -s -X POST \ 37 "https://api.telegram.org/bot${TELEGRAM_BOT_TOKEN}/sendMessage" \ 38 -d chat_id="$TELEGRAM_CHAT_ID" \ 39 -d text="$MESSAGE" \ 40 -d parse_mode="Markdown" \ 41 > /dev/null 42 else 43 echo "WARNING: TELEGRAM_BOT_TOKEN or TELEGRAM_CHAT_ID not set, skipping notification" 44 fi 45 46 exit "$TEST_EXIT"