Passer au contenu
GitTree
Pipelines CI/CD

Exécuter des pipelines localement

GitTree prépare la commande exacte act ou gitlab-ci-local pour un fichier de flux de travail ou une tâche, et la saisit dans un nouveau terminal pour que vous puissiez l'exécuter. Les tâches s'exécutent dans Docker conteneurs sur votre ordinateur, avant d'être transférées. Les pipelines locaux font partie du plan gratuit et ne nécessitent aucun compte d'hébergement.

GratuitMis à jour

Fonctionne dans GitTree Gratuit : toutes les fonctionnalités Git locales, sans compte requis.

Sur cette page
  1. Avant de commencer
  2. Où le trouver
  3. Mesures
  4. Résultat attendu
  5. Installez Docker et les coureurs
  6. Les fichiers exemples
  7. Bitbucket Pipelines et Azure Pipelines
  8. En quoi une course locale diffère de votre hôte
  9. Si quelque chose ne va pas
  10. Questions
  11. En rapport

Avant de commencer

  • Docker, en cours d'exécution : Docker Desktop, OrbStack, Colima ou Docker Engine. Les deux coureurs démarrent chaque tâche dans un conteneur.
  • Le coureur de votre fichier : act pour GitHub Actions (.github/workflows/*.yml), gitlab-ci-local pour GitLab CI (.gitlab-ci.yml). Installez-le en dehors du référentiel, dans un dossier sur PATH.
  • Un référentiel de confiance (repository trust) : une exécution locale exécute le code du référentiel.
  • Un shell de terminal pris en charge : bash, zsh, sh ou fish sur macOS ; PowerShell sur Windows ; bash, zsh, sh ou fish sur Linux.

Où le trouver

  • Le bouton CI/CD dans la barre d'outils : sans compte connecté ni Pro, la vue s'ouvre sur Local pipelines.
  • La section TOOLS du panneau de gauche : Prepare local pipeline.
  • Tools dans la barre d'outils (à côté de Terminal) ou dans le menu de l'onglet dépôt : Prepare local pipeline…, également dans la palette de commandes ou avec Alt+Shift+L.
ActionmacOSWindows et Linux
La palette de commandes, puis Prepare local pipeline…⌘⇧PCtrl+Shift+P
Show CI/CD⌥PAlt+P

Mesures

  1. Vérifiez ce dont vous avez besoin

    Ouvrez CI/CD. Local pipelines répertorie What you need : Docker, act et gitlab-ci-local avec Found ou Not found et où chacun a été trouvé, la confiance du référentiel et le shell du terminal. Un programme manquant montre comment l'installer ; installez-le, puis appuyez sur Check again. Ask Nour to Set Up the Local Runner fait partie de Pro, dont tout le monde dispose actuellement gratuitement. La préparation et l’exécution de la commande localement ne le font pas.

    La vue CI/CD sur les pipelines locaux, avec Docker et acte trouvés et gitlab-ci-local non trouvés
    Les pipelines locaux sont marqués Gratuit. Les exécutions hébergées au-dessus d'eux nécessitent toujours un compte connecté.Interface GitTree avec un référentiel de démonstration.
  2. Ajoutez un fichier de pipeline ou utilisez le vôtre

    Pipeline files in this repository répertorie chaque fichier avec Ready to run ou la raison pour laquelle il ne peut pas s'exécuter. Sans encore de fichier, Add GitHub Actions sample écrit .github/workflows/gittree-local.yml et Add GitLab CI sample écrit .gitlab-ci.yml, chacun avec deux tâches commentées. GitTree n'écrit jamais sur un fichier existant. Le fichier s'ouvre dans l'éditeur : mettez-y vos commandes de build et de test.

  3. Préparez la commande

    Appuyez sur Run Locally…. Dans Prepare local pipeline, choisissez le Pipeline config, un Job ou un Runner default jobs, et le Terminal shell, puis Prepare command. Rien ne fonctionne encore.

  4. Exécutez-le dans le terminal

    Lisez le Prepared command, puis Type in new terminal. GitTree le saisit dans un nouveau terminal et n'appuie jamais sur Entrée : vérifiez-le et appuyez vous-même sur Entrée. Le résultat de la tâche apparaît dans le terminal.

Résultat attendu

Le coureur extrait l’image du travail une première fois, puis exécute chaque étape dans un conteneur et imprime son résultat dans le terminal. Les fichiers de votre référentiel sont utilisés tels qu'ils sont sur le disque, validés ou non.

Installez Docker et les coureurs

Que faut-il installer sur chaque système
ProgrammemacOSWindowsLinux
DockerDocker Desktop, OrbStack ou ColimaDocker DesktopDocker Engine ou Docker Desktop
agir (GitHub Actions)brew install actwinget install nektos.actLe script d'installation sur nektosact.com
gitlab-ci-local (GitLab CI)npm install -g gitlab-ci-localLe .exe de ses GitHub versions, dans un dossier sur PATHnpm install -g gitlab-ci-local

gitlab-ci-local nécessite Node.js 18 ou version ultérieure lorsqu'il est installé avec npm. GitTree recherche uniquement les programmes sur PATH ; il ne les exécute jamais pour vérifier, il ne peut donc pas dire si le moteur Docker est démarré.

Les fichiers exemples

L'exemple GitHub Actions exécute une tâche build, puis une tâche test sur ubuntu-latest. Lors de sa première exécution, l'acte demande quelle image de coureur utiliser ; Medium convient à la plupart des projets. L'exemple GitLab CI exécute les deux mêmes tâches dans des conteneurs alpine. Remplacez les lignes echo par vos propres commandes, puis validez le fichier lorsqu'il est prêt. Si le référentiel est sur GitHub ou GitLab, cet hôte exécute également le fichier.

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Build
        run: npm ci && npm run build
  test:
    runs-on: ubuntu-latest
    needs: build
    steps:
      - uses: actions/checkout@v4
      - name: Test
        run: npm test

Bitbucket Pipelines et Azure Pipelines

Il n'existe aucun exécuteur local pris en charge pour bitbucket-pipelines.yml ou azure-pipelines.yml, donc ces fichiers affichent No local runner. Pour exécuter les mêmes étapes sur votre ordinateur, ajoutez l'exemple GitHub Actions ou GitLab CI et copiez-y vos commandes. Le pipeline hébergé continue de s'exécuter à partir de son propre fichier.

En quoi une course locale diffère de votre hôte

  • Les secrets et les variables définis sur l'hôte ne sont pas disponibles ; transmettez vous-même ceux dont un travail a besoin au coureur.
  • act exécute par défaut des tâches déclenchées par push. Choisissez un Job pour en exécuter un quel que soit son déclencheur.
  • Les inclusions, les modèles et les flux de travail réutilisables ne sont pas résolus lorsque GitTree répertorie les tâches ; le coureur les résout lorsqu'il court.
  • Les conteneurs peuvent accéder à votre réseau et utiliser les informations d'identification que vous leur fournissez.

Si quelque chose ne va pas

"Aucun programme d'exécution natif sécurisé n'a été trouvé sur PATH. Installez-le en dehors du référentiel, puis actualisez-le."

Installez act ou gitlab-ci-local dans un dossier sur PATH qui ne se trouve pas dans le référentiel, puis appuyez sur Check again ou Refresh. Le macOS, quittez et rouvrez GitTree si vous avez modifié PATH dans votre profil shell.

"Cette configuration de fournisseur n'a aucun exécuteur local pris en charge."

Le fichier est un pipeline Bitbucket ou Azure. Ajoutez un échantillon GitHub Actions ou GitLab CI et copiez-y les étapes.

"Faites confiance à ce référentiel avant de préparer une commande de pipeline local."

Faites d'abord confiance au référentiel (repository trust), puis préparez à nouveau la commande.

Le terminal indique qu'il ne peut pas se connecter au démon Docker.

Démarrez Docker Desktop, OrbStack, Colima ou le service Docker, attendez qu'il soit en cours d'exécution, puis appuyez à nouveau sur Entrée sur la commande.

Questions

Les pipelines locaux ont-ils besoin de GitTree Pro ou d'un compte d'hébergement ?

Non. Les pipelines locaux font partie du plan gratuit et lisent uniquement les fichiers de votre référentiel. Les exécutions, réexécutions et approbations CI/CD hébergées font partie de Pro.

Est-ce que GitTree exécute le pipeline pour moi ?

Non. GitTree prépare la commande et la tape dans un terminal ; vous appuyez sur Entrée. Rien ne court avant vous.