Compare commits
3 Commits
759e47fc1f
...
v0.8.7-bet
| Author | SHA1 | Date | |
|---|---|---|---|
| 586ddceff6 | |||
| 4b9b7f0995 | |||
| 3d73b1e6a7 |
@@ -41,7 +41,7 @@ from app.infrastructure.onemin_adapter import OneMinAiLLMProvider
|
||||
app = FastAPI(
|
||||
title="LoreMind Brain",
|
||||
description="Backend IA pour la génération de contenu narratif.",
|
||||
version="0.8.5",
|
||||
version="0.8.7-beta",
|
||||
)
|
||||
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
|
||||
<groupId>com.loremind</groupId>
|
||||
<artifactId>loremind-core</artifactId>
|
||||
<version>0.8.5</version>
|
||||
<version>0.8.7-beta</version>
|
||||
<name>LoreMind Core</name>
|
||||
<description>Backend Core - Architecture Hexagonale</description>
|
||||
|
||||
|
||||
@@ -202,6 +202,10 @@ services:
|
||||
- ${COMPOSE_PROJECT_DIR:-./}:/compose
|
||||
# Volume partage avec le Core pour la commande + le resultat.
|
||||
- switcher-data:/data
|
||||
# Volume partage avec le Core + Watchtower : contient config.json avec
|
||||
# les creds GHCR (ecrits par le Core a partir du token Patreon).
|
||||
# Indispensable pour pull les images privees du canal beta.
|
||||
- docker-config:/shared/docker
|
||||
environment:
|
||||
# Repertoire interne ou trouver docker-compose.yml et .env. Bind au
|
||||
# volume ci-dessus (COMPOSE_PROJECT_DIR = repertoire d'install du host).
|
||||
@@ -210,6 +214,9 @@ services:
|
||||
# le MEME stack que celui qui tourne (sinon il creerait un duplicate).
|
||||
# Doit matcher le `name:` (en V2.x) ou le nom du dossier du host.
|
||||
COMPOSE_PROJECT_NAME: ${COMPOSE_PROJECT_NAME:-loremind}
|
||||
# Indique au CLI Docker du switcher ou trouver config.json (auth GHCR
|
||||
# pour les images privees beta). Meme mecanisme que sur Watchtower.
|
||||
DOCKER_CONFIG: /shared/docker
|
||||
restart: unless-stopped
|
||||
|
||||
# Mises a jour automatiques des images core/brain/web.
|
||||
|
||||
@@ -64,33 +64,44 @@ fi
|
||||
export COMPOSE_PROJECT_NAME="${PROJECT_NAME}"
|
||||
echo "→ Projet compose cible: ${PROJECT_NAME}"
|
||||
|
||||
# --- Mapping canal -> namespace --------------------------------------------
|
||||
# Le slash final est important : il est concatene avec le suffixe image
|
||||
# --- Mapping canal -> (namespace, tag) -------------------------------------
|
||||
# Le slash final du namespace est important : concatene avec le suffixe image
|
||||
# (core/brain/web) dans le docker-compose.yml.
|
||||
# Cote tag : le workflow CI pousse :latest pour le canal stable, :beta pour
|
||||
# le canal beta. Le switcher doit donc forcer ces deux variables ensemble.
|
||||
case "${CHANNEL}" in
|
||||
stable) NAMESPACE="igmlcreation/loremind-" ;;
|
||||
beta) NAMESPACE="igmlcreation/loremind-beta-" ;;
|
||||
stable)
|
||||
NAMESPACE="igmlcreation/loremind-"
|
||||
TAG="latest"
|
||||
;;
|
||||
beta)
|
||||
NAMESPACE="igmlcreation/loremind-beta-"
|
||||
TAG="beta"
|
||||
;;
|
||||
esac
|
||||
|
||||
# --- Etape 1 : sed le .env -------------------------------------------------
|
||||
# On veut REMPLACER une ligne existante IMAGE_NAMESPACE=... ou AJOUTER
|
||||
# si absente. Cas typique : .env utilisateur peut avoir cette ligne ou non.
|
||||
#
|
||||
# Sed -i avec un pattern qui matche la ligne entiere. Si pas de match,
|
||||
# on append.
|
||||
echo "→ Mise a jour de IMAGE_NAMESPACE dans .env (canal: ${CHANNEL})"
|
||||
if grep -q '^IMAGE_NAMESPACE=' "${ENV_FILE}"; then
|
||||
# Sur Alpine, sed -i sans backup. Le pattern d'echappement '/' dans
|
||||
# le namespace impose un delimiter alternatif (|).
|
||||
sed -i "s|^IMAGE_NAMESPACE=.*|IMAGE_NAMESPACE=${NAMESPACE}|" "${ENV_FILE}"
|
||||
else
|
||||
# Ligne absente → on l'ajoute en fin de fichier avec un commentaire.
|
||||
# Helper : met a jour (ou ajoute) une variable key=value dans le .env.
|
||||
update_env_var() {
|
||||
local key="$1"
|
||||
local value="$2"
|
||||
if grep -q "^${key}=" "${ENV_FILE}"; then
|
||||
# Sur Alpine, sed -i sans backup. Le pattern '/' dans la valeur impose
|
||||
# un delimiter alternatif (|).
|
||||
sed -i "s|^${key}=.*|${key}=${value}|" "${ENV_FILE}"
|
||||
else
|
||||
# Ligne absente → on l'ajoute en fin de fichier la premiere fois.
|
||||
{
|
||||
echo ""
|
||||
echo "# Ajoute automatiquement par le switcher de canal LoreMind."
|
||||
echo "IMAGE_NAMESPACE=${NAMESPACE}"
|
||||
echo "${key}=${value}"
|
||||
} >> "${ENV_FILE}"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
# --- Etape 1 : sed le .env -------------------------------------------------
|
||||
echo "→ Mise a jour de IMAGE_NAMESPACE + TAG dans .env (canal: ${CHANNEL})"
|
||||
update_env_var "IMAGE_NAMESPACE" "${NAMESPACE}"
|
||||
update_env_var "TAG" "${TAG}"
|
||||
|
||||
# --- Etape 2 : docker compose pull -----------------------------------------
|
||||
echo "→ Pull des nouvelles images (${NAMESPACE}*)"
|
||||
@@ -109,4 +120,4 @@ docker compose up -d --no-deps core brain web
|
||||
|
||||
echo ""
|
||||
echo "Switch vers le canal ${CHANNEL} termine avec succes."
|
||||
echo "Containers core/brain/web recrees avec ${NAMESPACE}*."
|
||||
echo "Containers core/brain/web recrees avec ${NAMESPACE}*:${TAG}."
|
||||
|
||||
@@ -70,10 +70,14 @@ while true; do
|
||||
# Lance le switch. On capture stdout+stderr et le code de sortie.
|
||||
if output=$(/switcher/switch.sh "${channel}" 2>&1); then
|
||||
log "Switch SUCCESS for id=${id} channel=${channel}"
|
||||
# Log la sortie sur plusieurs lignes pour faciliter le debug
|
||||
# (ce qu'on voit en docker logs).
|
||||
while IFS= read -r line; do log " | ${line}"; done <<< "${output}"
|
||||
write_result "success" "${channel}" "${output}" "${id}"
|
||||
else
|
||||
rc=$?
|
||||
log "Switch FAILED for id=${id} channel=${channel} rc=${rc}"
|
||||
while IFS= read -r line; do log " | ${line}"; done <<< "${output}"
|
||||
write_result "error" "${channel}" "${output}" "${id}"
|
||||
fi
|
||||
|
||||
|
||||
4
web/package-lock.json
generated
4
web/package-lock.json
generated
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "loremind-web",
|
||||
"version": "0.8.5",
|
||||
"version": "0.8.7-beta",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "loremind-web",
|
||||
"version": "0.8.5",
|
||||
"version": "0.8.7-beta",
|
||||
"dependencies": {
|
||||
"@angular/animations": "^17.0.0",
|
||||
"@angular/common": "^17.0.0",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "loremind-web",
|
||||
"version": "0.8.5",
|
||||
"version": "0.8.7-beta",
|
||||
"description": "LoreMind Frontend - Angular",
|
||||
"scripts": {
|
||||
"ng": "ng",
|
||||
|
||||
Reference in New Issue
Block a user