Jaypore CI

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

run.sh (2323B)


      1 #!/bin/bash
      2 set -euo pipefail
      3 
      4 # ── Auto-Update Dependencies ─────────────────────────────────────────
      5 # Scheduled at midnight via .jci/crontab.
      6 # Updates all pip packages, runs the test suite, and reports results.
      7 # ─────────────────────────────────────────────────────────────────────
      8 
      9 cd "$JCI_REPO_ROOT"
     10 
     11 echo "==> Snapshot current dependency versions"
     12 pip3 freeze 2>/dev/null > "$JCI_OUTPUT_DIR/before-update.txt"
     13 
     14 echo "==> Upgrading packages from requirements.txt"
     15 pip3 install --break-system-packages --upgrade -r requirements.txt 2>&1 | tee "$JCI_OUTPUT_DIR/upgrade-log.txt" || true
     16 
     17 echo "==> Snapshot new dependency versions"
     18 pip3 freeze 2>/dev/null > "$JCI_OUTPUT_DIR/after-update.txt"
     19 
     20 echo "==> Dependency diff"
     21 if diff "$JCI_OUTPUT_DIR/before-update.txt" "$JCI_OUTPUT_DIR/after-update.txt" \
     22      > "$JCI_OUTPUT_DIR/dep-diff.txt" 2>&1; then
     23     echo "No dependency changes."
     24 else
     25     echo "Changed packages:"
     26     cat "$JCI_OUTPUT_DIR/dep-diff.txt"
     27 fi
     28 
     29 echo "==> Running test suite"
     30 if python3 manage.py test core --no-input 2>&1 | tee "$JCI_OUTPUT_DIR/test-results.txt"; then
     31     echo "==> Tests passed after update"
     32 
     33     # Freeze the verified versions back into requirements.txt
     34     # In a real setup, you'd commit updated requirements:
     35     # pip3 freeze > requirements.txt && git add requirements.txt && git commit -m "chore: auto-update deps"
     36     echo "Dependencies verified — would commit in a real workflow"
     37 
     38     echo "SUCCESS" > "$JCI_OUTPUT_DIR/status.txt"
     39 else
     40     echo "==> Tests FAILED after update"
     41     echo "The following packages were updated:" > "$JCI_OUTPUT_DIR/failure-report.txt"
     42     cat "$JCI_OUTPUT_DIR/dep-diff.txt"        >> "$JCI_OUTPUT_DIR/failure-report.txt"
     43     echo ""                                    >> "$JCI_OUTPUT_DIR/failure-report.txt"
     44     echo "Test output:"                        >> "$JCI_OUTPUT_DIR/failure-report.txt"
     45     cat "$JCI_OUTPUT_DIR/test-results.txt"     >> "$JCI_OUTPUT_DIR/failure-report.txt"
     46 
     47     echo "Failure report:"
     48     cat "$JCI_OUTPUT_DIR/failure-report.txt"
     49 
     50     echo "FAILURE" > "$JCI_OUTPUT_DIR/status.txt"
     51     exit 1
     52 fi