Skip to content

About

Un orchestrateur CI/CD asynchrone en Python pour déployer des stacks Fullstack avec détection intelligente de changements.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

4 Commits

Folders and files

Repository files navigation

StackPilot 🚀

Mon orchestrateur de déploiement personnel.
Tout tourne en local ou sur serveur, piloté par une CLI Python moderne (AsyncIO + Rich) pour gérer des stacks complexes (Next.js, Docker, Java, Python).

Pourquoi StackPilot ?

J'en avais marre des scripts Bash maintenables et des Makefiles cryptiques.
J'ai codé StackPilot pour avoir une approche structurée et robuste du CI/CD local.

  • Vitesse : Pipelines asynchrones. Le Frontend et le Backend se construisent et se déploient en parallèle.
  • Intelligence : Détection de "Scope" via Git. Si je ne touche qu'au Frontend, StackPilot ne rebuilde pas le Docker du Backend.
  • Clarté : Une UI terminal propre (via rich) qui stream les logs en temps réel sans polluer la vue.

Architecture

L'outil suit une architecture MVC stricte pour rester modulaire.

The Engine (Controller)

C'est le cerveau. Écrit avec asyncio, il gère l'exécution concurrente des processus.

  • Git Awareness : Analyse les diffs pour déterminer les services impactés.
  • Process Management : Wrappe subprocess pour capturer stdout/stderr en non-bloquant.

The View (UI)

Fini les murs de texte.

  • Live Streaming : Les logs de chaque service (ex: docker build, npm install) sont préfixés et colorés.
  • Status : Feedback visuel immédiat sur l'état des pipelines.

Configuration (Model)

Tout est déclaré dans un fichier stackpilot.yaml à la racine du projet. Pas de magie, juste de la config explicite.

name: PlanFixe-Ops
services:
  - name: backend
    path: ./backend
    trigger_paths: ["backend/"] # Si ces fichiers changent...
    steps:
      - name: build-mvn
        cmd: ./mvnw clean package -DskipTests
      - name: docker-build
        cmd: docker build -t myapp-backend .

  - name: frontend
    path: ./frontend
    trigger_paths: ["frontend/"] # ...ou ceux-là
    steps:
      - name: deploy-vercel
        cmd: vercel --prod

Setup

Pré-requis

  • Python 3.10+
  • Git

Installation (Mode Dev)

J'ai inclus un script pour setup l'environnement virtuel en une commande.

# Setup venv & install dependencies
./setup_dev.sh

Usage

Initialiser un projet

Génère une configuration template à la racine.

source venv/bin/activate
python -m src.stackpilot.main init

Lancer un déploiement

L'outil analyse votre repo, détecte les changements et lance les pipelines nécessaires.

python -m src.stackpilot.main push

About

Une alternative légère et scriptable aux usines à gaz CI/CD, optimisée pour le "monorepo" et le développement rapide. Technos : Python, Typer, Rich, Pytest.

About

Un orchestrateur CI/CD asynchrone en Python pour déployer des stacks Fullstack avec détection intelligente de changements.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages