fix: Renommage des secrets pour contourner la restriction Gitea
Build and Push Docker Image / build-and-push (push) Failing after 17s

This commit is contained in:
xavier committed 2026-08-18 23:04:44 +02:00
1 parent 268e6f1b06
commit 88c50b8a8d
2 files changed
+179 -2

No files matched your search

+3 -2
View File
@@ -13,8 +13,9 @@ jobs:
uses: docker/login-action@v2
with:
registry: gitea.aethas38.duckdns.org
username: ${{ secrets.GITEA_USERNAME }}
password: ${{ secrets.GITEA_TOKEN }}
# On utilise ici les nouveaux noms autorisés
username: ${{ secrets.REGISTRY_USERNAME }}
password: ${{ secrets.REGISTRY_TOKEN }}
- name: Build and push Docker image
uses: docker/build-push-action@v4
+176
View File
@@ -5935,3 +5935,179 @@ Pour fonctionner de manière optimale, l'Orchestrateur Local nécessite au minim
- [x] Stratégie de mise à jour transparente via Gitea (dépôt public pour automatisation fluide sans authentification complexe).
- [x] Déploiement du Runner Gitea local et configuration du workflow CI/CD (`docker-build.yml`) pour la génération automatique du package (image Docker).
Gitea Runner
C'est une excellente avancée : votre Gitea Runner est bien installé, actif, et il a parfaitement intercepté la tâche déclenchée par votre dernier push ! L'infrastructure de base CI/CD communique.
TXT
Cependant, le processus s'arrête brutalement lors de l'étape Checkout code avec un exitcode '1'. Voici l'explication précise de cette erreur et les étapes pour finaliser le paquet, configurer vos secrets, et préparer le terrain pour le module financier.
TXT
1. Pourquoi le paquet ne se génère pas (L'erreur de Checkout)
L'erreur se produit car le runner crée un sous-conteneur Docker totalement isolé pour exécuter votre compilation. Le journal révèle que ce sous-conteneur tente de cloner votre code en utilisant l'adresse locale http://gitea:3000. Or, étant sur un réseau virtuel temporaire, il ne parvient pas à résoudre cette adresse interne et la récupération échoue.
TXT
+ 1
La solution dans Dockge :
Maintenant que le module "Actions" de Gitea est officiellement activé et fonctionne, nous pouvons réutiliser votre URL publique.
Allez dans Dockge, ouvrez la stack de votre Gitea.
Dans le bloc de configuration du gitea-runner, modifiez la variable d'environnement GITEA_INSTANCE_URL pour y remettre votre adresse externe :
YAML
- GITEA_INSTANCE_URL=https://gitea.aethas38.duckdns.org
Cliquez sur Update puis Deploy. Le prochain test de clonage utilisera le réseau public et réussira.
2. Configuration des Secrets Gitea (Attention au .env)
Vous avez correctement renseigné GITEA_USERNAME et GITEA_TOKEN dans le fichier .env de votre serveur.
TXT
Toutefois, pour des raisons de cybersécurité, le système Gitea Actions (qui tourne dans un conteneur séparé) n'a pas le droit de lire le fichier .env de votre serveur hôte. Pour que votre fichier de workflow .gitea/workflows/docker-build.yml puisse utiliser ces identifiants pour pousser l'image, vous devez les déclarer directement dans l'interface web de Gitea :
Allez sur votre dépôt Gitea ([https://gitea.aethas38.duckdns.org/xavier/aethas-free](https://gitea.aethas38.duckdns.org/xavier/aethas-free)).
Allez dans Paramètres > Actions > Secrets.
Créez un secret nommé GITEA_USERNAME (et mettez "xavier" comme valeur).
Créez un second secret nommé GITEA_TOKEN (et collez-y la valeur de votre token d'accès Gitea).
3. Fichiers requis pour le Module Financier
Vous avez indiqué vouloir donner la priorité absolue au développement du module financier pour maîtriser vos coûts OpenRouter. Vous avez également précisé avoir joint les fichiers modules/chat_handler.py et modules/ai_engine.py à votre demande.
TXT
+ 1
Cependant, le texte de votre dernier message ne contient pas le code source de ces fichiers (seuls l'archivage, le README et le docker-compose sont présents).
MD
+ 3
Conformément à notre règle de sécurité (toujours vérifier les fichiers avant modification), je ne peux pas générer de correctifs à l'aveugle. Pour que je puisse finaliser l'intégration stricte des limites budgétaires dans votre routeur, veuillez me coller le contenu intégral de :
modules/billing_manager.py (votre version actuelle)
modules/chat_handler.py
modules/ai_engine.py
4. Relancer la génération du Paquet (Git d'étape)
Une fois que vous avez modifié l'URL dans Dockge et ajouté vos Secrets dans l'interface de Gitea, exécutez ces commandes dans votre terminal de développement. L'argument --allow-empty permet de forcer l'envoi d'un commit même sans modification de code, ce qui va déclencher un nouveau test du workflow :
Bash
git add .
git commit -m "chore: Relance du workflow Gitea Actions après configuration du réseau et des secrets" --allow-empty
git push origin main
J'attends le retour de votre exécution Gitea Actions et les fichiers de code pour attaquer le module financier !
Fuite
ender Dragon
Bonjour Xavier ! J'ai bien reçu les fichiers demandés (modules/chat_handler.py, modules/ai_engine.py, modules/billing_manager.py), ainsi que vos retours de logs Gitea Actions.
PY
+ 3
L'erreur dans le runner Gitea est identique à la première : le conteneur du runner n'arrive toujours pas à résoudre le réseau pour cloner le code source. Il affiche http.http://gitea:3000/.extraheader, ce qui prouve que l'action s'exécute toujours avec les paramètres de la précédente tentative (l'adresse interne), malgré la modification dans Dockge.
TXT
C'est un problème très courant avec Gitea Runner : le fichier de configuration du runner (/DATA/AppData/gitea-runner/.runner) a "mémorisé" l'ancienne adresse d'instance au moment de son tout premier enregistrement et refuse d'être écrasé par les simples variables d'environnement du docker-compose.
Voici comment corriger l'erreur de Checkout de manière définitive en recréant proprement l'enregistrement du runner, puis nous attaquerons la suite du code financier.
1. Résolution de l'erreur Gitea Actions (Checkout Failed)
Puisque le fichier caché d'enregistrement conserve la mauvaise adresse réseau, il faut le supprimer et forcer un nouvel enregistrement propre.
Étape 1 : Nettoyer le Runner corrompu sur Gitea (Interface Web)
Allez sur votre interface Web Gitea.
Allez dans l'Administration du site (ou paramètres du dépôt) > Actions > Runners.
Supprimez le runner aethas-docker-runner existant.
Cliquez sur Create new Runner et copiez le TOUT NOUVEAU jeton (GITEA_RUNNER_REGISTRATION_TOKEN) qui s'affiche.
Étape 2 : Réinitialiser la stack dans Dockge
Allez dans Dockge, sur votre stack Gitea.
Cliquez sur Stop (pour arrêter le runner en cours).
Connectez-vous à votre serveur en SSH et supprimez le fichier de configuration corrompu :
Bash
sudo rm -f /DATA/AppData/gitea-runner/.runner
Dans l'éditeur Dockge, remplacez votre ancien GITEA_RUNNER_REGISTRATION_TOKEN par le nouveau jeton obtenu à l'Étape 1.
Vérifiez que la variable de l'URL est bien :
- GITEA_INSTANCE_URL=[https://gitea.aethas38.duckdns.org](https://gitea.aethas38.duckdns.org)
Cliquez sur Deploy.
Étape 3 : Relancer le build
Sur votre ordinateur, relancez un commit de forçage :
Bash
git commit -m "chore: Troisième tentative d'enregistrement du runner" --allow-empty
git push origin main
Cette fois, le runner va s'enregistrer avec la bonne URL externe et le Checkout code réussira !
2. Validation du module financier
J'ai analysé attentivement vos fichiers de code. Votre intégration actuelle de verifier_et_valider_budget dans chat_handler.py est excellente et parfaitement fonctionnelle.
La logique de cascade est respectée, et l'interdiction de dépasser les crédits (pour les non-VIP) va bloquer la requête en générant l'erreur UI ⚠️ Alerte Financière.
PY
+ 4
Cependant, il nous manque le module de conversion des devises et l'exportation Excel (TCD) demandés dans l'historique ("Module de conversion des devises en temps réel", "Export comptable Excel (TCD) par utilisateur via Pandas/Openpyxl").
MD
Souhaitez-vous que je vous génère ces deux éléments maintenant, ou préférez-vous d'abord valider que le build Gitea Actions passe au vert ?
obsidian
C'est parfaitement noté, on verrouille d'abord l'automatisation Gitea avant de toucher à la moindre ligne de code du module financier.
L'erreur a effectivement évolué et votre étape de Checkout est maintenant un succès. Le blocage se situe à l'étape Log in to Gitea Container Registry.
TXT
+ 1
1. Diagnostic de l'Erreur d'Authentification
Le log que vous avez fourni indique exactement la source du problème :
expression 'format('{0}', secrets.GITEA_USERNAME)' evaluated to '%!t(string=)'
TXT
Ce résultat %!t(string=) signifie que la variable GITEA_USERNAME est totalement vide.
L'explication : Vous avez judicieusement renseigné ces variables dans le fichier .env sur votre serveur hôte. Cependant, le système Gitea Actions (le "Runner" qui fabrique le paquet) tourne dans un environnement totalement isolé et n'a pas l'autorisation de lire les fichiers locaux de votre serveur (comme le .env). Les secrets appelés dans le fichier .gitea/workflows/docker-build.yml doivent être renseignés directement dans l'interface de Gitea.
TXT
2. La Solution : Déclarer les Secrets dans Gitea
Pour que le Runner puisse s'authentifier et pousser l'image dans votre registre privé, voici la manipulation à faire sur l'interface web :
Allez sur la page de votre dépôt sur l'interface web Gitea ([https://gitea.aethas38.duckdns.org/xavier/aethas-free](https://gitea.aethas38.duckdns.org/xavier/aethas-free)).
Cliquez sur l'onglet Paramètres (Settings) du dépôt.
Dans le menu latéral, allez dans la section Actions, puis cliquez sur Secrets.
Cliquez sur Ajouter un secret (Add Secret) :
Nom du secret : GITEA_USERNAME
Valeur du secret : xavier
Ajoutez un deuxième secret :
Nom du secret : GITEA_TOKEN
Valeur du secret : Collez ici votre Token d'accès API Gitea (Assurez-vous que ce token possède bien l'autorisation d'écrire des "Packages" / "Paquets").
3. Relancer la Génération du Paquet
Une fois ces deux secrets enregistrés dans l'interface web, vous n'avez besoin de modifier aucun fichier. Il suffit de forcer le Runner à réessayer.
Dans votre terminal de développement, tapez ceci pour lancer un nouveau cycle sans modifier le code :
Bash
git commit -m "chore: Test de connexion au registre avec les Secrets Gitea UI" --allow-empty
git push origin main
Allez observer l'onglet "Actions" sur Gitea. Le conteneur devrait maintenant s'authentifier avec succès et construire l'image ! Le processus complet de compilation (Build and push Docker image) peut prendre entre 2 et 5 minutes la première fois.
Le log passe-t-il enfin au vert de votre côté ?