> ## Documentation Index
> Fetch the complete documentation index at: https://docs.replit.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Workflows

> Découvrez comment configurer des Workflows — des boutons d'exécution configurables qui exécutent les commandes de votre choix.

export const YouTubeEmbed = ({videoId, title = "YouTube video", startAt}) => {
  if (!videoId) {
    return null;
  }
  let url = "https://www.youtube.com/embed/" + videoId;
  if (startAt) {
    url = url + "?start=" + startAt;
  }
  return <Frame>
      <iframe src={url} title={title} allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowFullScreen></iframe>
    </Frame>;
};

Il s'agit d'une séquence d'étapes réutilisable et personnalisable qui peut être exécutée dans votre application Replit. Les workflows peuvent être aussi simples que l'exécution de `python main.py` ou aussi complexes que l'exécution d'une procédure en plusieurs étapes.

<Frame>
  <img src="https://mintcdn.com/replit/9NKf1XREDj9JhKJb/images/workflows/workflows-pane.png?fit=max&auto=format&n=9NKf1XREDj9JhKJb&q=85&s=a4464dfb08cede3df14c1eb43d33b284" alt="image" width="525" height="622" data-path="images/workflows/workflows-pane.png" />
</Frame>

Exemples de cas d'utilisation :

* Exécuter plusieurs services en parallèle (par exemple, frontend + backend)
* Exécuter des fichiers ou des commandes séquentiellement (par exemple, exécuter le linter → exécuter les tests, compiler → exécuter le code)

Pour commencer à [créer des workflows](#creating-workflows), accédez au panneau Workflows en utilisant le menu de la barre latérale des outils, ou recherchez le panneau Workflows à l'aide de `Command + K`.

<YouTubeEmbed videoId="I5wePXNdPwg" title="Workflows sur Replit" />

## Types de tâches disponibles

Il existe actuellement 3 types de tâches disponibles : `Exécuter une commande Shell`, `Installer des packages` et `Exécuter un Workflow`.

### Exécuter une commande Shell

`Exécuter une commande Shell` stocke une commande shell et l'exécute en utilisant le même environnement que le panneau Shell. Ce type de tâche offre un large éventail de cas d'utilisation, de l'exécution de fichiers individuels :

```text theme={null}
python main.py
```

à l'exécution de commandes complexes de requête de base de données stockées :

```text theme={null}
psql -h 0.0.0.0 -U votre_nom_utilisateur -d votre_base_de_donnees -c "SELECT * FROM votre_table;"
```

Exemple de cas d'utilisation :

<Frame>
  <img src="https://mintcdn.com/replit/9NKf1XREDj9JhKJb/images/workflows/shellExec-task-example.gif?s=f4853df72f16df0c4101788413504893" alt="image" width="908" height="602" data-path="images/workflows/shellExec-task-example.gif" />
</Frame>

### Installer des packages

`Installer des packages` utilise le système de gestion des dépendances intégré de Replit, détectant automatiquement les dépendances de votre projet et installant les packages nécessaires. Consultez [Gestion des dépendances](/references/project-setup/dependency-management#the-universal-package-manager) pour plus de détails sur la façon dont UPM devine les packages à installer pour votre projet en coulisses.

Exemple de cas d'utilisation :

<Frame>
  <img src="https://mintcdn.com/replit/9NKf1XREDj9JhKJb/images/workflows/packager-task-example.webp?fit=max&auto=format&n=9NKf1XREDj9JhKJb&q=85&s=713ff279fccebb7e2b2f6538eac208a8" alt="image" width="720" height="429" data-path="images/workflows/packager-task-example.webp" />
</Frame>

### Exécuter un Workflow

`Exécuter un Workflow` vous permet d'exécuter un autre workflow depuis le workflow actuel. Cela permet de réutiliser des workflows et de les combiner pour créer des workflows plus complexes.

Exemple de cas d'utilisation :

<Frame>
  <img src="https://mintcdn.com/replit/0ixNWaRF232g0Gwn/images/workflows/example-run-workflow.webp?fit=max&auto=format&n=0ixNWaRF232g0Gwn&q=85&s=2425c11902b5801a65517c3fb221ac0b" alt="image" width="720" height="678" data-path="images/workflows/example-run-workflow.webp" />
</Frame>

En utilisant ce type de tâche pour créer des dépendances entre les workflows, vous pouvez modifier un workflow et les autres workflows qui y font référence utiliseront automatiquement les dernières modifications. Notez qu'il existe une limite de profondeur pour les appels de workflows profondément imbriqués.

## Mode d'exécution des workflows

Les workflows offrent deux modes d'exécution différents : séquentiel et parallèle.

### Séquentiel

L'exécution séquentielle exécutera chaque tâche dans l'ordre défini, attendant que chaque tâche se termine avant de passer à l'étape suivante, et arrêtant l'exécution de la séquence si une tâche du workflow échoue.

Un exemple d'utilisation de ce mode est la définition de commandes logiquement connectées, telles que des commandes git pour récupérer les dernières modifications de votre branche principale, puis rebaser votre branche actuelle sur la branche principale :

<Frame>
  <img src="https://mintcdn.com/replit/9NKf1XREDj9JhKJb/images/workflows/example-sequential-workflow.png?fit=max&auto=format&n=9NKf1XREDj9JhKJb&q=85&s=718be1d1e659dff1dc04f15ec24deb52" alt="image" width="721" height="654" data-path="images/workflows/example-sequential-workflow.png" />
</Frame>

### Parallèle

L'exécution parallèle exécutera chaque tâche en parallèle, de sorte que chaque tâche est démarrée et s'exécute indépendamment des autres tâches du workflow. L'échec d'une tâche n'arrête pas l'exécution des autres tâches.

Un exemple d'utilisation de ce mode est l'exécution d'un projet fullstack qui doit démarrer à la fois le serveur frontend et le serveur backend :

<Frame>
  <img src="https://mintcdn.com/replit/0ixNWaRF232g0Gwn/images/workflows/example-parallel-workflow.png?fit=max&auto=format&n=0ixNWaRF232g0Gwn&q=85&s=a1067b806b25e3f8722e5368fd87b48a" alt="image" width="721" height="654" data-path="images/workflows/example-parallel-workflow.png" />
</Frame>

## Création de Workflows

Les workflows peuvent être créés à l'aide du panneau Workflows en cliquant sur le bouton `+ Nouveau Workflow`. Commencez par donner un nom descriptif à votre workflow, choisissez un mode d'exécution approprié, et commencez à ajouter des tâches. Les tâches peuvent être réordonnées par glisser-déposer dans l'ordre souhaité.

<Frame>
  <img src="https://mintcdn.com/replit/9NKf1XREDj9JhKJb/images/workflows/example-workflow-setup.webp?fit=max&auto=format&n=9NKf1XREDj9JhKJb&q=85&s=deadd852b9ac26042147e7b8d597521d" alt="image" width="720" height="414" data-path="images/workflows/example-workflow-setup.webp" />
</Frame>

## Assigner un Workflow au bouton Exécuter

Un workflow peut également être assigné au bouton Exécuter pour remplacer le comportement par défaut du bouton Exécuter (voir [Configurer une application Replit](/references/project-setup/configuration)). Pour conserver la commande d'exécution par défaut configurée dans `.replit`, sélectionnez l'option « Exécuter l'application Replit » par défaut dans le menu déroulant.

Le workflow sélectionné dans le menu déroulant à côté du bouton Exécuter sera lancé lorsque vous cliquerez sur le bouton Exécuter. Cliquez sur le workflow souhaité dans le menu déroulant pour changer quel workflow doit être exécuté par le bouton Exécuter.

<Frame>
  <img src="https://mintcdn.com/replit/0ixNWaRF232g0Gwn/images/workflows/configure-run-button-workflow.gif?s=b93762a559fcb83f0b3560def5e965ef" alt="image" width="588" height="254" data-path="images/workflows/configure-run-button-workflow.gif" />
</Frame>

## Affichage des sorties de Workflow

Les sorties des workflows s'affichent dans le panneau `Console`. Vous pouvez basculer l'affichage pour n'afficher que les dernières sorties et effacer entièrement la console.

<Frame>
  <img src="https://mintcdn.com/replit/9NKf1XREDj9JhKJb/images/workflows/workflow-output-view.gif?s=3b33df7f4f6e0f43e7ae2c83532c4f96" alt="image" width="706" height="434" data-path="images/workflows/workflow-output-view.gif" />
</Frame>
