Intégration GitHub

CI/CD avec des runners self-hosted

Siovos peut déployer des runners GitHub Actions sur votre serveur. Vos builds s'exécutent chez vous et déploient directement sur votre cluster Kubernetes.

Le principe#

Quand vous pushez du code sur GitHub :

  1. GitHub déclenche votre workflow
  2. Le runner sur votre serveur exécute le build
  3. L'image Docker est pushée sur Harbor
  4. L'app est déployée sur K3s

Tout reste privé. Votre code ne quitte jamais votre infrastructure.

Configuration pendant le déploiement#

Dans le wizard, à l'étape Intégration GitHub :

  1. Entrez votre Personal Access Token GitHub
  2. Sélectionnez les repos à connecter
  3. Terminez le déploiement

Les runners sont automatiquement enregistrés sur GitHub.

Créer un token GitHub#

Allez sur GitHub Settings → Developer settings → Personal access tokens et créez un token avec les permissions :

  • repo — accès aux repos privés
  • workflow — modifier les workflows
  • admin:orgread:org — si vous utilisez des repos d'organisation

Exemple de workflow#

Créez .github/workflows/deploy.yml dans votre repo :

name: Deploy

on:
  push:
    branches: [main]

jobs:
  deploy:
    runs-on: self-hosted
    steps:
      - uses: actions/checkout@v4

      - name: Build & push
        run: |
          docker build -t registry.internal/myapp:${{ github.sha }} .
          docker push registry.internal/myapp:${{ github.sha }}

      - name: Deploy
        run: |
          kubectl set image deployment/myapp app=registry.internal/myapp:${{ github.sha }}

Le point clé : runs-on: self-hosted pour utiliser votre runner.

Vérifier le statut du runner#

Dans Siovos Desktop, allez dans votre infrastructure → onglet Services. Le runner doit apparaître comme "Online".

Vous pouvez aussi vérifier sur GitHub : Repository → Settings → Actions → Runners.

Ajouter des repos plus tard#

Depuis votre infrastructure → onglet ActionsConfigurer les runners GitHub, vous pouvez connecter d'autres repos à tout moment.

Problèmes fréquents#

Runner "Offline" — Connectez-vous en SSH sur votre serveur et vérifiez le service :

sudo systemctl status actions-runner

Permission denied sur Harbor — Ajoutez HARBOR_PASSWORD dans les secrets de votre repo (Settings → Secrets → Actions).

kubectl ne fonctionne pas — Vérifiez que /home/runner/.kube/config existe et est valide sur votre serveur.

Cette page vous a-t-elle été utile ?

Intégration GitHub | Siovos