Skip to content

About

Orchestrateur de déploiement en Python : ne reconstruit que ce qui a changé, en parallèle.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

StackPilot

tests Python 3.10+ Licence MIT

Orchestrateur de déploiement en ligne de commande, écrit en Python (asyncio, Typer, Rich). Il construit et déploie les services d'un dépôt monorepo (Next.js, Docker, Java, Python) en local ou sur un serveur.

stackpilot push : le backend et le frontend se construisent en parallèle, le worker non modifié est ignoré

Pourquoi

Les scripts Bash et les Makefiles deviennent vite difficiles à maintenir. StackPilot remplace ces scripts par une configuration déclarative et un moteur qui ne relance que ce qui a changé.

  • En parallèle : le frontend et le backend se construisent et se déploient en même temps.
  • Seulement ce qui change : StackPilot lit le diff Git. Si seul le frontend a bougé, l'image Docker du backend n'est pas reconstruite.
  • Des journaux lisibles : la sortie de chaque service est préfixée et colorée, en temps réel.

Architecture

  • Moteur : exécution concurrente des étapes avec asyncio, lecture des diffs Git, capture de stdout et stderr sans blocage.
  • Affichage : journaux en direct et état de chaque pipeline, avec Rich.
  • Configuration : un fichier stackpilot.yaml à la racine du projet.
name: PlanFixe-Ops
services:
  - name: backend
    path: ./backend
    trigger_paths: ["backend/"]
    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/"]
    steps:
      - name: deploy-vercel
        cmd: vercel --prod

Installation

Prérequis : Python 3.10 ou plus récent, Git.

./setup_dev.sh            # crée l'environnement virtuel et installe les dépendances
source venv/bin/activate

Utilisation

python -m src.stackpilot.main init   # génère un stackpilot.yaml de départ
python -m src.stackpilot.main push   # détecte les changements et lance les pipelines

Tests : python -m pytest, lancés aussi par GitHub Actions à chaque envoi (Python 3.10 et 3.12).

Licence

MIT. Florian Anthony, florian-anthony.ch.

About

Orchestrateur de déploiement en Python : ne reconstruit que ce qui a changé, en parallèle.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages