feat: self-hosted LLM backend — point all workflows at the Jetson (Ollama, model=coder)

The Jetson Orin Nano (JetPack 7.2, Ollama on GPU) is live, so ci-ai runs fully
self-hosted: no Anthropic key, no cloud, no per-PR cost. AI_PROVIDER=ollama,
AI_BASE_URL=http://192.168.178.103:11434/v1. The Pi runner reaches it LAN-direct
(SNAT to .48, allowed by the Jetson UFW). Removed the dead ANTHROPIC_API_KEY
secret declarations.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-06-12 21:58:07 +02:00
parent eb0437b0ed
commit 2ae14a51e4
7 changed files with 26 additions and 40 deletions

View File

@@ -3,7 +3,7 @@
# Läuft auf dem Pi-Runner (capacity 1, ~3-4 GB RAM) -> Memory-Cap + schlankes
# python-Image. KEINE JS-Actions (kein node nötig): ci-ai wird manuell geklont,
# git.eulernest.eu löst per Runner-add-host auf die LAN-IP auf. Ohne
# ANTHROPIC_API_KEY überspringt das Skript den KI-Schritt sauber (Job bleibt grün).
# Das KI-Backend ist die Jetson-Ollama (self-hosted, LAN-direkt, kein Key).
name: AI PR Review
on:
@@ -26,15 +26,10 @@ jobs:
- name: KI-Review (überspringt sauber ohne Key)
env:
AI_PROVIDER: anthropic
AI_MODEL: claude-3-5-haiku-latest
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
AI_PROVIDER: ollama
AI_MODEL: coder
AI_BASE_URL: http://192.168.178.103:11434/v1
GITEA_TOKEN: ${{ github.token }}
GITEA_API: https://git.eulernest.eu/api/v1
run: python /opt/ci-ai/scripts/ai_review.py
# Jetson-Umstieg später (kein Code-Change, nur diese env):
# AI_PROVIDER: ollama
# AI_MODEL: qwen-light
# AI_BASE_URL: http://192.168.178.20:11434/v1
# JETSON_API_KEY: ${{ secrets.JETSON_API_KEY }}

View File

@@ -12,8 +12,8 @@
# Voraussetzungen (einmalig zentral eingerichtet):
# 1. Runner instanzweit registriert (Label `eulernest`)
# 2. anonymer Clone für public Repos erlaubt
# 3. ANTHROPIC_API_KEY als Org-/Instanz-Actions-Secret (für die KI-Schritte;
# ohne ihn laufen die Scans, die KI-Teile überspringen sich sauber)
# 3. KI-Backend = Jetson-Ollama (LAN, self-hosted). Kein Secret nötig; die
# Jetson-UFW lässt den Pi-Runner (.48) an Port 11434. Modell: coder.
# 4. für „hart blockieren": den `security`-Check in der Branch-Protection
# als required markieren
name: CI-AI

View File

@@ -26,9 +26,9 @@
# run: apt-get update -qq && apt-get install -y -qq --no-install-recommends git ca-certificates
# - name: KI-Analyse
# env:
# AI_PROVIDER: anthropic
# AI_MODEL: claude-3-5-haiku-latest
# ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
# AI_PROVIDER: ollama
# AI_MODEL: coder
# AI_BASE_URL: http://192.168.178.103:11434/v1
# GITEA_TOKEN: ${{ github.token }}
# GITEA_API: https://git.eulernest.eu/api/v1
# run: |

View File

@@ -53,9 +53,9 @@ jobs:
- name: KI erklärt die Funde (nur bei Fehler, überspringt ohne Key)
if: failure()
env:
AI_PROVIDER: anthropic
AI_MODEL: claude-3-5-haiku-latest
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
AI_PROVIDER: ollama
AI_MODEL: coder
AI_BASE_URL: http://192.168.178.103:11434/v1
GITEA_TOKEN: ${{ github.token }}
GITEA_API: https://git.eulernest.eu/api/v1
run: |