Intégration GitHub
Pipeline CI/CD automatisée avec GitHub Actions
Siovos configure automatiquement une pipeline CI/CD complète sur votre infrastructure. Vos builds s'exécutent sur votre serveur et déploient directement sur votre cluster Kubernetes.
Le principe#
Quand vous pushez du code sur GitHub :
- GitHub déclenche le workflow
- Le runner sur votre serveur exécute le build
- L'image est poussée sur votre registre privé
- L'application est déployée sur votre cluster
Tout reste privé - votre code ne quitte jamais votre infrastructure.
Deux modes de configuration#
Dans le wizard, l'étape CI/CD propose deux options :
Lier à un CI/CD existant#
Si vous avez déjà une configuration CI/CD dans Siovos, vous pouvez la réutiliser pour un nouveau déploiement. Utile quand vous avez plusieurs environnements (dev, staging, prod) liés au même compte GitHub.
- Sélectionnez la configuration existante
- Nommez votre déploiement
- Lancez le déploiement
- Les secrets et le runner sont synchronisés automatiquement
Créer une nouvelle config CI/CD#
Pour une première configuration ou un nouveau compte GitHub.
- Entrez vos identifiants GitHub App (App ID, Installation ID, clé privée)
- Sélectionnez l'organisation ou le compte personnel
- Nommez votre déploiement
- Lancez le déploiement
- Les secrets et le runner sont synchronisés automatiquement
L'authentification utilise une GitHub App, pas un Personal Access Token. Cela permet un contrôle plus fin des permissions et une rotation automatique des tokens.
Ce qui est configuré automatiquement#
Après le déploiement, Siovos synchronise tout ce dont vos pipelines ont besoin :
| Élément | Description |
|---|---|
| Secrets d'organisation | Identifiants du registre, tokens d'accès au cluster |
| Variables d'organisation | URL du registre, suffixe DNS, nom de l'environnement |
| Runner self-hosted | Enregistré au niveau de l'organisation, disponible pour tous vos repos |
Les secrets et variables sont définis au niveau de l'organisation GitHub, pas par repo. Tous vos repos y ont accès.
Utiliser la pipeline dans vos repos#
Créez .github/workflows/deploy.yml dans votre repo :
name: Deploy
on:
push:
branches: [main]
jobs:
deploy:
uses: votre-org/ci-templates/.github/workflows/pipeline.yml@main
with:
app_name: mon-app
port: 3000
secrets: inheritLa pipeline template gère automatiquement :
- Build de l'image Docker
- Push vers le registre privé
- Déploiement sur Kubernetes avec Helm
- Configuration DNS et TLS
Options de la pipeline#
| Paramètre | Description | Défaut |
|---|---|---|
app_name | Nom de l'application | Requis |
port | Port de l'application | Requis |
replicas | Nombre de réplicas | 1 |
health_path | Chemin du health check | / |
extra_ingresses | Ingresses supplémentaires (JSON) | - |
Vérifier le statut#
Runner - Dans GitHub : Organisation → Settings → Actions → Runners. Le runner doit apparaître comme "Idle" ou "Active".
Secrets - Organisation → Settings → Secrets and variables → Actions. Vous devriez voir les secrets synchronisés par Siovos.
Problèmes fréquents#
Runner "Offline" - Vérifiez que le serveur est accessible et que le service runner est actif. Dans Siovos Desktop, consultez l'onglet Services de votre infrastructure.
Build échoue au push de l'image - Les identifiants du registre sont synchronisés automatiquement. Si le problème persiste, relancez la synchronisation depuis Siovos Desktop.
Déploiement échoue - Vérifiez que votre Dockerfile build correctement en local avant de pusher.
Prochaines étapes#
- Services - Voir les services déployés sur votre infrastructure
- Gestion des certificats - Certificats HTTPS automatiques
- Monitoring - Suivre vos déploiements