Jaypore CI

> Jaypore CI: Minimal, Offline, Local CI system.
Log | Files | Refs | README | LICENSE

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"