[{"data":1,"prerenderedAt":830},["ShallowReactive",2],{"/fr-fr/get-started/continuous-integration":3,"navigation-fr-fr":206,"banner-fr-fr":610,"footer-fr-fr":620},{"id":4,"title":5,"body":6,"category":6,"config":6,"content":7,"description":6,"extension":196,"meta":197,"navigation":24,"path":198,"seo":199,"slug":6,"stem":204,"testContent":6,"type":6,"__hash__":205},"pages/fr-fr/get-started/continuous-integration.yml","Continuous Integration",null,[8,18,25,153],{"type":9,"componentName":9,"componentContent":10},"CommonBreadcrumbs",{"crumbs":11},[12,16],{"title":13,"config":14},"Commencer",{"href":15},"/fr-fr/get-started/",{"title":17},"Guide de démarrage rapide pour une intégration continue avec GitLab",{"type":19,"componentName":19,"componentContent":20},"CommonArticleHero",{"title":17,"readTime":21,"text":22,"config":23},"Durée : 20 min","Découvrez notre guide de démarrage rapide de GitLab CI et apprenez à configurer un projet dans GitLab, puis à créer une première configuration d'intégration continue, directement dans votre code.\n\nCe guide vous explique comment :\n\n- Créer un nouveau projet.\n- Concevoir votre configuration CI/CD initiale et exécuter le pipeline.\n- Consulter et examiner les résultats de l'exécution.\n- Appliquer des conditions basées sur des règles pour contrôler l'exécution des jobs.\n- Tirer parti des templates de pipeline pour une intégration fluide de vos configurations.",{"bodyText":24},true,{"type":26,"componentName":26,"componentContent":27},"CommonSideNavigationWithTree",{"anchors":28,"components":59},{"text":29,"data":30},"Sur cette page",[31,35,39,43,47,51,55],{"text":32,"config":33},"Étape 1 : créez un nouveau projet/dépôt",{"href":34},"#step-1",{"text":36,"config":37},"Étape 2 : définissez la configuration CI",{"href":38},"#step-2",{"text":40,"config":41},"Étape 3 : validez les modifications et exécutez le pipeline",{"href":42},"#step-3",{"text":44,"config":45},"Étape 4 : consultez les résultats de l'exécution et du test du pipeline",{"href":46},"#step-4",{"text":48,"config":49},"Étape 5 : mettez le pipeline en condition d'échec",{"href":50},"#step-5",{"text":52,"config":53},"Étape 6 : implémentez des conditions d'échec à l'échelle du pipeline",{"href":54},"#step-6",{"text":56,"config":57},"Étape 7 : optimisez votre configuration avec des templates de pipeline intégrés",{"href":58},"#step-7",[60,70],{"type":61,"componentName":61,"componentContent":62},"CommonCopy",{"config":63,"cards":64},{"noDecoration":24},[65],{"config":66,"title":68,"description":69},{"icon":67},"InfoTip","Avant de commencer","Vérifiez que vous disposez d'un compte GitLab. Si ce n'est pas le cas, inscrivez-vous [ici](https://gitlab.com/users/sign_up).",{"type":71,"componentName":71,"componentContent":72},"GetStartedAccordion",{"groups":73},[74,86,113,121,129,137,145],{"config":75,"header":32,"show":77,"hide":78,"items":79},{"id":76},"step-1","Tout afficher","Tout masquer",[80,83],{"header":81,"content":82},"Présentation de l'étape","Au sein d'un projet, vous pouvez gérer différents composants tels que votre code source, la configuration de l'intégration continue, la planification, l'analyse des données ainsi que les membres de l'équipe. Dans ce guide, nous allons créer un nouveau projet vierge, contenant uniquement un fichier README.",{"header":84,"content":85},"Marche à suivre","* Créez un nouveau projet en cliquant sur le bouton « + » sur le côté droit de la barre supérieure, et sélectionnez  **Nouveau projet/dépôt**.\n* Sélectionnez **Créer un projet vide**. Sous `Nom du projet`, saisissez **mon-projet**.\n* Cliquez sur **Créer le projet**.\n* Félicitations ! Vous avez créé votre premier projet.",{"config":87,"header":36,"show":77,"hide":78,"items":89},{"id":88},"step-2",[90,92,95,98,101,104,107,110],{"header":81,"content":91},"Dans GitLab, la configuration CI est définie directement dans le code à l'aide de la syntaxe YAML et sert à transmettre des instructions au runner concernant, par exemple, l'exécution, l'ordre ou les conditions des jobs. Pour définir la configuration CI, vous devez créer un fichier nommé **.gitlab-ci.yml**, placé à la racine de votre dépôt. Dans ce guide, nous utiliserons le Web [IDE](/fr-fr/blog/what-is-an-ide/ \"IDE\"/) pour créer et modifier ce fichier.",{"header":93,"content":94},"Création du fichier de configuration","Pour accéder au Web&#xA0;IDE, il vous suffit de cliquer sur le bouton d'accès rapide « WebIDE » situé dans votre projet. Une fois le Web IDE ouvert, accédez à l'explorateur de fichiers sur le côté gauche. Faites un clic droit dans l'explorateur de fichiers et choisissez l'option **Nouveau fichier**. Nommez ce nouveau fichier **.gitlab-ci.yml**.",{"header":96,"content":97},"Définition des étapes du pipeline","L'ordre d'exécution des jobs est déterminé par les étapes définies dans la configuration. Dans ce guide, nous définirons trois étapes : **le build, le test et l'empaquetage,** dans cet ordre précis. Copiez-collez le code suivant dans le fichier **.gitlab-ci.yml** :\n\n```yaml\n  stages:\n    - build\n    - test\n    - package\n```",{"header":99,"content":100},"Définition des jobs du pipeline","Supposons que vous deviez créer deux fichiers texte. Il est impératif que la concaténation de ces deux fichiers contienne la phrase « Hello world ». Notre objectif est de gérer cette exigence à travers les jobs d'un pipeline contenant les étapes de build, de **test** et d'**empaquetage**.",{"header":102,"content":103},"Définition d'un job de build","Nous allons spécifier un job de build qui accomplit les tâches suivantes : créer un premier fichier texte contenant le mot « Hello », créer un deuxième fichier texte contenant le mot « World » et générer un troisième fichier qui stocke le contenu combiné des deux fichiers précédents. Ce dernier fichier est enregistré en tant qu'artefact, afin qu'il puisse être utilisé lors des jobs dans les étapes suivantes du pipeline, notamment pour les tests et l'empaquetage. Ajoutez le code ci-dessous sous le bloc d'étapes :\n\n```yaml\n  build-job:\n    stage: build\n    script:\n      - echo \"Hello \" | tr -d \"\\n\" > file1.txt\n      - echo \"world\" > file2.txt\n      - cat file1.txt file2.txt > compiled.txt\n    artifacts:\n    paths:\n      - compiled.txt\n```",{"header":105,"content":106},"Définition d'un job de test","Pour valider l'intégrité de notre build, nous allons intégrer un job de test qui vérifiera si le fichier **compiled.txt** contient bien la phrase « Hello world ». Ajoutez le code suivant sous le job de build :\n\n```yaml\n  test:\n    stage: test\n    script: cat compiled.txt | grep -q 'Hello world '\n```",{"header":108,"content":109},"Définition d'un job d'empaquetage","Une fois ce test réussi, notre prochain objectif consiste à empaqueter notre code. Pour ce faire, nous devons inclure un job d'empaquetage. Veuillez noter que si le test échoue, l'ensemble du pipeline sera considéré comme en échec et ne s'exécutera pas. Ajoutez le code ci-dessous sous le job de test :\n\n```yaml\n  package:\n    stage: package\n    script: cat compiled.txt | gzip > packaged.gz\n    artifacts:\n      paths:\n        - packaged.gz\n```",{"header":111,"content":112},"Voici à quoi votre pipeline complet devrait ressembler","```yaml\n  stages:          # List of stages for jobs, and their order of execution\n    - build\n    - test\n    - package\n\n  build-job:\n    stage: build\n    script:\n      - echo \"Hello \" | tr -d \"\\n\" > file1.txt\n      - echo \"world\" > file2.txt\n      - cat file1.txt file2.txt > compiled.txt\n    artifacts:\n      paths:\n        - compiled.txt\n\n  test:\n    stage: test\n    script: cat compiled.txt | grep -q 'Hello world'\n\n  package:\n    stage: package\n    script: cat compiled.txt | gzip > packaged.gz\n    artifacts:\n      paths:\n        - packaged.gz\n```\n\nVous trouverez un lien vers le [fichier de configuration](https://gitlab.com/tech-marketing/ci-quickstart/-/blob/main/.gitlab-ci.yml) dans notre exemple de projet.\n\nFélicitations ! Vous venez de créer votre premier pipeline CI.",{"config":114,"header":40,"show":77,"hide":78,"items":116},{"id":115},"step-3",[117,119],{"header":81,"content":118},"Pour activer l'[intégration continue (CI)](/fr-fr/solutions/continuous-integration/) au sein de notre projet, nous devons effectuer un push du fichier **.gitlab-ci.yml** vers le dépôt. Une fois ce fichier situé à la racine du dépôt, chaque commit effectué au sein du projet lancera automatiquement un pipeline CI. Le pipeline initial s'exécutera immédiatement après avoir effectué un push de ce fichier vers le serveur.",{"header":84,"content":120},"* Cliquez sur le bouton « Fusionner » situé sur le côté gauche de l'explorateur de fichiers.\n* Écrivez un message de commit, par exemple « Ajout d'une configuration CI. »\n* Cliquez sur **Valider et pousser**.\n* Lorsque le message « Valider dans une nouvelle branche ? » apparaît, sélectionnez « Non, utiliser la branche principale actuelle ».\n* Pour revenir à votre projet, cliquez sur le bouton **Accéder au projet** situé en bas à gauche.\n\n**Félicitations ! Votre projet a bien été configuré pour lancer automatiquement un pipeline CI à chaque commit de code.**",{"config":122,"header":44,"show":77,"hide":78,"items":124},{"id":123},"step-4",[125,127],{"header":81,"content":126},"Pendant que le pipeline est en cours d'exécution, vous pouvez surveiller son état dans l'onglet [**CI/CD**](/fr-fr/topics/ci-cd/). Cette fonctionnalité vous permet de suivre facilement la progression de vos jobs, y compris leur statut d'exécution (par exemple, s'ils ont démarré, s'ils ont été effectués avec succès ou s'ils ont échoué). Vous pouvez également consulter les données de sortie générées par vos scripts de jobs.",{"header":84,"content":128},"* Accédez au projet GitLab et consultez le menu de gauche.\n* Cliquez sur **CI/CD** dans le menu, puis sur **Pipelines**.\n* Sur la page **Pipelines**, cherchez le bouton Pipeline dans la colonne **Statut** et cliquez dessus pour ouvrir le graphe de pipeline.\n* Cet outil vous permet de consulter les jobs et leurs statuts respectifs.\n* Cliquez sur un job pour ouvrir la console de jobs et en afficher les détails. Vous pouvez y visualiser toutes les étapes exécutées par le runner.\n* Accédez au job d'empaquetage depuis la console pour afficher les étapes qui ont été traitées par le runner.\n* Le job d'empaquetage génère un artefact que vous pouvez télécharger en cliquant sur le bouton **Téléchargement** situé sur le côté droit.\n* Ces différentes étapes vous permettent de suivre efficacement le statut du pipeline, d'inspecter les détails du job et de récupérer tous les artefacts ou empaquetages pertinents générés lors de l'exécution du pipeline.\n\n**Félicitations ! Vous venez d'exécuter votre premier pipeline avec succès. À ce stade, vous avez consulté les résultats et téléchargé l'artefact du job.**",{"config":130,"header":48,"show":77,"hide":78,"items":132},{"id":131},"step-5",[133,135],{"header":81,"content":134},"Nous allons modifier la valeur attendue dans le job de test pour que celui-ci et l'ensemble du pipeline échouent.",{"header":84,"content":136},"* Modifiez le job de **test** en remplaçant la phrase « Hello World » par « hello world » (en lettres minuscules).\n* Validez les modifications de code et accédez au pipeline, comme à l'étape 4.\n* En vérifiant le pipeline, vous constaterez que le job de test a échoué. De plus, le job d'**empaquetage** suivant n'a pas démarré et l'exécution du pipeline a échoué, comme prévu.",{"config":138,"header":52,"show":77,"hide":78,"items":140},{"id":139},"step-6",[141,143],{"header":81,"content":142},"À l'étape 5, nous avons vu que l'échec du job a fait échouer l'ensemble du pipeline. Vous pouvez introduire une logique dans votre pipeline qui détermine quand un échec de job entraînera l'échec de l'ensemble du pipeline. Pour ce faire, procédez comme suit :\n\n* Évaluez les conditions dans lesquelles vous souhaitez qu'un échec de job entraîne un échec du pipeline. Vous pouvez, par exemple, empêcher l'exécution d'un pipeline si un job échoue sur la branche principale ou par défaut, tout en tolérant les échecs sur les autres branches.\n* Définissez les règles qui régissent le comportement d'échec. Vous pouvez utiliser des variables telles que $CI_COMMIT_BRANCH pour vérifier la branche actuelle et prendre des décisions en fonction de celle-ci.\n* Définissez vos conditions et spécifiez si le job doit être marqué comme **allow_failure: false** ou **allow_failure: true**.",{"header":84,"content":144},"* Ajoutez des règles/conditions à votre job de test.\n* Utilisez le mot-clé **allow_failure** défini sur **true** ou **false** en fonction de la branche.\n\n```yaml\n  test:\n    stage: test\n    script: cat compiled.txt | grep -q 'Hello world'\n    rules:\n      - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH\n        allow_failure: false\n      - if: $CI_COMMIT_BRANCH\n        allow_failure: true\n```",{"config":146,"header":56,"show":77,"hide":78,"items":148},{"id":147},"step-7",[149,151],{"header":81,"content":150},"Pour simplifier la configuration du pipeline, vous pouvez tirer parti des templates de pipeline intégrés fournis par GitLab. Ceux-ci sont prédéfinis pour les cas d'utilisation courants, tels que les scans de sécurité et les déploiements sur AWS.\n\nPour utiliser les templates de pipeline intégrés, procédez comme suit :\n\n* Parcourez les templates de pipeline proposés par GitLab pour divers scénarios (build, test et déploiement), disponibles sur [cette page](https://gitlab.com/gitlab-org/gitlab-foss/tree/master/lib/gitlab/ci/templates).\n* Sélectionnez le template qui correspond à vos besoins.\n* Incorporez le template dans la configuration de votre pipeline en y faisant référence dans votre fichier **.gitlab-ci.yml**. Pour ce faire, importez le template à l'aide du mot-clé **include** et précisez le chemin ou l'URL du fichier de template.\n\nDans ce guide, nous allons ajouter le scan Code Quality à notre configuration à l'aide du template Code-Quality.",{"header":84,"content":152},"Ajoutez le template Code-Quality à votre fichier **.gitlab-ci.yml** en ajoutant le code suivant sous le bloc d'étapes.\n\n```yaml\n  include:\n    - template: Jobs/Code-Quality.gitlab-ci.yml\n```\n\nValidez et effectuez un push de cette modification.\n\nVous remarquerez qu'un job Code Quality a été ajouté à votre pipeline. Le scanner Code Quality passera en revue chaque modification de code validée dans ce dépôt et signalera les problèmes de qualité à corriger. Ces informations clés vous aident à améliorer votre code source et à en optimiser les performances.\n\nC'est tout ! En suivant ces étapes, vous devriez être en mesure de maîtriser les bases de GitLab CI et d'automatiser les processus de build et de test de votre projet.",{"type":154,"componentName":154,"componentContent":155},"CommonCardGrid",{"config":156,"title":159,"cards":160},{"columns":157,"theme":158},3,"purple","Prochaines étapes",[161,174,185],{"image":162,"title":166,"description":167,"button":168},{"altText":163,"config":164},"",{"src":165},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1751663568/tcmwpweaxyr0hsh4m2bf.png?","Vous voulez en savoir plus sur GitLab CI ?","Découvrez les bases de GitLab CI dans cette vidéo de démonstration, idéale pour les débutants et les personnes qui souhaitent approfondir leurs connaissances de GitLab CI.",{"text":169,"config":170},"Démo de présentation de GitLab CI",{"href":171,"dataGaName":172,"dataGaLocation":173},"https://youtu.be/WKR-7clknsA","CI overview demo","body",{"image":175,"title":178,"description":179,"button":180},{"altText":163,"config":176},{"src":177},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1751663863/zgovjo3vv2ik0nbim6db.png?","Créez des tickets","Les tickets GitLab permettent de suivre et de gérer les tâches, les bogues ou les demandes de fonctionnalités au sein d'un projet, tout en procurant un espace de collaboration centralisé pour discuter, assigner et suivre l'avancement des éléments de travail.",{"text":181,"config":182},"Tickets",{"href":183,"dataGaName":184,"dataGaLocation":173},"https://docs.gitlab.com/ee/user/project/issues/","issues",{"image":186,"title":189,"description":190,"button":191},{"altText":163,"config":187},{"src":188},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1751663742/ggf3qelfxf5bjjopwagh.png?","Ajoutez des scans de sécurité à votre pipeline","Optimisez votre intégration continue grâce aux scans de sécurité intégrés de GitLab qui fournissent aux équipes de développement des retours instantanés sur les risques potentiels de leurs modifications de code.",{"text":192,"config":193},"Sécurité des applications",{"href":194,"dataGaName":195,"dataGaLocation":173},"/blog/getting-started-with-gitlab-application-security/","Application security","yml",{},"/fr-fr/get-started/continuous-integration",{"title":200,"ogTitle":201,"description":202,"ogDescription":203},"Guide de démarrage rapide : intégration continue GitLab","Démarrage rapide pour l'intégration continue GitLab","Découvrez le processus de configuration d'un projet dans GitLab et de création d'une configuration CI directement dans votre code.","Vous serez guidé dans le processus de configuration d'un projet dans GitLab et de création d'une configuration CI simple en code.","fr-fr/get-started/continuous-integration","7-zB71o6tzE7O_PRsG14tJASXeFT-ZYpc-64R_WBJWU",{"data":207},{"logo":208,"freeTrial":213,"sales":218,"login":223,"items":228,"search":537,"minimal":572,"duo":590,"pricingDeployment":600},{"config":209},{"href":210,"dataGaName":211,"dataGaLocation":212},"/fr-fr/","gitlab logo","header",{"text":214,"config":215},"Commencer un essai gratuit",{"href":216,"dataGaName":217,"dataGaLocation":212},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/fr-fr&glm_content=default-saas-trial/","free trial",{"text":219,"config":220},"Contacter l'équipe commerciale",{"href":221,"dataGaName":222,"dataGaLocation":212},"/fr-fr/sales/","sales",{"text":224,"config":225},"Connexion",{"href":226,"dataGaName":227,"dataGaLocation":212},"https://gitlab.com/users/sign_in/","sign in",[229,256,353,358,458,518],{"text":230,"config":231,"cards":233},"Plateforme",{"dataNavLevelOne":232},"platform",[234,240,248],{"title":230,"description":235,"link":236},"La plateforme d'orchestration intelligente pour le DevSecOps",{"text":237,"config":238},"Découvrir notre plateforme",{"href":239,"dataGaName":232,"dataGaLocation":212},"/fr-fr/platform/",{"title":241,"description":242,"link":243},"GitLab Duo Agent Platform","L'IA agentique pour l'ensemble du cycle de développement logiciel",{"text":244,"config":245},"Découvrir GitLab Duo",{"href":246,"dataGaName":247,"dataGaLocation":212},"/fr-fr/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":249,"description":250,"link":251},"Choisir GitLab","Découvrez les principales raisons pour lesquelles les entreprises choisissent GitLab",{"text":252,"config":253},"En savoir plus",{"href":254,"dataGaName":255,"dataGaLocation":212},"/fr-fr/why-gitlab/","why gitlab",{"text":257,"left":24,"config":258,"link":260,"lists":264,"footer":335},"Produit",{"dataNavLevelOne":259},"solutions",{"text":261,"config":262},"Voir toutes les solutions",{"href":263,"dataGaName":259,"dataGaLocation":212},"/fr-fr/solutions/",[265,290,313],{"title":266,"description":267,"link":268,"items":273},"Automatisation","CI/CD et automatisation pour accélérer le déploiement",{"config":269},{"icon":270,"href":271,"dataGaName":272,"dataGaLocation":212},"AutomatedCodeAlt","/fr-fr/solutions/delivery-automation/","automated software delivery",[274,278,281,286],{"text":275,"config":276},"CI/CD",{"href":277,"dataGaLocation":212,"dataGaName":275},"/fr-fr/solutions/continuous-integration/",{"text":241,"config":279},{"href":246,"dataGaLocation":212,"dataGaName":280},"gitlab duo agent platform - product menu",{"text":282,"config":283},"Gestion du code source",{"href":284,"dataGaLocation":212,"dataGaName":285},"/fr-fr/solutions/source-code-management/","Source Code Management",{"text":287,"config":288},"Livraison de logiciels automatisée",{"href":271,"dataGaLocation":212,"dataGaName":289},"Automated software delivery",{"title":291,"description":292,"link":293,"items":298},"Sécurité","Livrez du code plus rapidement sans compromettre la sécurité",{"config":294},{"href":295,"dataGaName":296,"dataGaLocation":212,"icon":297},"/fr-fr/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[299,303,308],{"text":300,"config":301},"Tests de sécurité des applications",{"href":295,"dataGaName":302,"dataGaLocation":212},"Application security testing",{"text":304,"config":305},"Sécurité de la chaîne d'approvisionnement logicielle",{"href":306,"dataGaLocation":212,"dataGaName":307},"/fr-fr/solutions/supply-chain/","Software supply chain security",{"text":309,"config":310},"Conformité logicielle",{"href":311,"dataGaName":312,"dataGaLocation":212},"/fr-fr/solutions/software-compliance/","Software Compliance",{"title":314,"link":315,"items":320},"Mesures",{"config":316},{"icon":317,"href":318,"dataGaName":319,"dataGaLocation":212},"DigitalTransformation","/fr-fr/solutions/visibility-measurement/","visibility and measurement",[321,325,330],{"text":322,"config":323},"Visibilité et mesures",{"href":318,"dataGaLocation":212,"dataGaName":324},"Visibility and Measurement",{"text":326,"config":327},"Gestion de la chaîne de valeur",{"href":328,"dataGaLocation":212,"dataGaName":329},"/fr-fr/solutions/value-stream-management/","Value Stream Management",{"text":331,"config":332},"Données d'analyse et informations clés",{"href":333,"dataGaLocation":212,"dataGaName":334},"/fr-fr/solutions/analytics-and-insights/","Analytics and insights",{"title":336,"items":337},"GitLab pour",[338,343,348],{"text":339,"config":340},"Entreprises",{"href":341,"dataGaLocation":212,"dataGaName":342},"/fr-fr/enterprise/","enterprise",{"text":344,"config":345},"PME",{"href":346,"dataGaLocation":212,"dataGaName":347},"/fr-fr/small-business/","small business",{"text":349,"config":350},"Secteur public",{"href":351,"dataGaLocation":212,"dataGaName":352},"/fr-fr/solutions/public-sector/","public sector",{"text":354,"config":355},"Tarifs",{"href":356,"dataGaName":357,"dataGaLocation":212,"dataNavLevelOne":357},"/fr-fr/pricing/","pricing",{"text":359,"config":360,"link":362,"lists":366,"feature":445},"Ressources",{"dataNavLevelOne":361},"resources",{"text":363,"config":364},"Afficher toutes les ressources",{"href":365,"dataGaName":361,"dataGaLocation":212},"/fr-fr/resources/",[367,399,417],{"title":368,"items":369},"Premiers pas",[370,375,379,384,389,394],{"text":371,"config":372},"Installation",{"href":373,"dataGaName":374,"dataGaLocation":212},"/fr-fr/install/","install",{"text":376,"config":377},"Guides de démarrage",{"href":15,"dataGaName":378,"dataGaLocation":212},"quick setup checklists",{"text":380,"config":381},"Apprentissage",{"href":382,"dataGaLocation":212,"dataGaName":383},"https://university.gitlab.com/","learn",{"text":385,"config":386},"Documentation sur le produit",{"href":387,"dataGaName":388,"dataGaLocation":212},"https://docs.gitlab.com/","product documentation",{"text":390,"config":391},"Vidéos sur les bonnes pratiques",{"href":392,"dataGaName":393,"dataGaLocation":212},"/fr-fr/getting-started-videos/","best practice videos",{"text":395,"config":396},"Intégrations",{"href":397,"dataGaName":398,"dataGaLocation":212},"/fr-fr/integrations/","integrations",{"title":400,"items":401},"Découvrir",[402,407,412],{"text":403,"config":404},"Témoignages clients",{"href":405,"dataGaName":406,"dataGaLocation":212},"/fr-fr/customers/","customer success stories",{"text":408,"config":409},"Blog",{"href":410,"dataGaName":411,"dataGaLocation":212},"/fr-fr/blog/","blog",{"text":413,"config":414},"Travail à distance",{"href":415,"dataGaName":416,"dataGaLocation":212},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":418,"items":419},"Connecter",[420,425,430,435,440],{"text":421,"config":422},"Services GitLab",{"href":423,"dataGaName":424,"dataGaLocation":212},"/fr-fr/services/","services",{"text":426,"config":427},"Communauté",{"href":428,"dataGaName":429,"dataGaLocation":212},"/community/","community",{"text":431,"config":432},"Forum",{"href":433,"dataGaName":434,"dataGaLocation":212},"https://forum.gitlab.com/","forum",{"text":436,"config":437},"Événements",{"href":438,"dataGaName":439,"dataGaLocation":212},"/events/","events",{"text":441,"config":442},"Partenaires",{"href":443,"dataGaName":444,"dataGaLocation":212},"/fr-fr/partners/","partners",{"backgroundColor":446,"textColor":447,"text":448,"image":449,"link":453},"#2f2a6b","#fff","L'avenir du développement logiciel. Tendances et perspectives.",{"altText":450,"config":451},"carte promo The Source",{"src":452},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758208064/dzl0dbift9xdizyelkk4.svg",{"text":454,"config":455},"Lire les articles les plus récents",{"href":456,"dataGaName":457,"dataGaLocation":212},"/fr-fr/the-source/","the source",{"text":459,"config":460,"lists":462},"Société",{"dataNavLevelOne":461},"company",[463],{"items":464},[465,470,476,478,483,488,493,498,503,508,513],{"text":466,"config":467},"À propos",{"href":468,"dataGaName":469,"dataGaLocation":212},"/fr-fr/company/","about",{"text":471,"config":472,"footerGa":475},"Carrières",{"href":473,"dataGaName":474,"dataGaLocation":212},"/jobs/","jobs",{"dataGaName":474},{"text":436,"config":477},{"href":438,"dataGaName":439,"dataGaLocation":212},{"text":479,"config":480},"Leadership",{"href":481,"dataGaName":482,"dataGaLocation":212},"/company/team/e-group/","leadership",{"text":484,"config":485},"Équipe",{"href":486,"dataGaName":487,"dataGaLocation":212},"/company/team/","team",{"text":489,"config":490},"Manuel",{"href":491,"dataGaName":492,"dataGaLocation":212},"https://handbook.gitlab.com/","handbook",{"text":494,"config":495},"Relations avec les investisseurs",{"href":496,"dataGaName":497,"dataGaLocation":212},"https://ir.gitlab.com/","investor relations",{"text":499,"config":500},"Centre de confiance",{"href":501,"dataGaName":502,"dataGaLocation":212},"/fr-fr/security/","trust center",{"text":504,"config":505},"Centre pour la transparence de l'IA",{"href":506,"dataGaName":507,"dataGaLocation":212},"/fr-fr/ai-transparency-center/","ai transparency center",{"text":509,"config":510},"Newsletter",{"href":511,"dataGaName":512,"dataGaLocation":212},"/company/contact/#contact-forms","newsletter",{"text":514,"config":515},"Presse",{"href":516,"dataGaName":517,"dataGaLocation":212},"/press/","press",{"text":519,"config":520,"lists":521},"Nous contacter",{"dataNavLevelOne":461},[522],{"items":523},[524,527,532],{"text":219,"config":525},{"href":221,"dataGaName":526,"dataGaLocation":212},"talk to sales",{"text":528,"config":529},"Portail d’assistance",{"href":530,"dataGaName":531,"dataGaLocation":212},"https://support.gitlab.com","support portal",{"text":533,"config":534},"Portail clients GitLab",{"href":535,"dataGaName":536,"dataGaLocation":212},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":538,"login":539,"suggestions":546},"Fermer",{"text":540,"link":541},"Pour rechercher des dépôts et des projets, connectez-vous à",{"text":542,"config":543},"gitlab.com",{"href":226,"dataGaName":544,"dataGaLocation":545},"search login","search",{"text":547,"default":548},"Suggestions",[549,551,556,558,563,568],{"text":241,"config":550},{"href":246,"dataGaName":241,"dataGaLocation":545},{"text":552,"config":553},"Suggestions de code (IA)",{"href":554,"dataGaName":555,"dataGaLocation":545},"/fr-fr/solutions/code-suggestions/","Code Suggestions (AI)",{"text":275,"config":557},{"href":277,"dataGaName":275,"dataGaLocation":545},{"text":559,"config":560},"GitLab sur AWS",{"href":561,"dataGaName":562,"dataGaLocation":545},"/fr-fr/partners/technology-partners/aws/","GitLab on AWS",{"text":564,"config":565},"GitLab sur Google Cloud ",{"href":566,"dataGaName":567,"dataGaLocation":545},"/fr-fr/partners/technology-partners/google-cloud-platform/","GitLab on Google Cloud",{"text":569,"config":570},"Pourquoi utiliser GitLab ?",{"href":254,"dataGaName":571,"dataGaLocation":545},"Why GitLab?",{"freeTrial":573,"mobileIcon":578,"desktopIcon":583,"secondaryButton":586},{"text":574,"config":575},"Commencer votre essai gratuit",{"href":576,"dataGaName":217,"dataGaLocation":577},"https://gitlab.com/-/trials/new/","nav",{"altText":579,"config":580},"Icône GitLab",{"src":581,"dataGaName":582,"dataGaLocation":577},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":579,"config":584},{"src":585,"dataGaName":582,"dataGaLocation":577},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":13,"config":587},{"href":588,"dataGaName":589,"dataGaLocation":577},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/fr-fr/compare/gitlab-vs-github/","get started",{"freeTrial":591,"mobileIcon":596,"desktopIcon":598},{"text":592,"config":593},"En savoir plus sur GitLab Duo",{"href":594,"dataGaName":595,"dataGaLocation":577},"/fr-fr/gitlab-duo/","gitlab duo",{"altText":579,"config":597},{"src":581,"dataGaName":582,"dataGaLocation":577},{"altText":579,"config":599},{"src":585,"dataGaName":582,"dataGaLocation":577},{"freeTrial":601,"mobileIcon":606,"desktopIcon":608},{"text":602,"config":603},"Retour aux tarifs",{"href":356,"dataGaName":604,"dataGaLocation":577,"icon":605},"back to pricing","GoBack",{"altText":579,"config":607},{"src":581,"dataGaName":582,"dataGaLocation":577},{"altText":579,"config":609},{"src":585,"dataGaName":582,"dataGaLocation":577},{"title":611,"button":612,"config":617},"Découvrez comment l'IA agentique transforme la livraison logicielle",{"text":613,"config":614},"Regarder GitLab Transcend maintenant",{"href":615,"dataGaName":616,"dataGaLocation":212},"/fr-fr/events/transcend/virtual/","transcend event",{"layout":618,"icon":619},"release","AiStar",{"data":621},{"text":622,"source":623,"edit":629,"contribute":634,"config":639,"items":644,"minimal":821},"Git est une marque déposée de Software Freedom Conservancy et notre utilisation de « GitLab » est sous licence",{"text":624,"config":625},"Afficher le code source de la page",{"href":626,"dataGaName":627,"dataGaLocation":628},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":630,"config":631},"Modifier cette page",{"href":632,"dataGaName":633,"dataGaLocation":628},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":635,"config":636},"Veuillez contribuer",{"href":637,"dataGaName":638,"dataGaLocation":628},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":640,"facebook":641,"youtube":642,"linkedin":643},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[645,668,722,754,789],{"title":230,"links":646,"subMenu":651},[647],{"text":648,"config":649},"Plateforme DevSecOps",{"href":239,"dataGaName":650,"dataGaLocation":628},"devsecops platform",[652],{"title":354,"links":653},[654,658,663],{"text":655,"config":656},"Voir les forfaits",{"href":356,"dataGaName":657,"dataGaLocation":628},"view plans",{"text":659,"config":660},"Pourquoi choisir GitLab Premium ?",{"href":661,"dataGaName":662,"dataGaLocation":628},"/fr-fr/pricing/premium/","why premium",{"text":664,"config":665},"Pourquoi choisir GitLab Ultimate ?",{"href":666,"dataGaName":667,"dataGaLocation":628},"/fr-fr/pricing/ultimate/","why ultimate",{"title":669,"links":670},"Solutions",[671,676,679,681,686,691,695,698,701,706,708,710,712,717],{"text":672,"config":673},"Transformation digitale",{"href":674,"dataGaName":675,"dataGaLocation":628},"/fr-fr/topics/digital-transformation/","digital transformation",{"text":677,"config":678},"Sécurité et conformité",{"href":295,"dataGaName":302,"dataGaLocation":628},{"text":287,"config":680},{"href":271,"dataGaName":272,"dataGaLocation":628},{"text":682,"config":683},"Développement agile",{"href":684,"dataGaName":685,"dataGaLocation":628},"/fr-fr/solutions/agile-delivery/","agile delivery",{"text":687,"config":688},"Transformation cloud",{"href":689,"dataGaName":690,"dataGaLocation":628},"/fr-fr/topics/cloud-native/","cloud transformation",{"text":692,"config":693},"SCM",{"href":284,"dataGaName":694,"dataGaLocation":628},"source code management",{"text":275,"config":696},{"href":277,"dataGaName":697,"dataGaLocation":628},"continuous integration & delivery",{"text":326,"config":699},{"href":328,"dataGaName":700,"dataGaLocation":628},"value stream management",{"text":702,"config":703},"GitOps",{"href":704,"dataGaName":705,"dataGaLocation":628},"/fr-fr/solutions/gitops/","gitops",{"text":339,"config":707},{"href":341,"dataGaName":342,"dataGaLocation":628},{"text":344,"config":709},{"href":346,"dataGaName":347,"dataGaLocation":628},{"text":349,"config":711},{"href":351,"dataGaName":352,"dataGaLocation":628},{"text":713,"config":714},"Formation",{"href":715,"dataGaName":716,"dataGaLocation":628},"/fr-fr/solutions/education/","education",{"text":718,"config":719},"Services financiers",{"href":720,"dataGaName":721,"dataGaLocation":628},"/fr-fr/solutions/finance/","financial services",{"title":359,"links":723},[724,726,729,731,734,736,739,742,744,746,748,750,752],{"text":371,"config":725},{"href":373,"dataGaName":374,"dataGaLocation":628},{"text":727,"config":728},"Guides de démarrage rapide",{"href":15,"dataGaName":378,"dataGaLocation":628},{"text":380,"config":730},{"href":382,"dataGaName":383,"dataGaLocation":628},{"text":385,"config":732},{"href":387,"dataGaName":733,"dataGaLocation":628},"docs",{"text":408,"config":735},{"href":410,"dataGaName":411},{"text":737,"config":738},"Histoires de réussite client",{"href":405,"dataGaLocation":628},{"text":740,"config":741},"Histoires de succès client",{"href":405,"dataGaName":406,"dataGaLocation":628},{"text":413,"config":743},{"href":415,"dataGaName":416,"dataGaLocation":628},{"text":421,"config":745},{"href":423,"dataGaName":424,"dataGaLocation":628},{"text":426,"config":747},{"href":428,"dataGaName":429,"dataGaLocation":628},{"text":431,"config":749},{"href":433,"dataGaName":434,"dataGaLocation":628},{"text":436,"config":751},{"href":438,"dataGaName":439,"dataGaLocation":628},{"text":441,"config":753},{"href":443,"dataGaName":444,"dataGaLocation":628},{"title":459,"links":755},[756,758,761,763,765,767,769,773,778,780,782,784],{"text":466,"config":757},{"href":468,"dataGaName":461,"dataGaLocation":628},{"text":759,"config":760},"Emplois",{"href":473,"dataGaName":474,"dataGaLocation":628},{"text":479,"config":762},{"href":481,"dataGaName":482,"dataGaLocation":628},{"text":484,"config":764},{"href":486,"dataGaName":487,"dataGaLocation":628},{"text":489,"config":766},{"href":491,"dataGaName":492,"dataGaLocation":628},{"text":494,"config":768},{"href":496,"dataGaName":497,"dataGaLocation":628},{"text":770,"config":771},"Sustainability",{"href":772,"dataGaName":770,"dataGaLocation":628},"/sustainability/",{"text":774,"config":775},"Diversité, inclusion et appartenance (DIB)",{"href":776,"dataGaName":777,"dataGaLocation":628},"/fr-fr/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":499,"config":779},{"href":501,"dataGaName":502,"dataGaLocation":628},{"text":509,"config":781},{"href":511,"dataGaName":512,"dataGaLocation":628},{"text":514,"config":783},{"href":516,"dataGaName":517,"dataGaLocation":628},{"text":785,"config":786},"Déclaration de transparence sur l'esclavage moderne",{"href":787,"dataGaName":788,"dataGaLocation":628},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"title":519,"links":790},[791,794,799,801,806,811,816],{"text":792,"config":793},"Échanger avec un expert",{"href":221,"dataGaName":222,"dataGaLocation":628},{"text":795,"config":796},"Aide",{"href":797,"dataGaName":798,"dataGaLocation":628},"/support/","get help",{"text":533,"config":800},{"href":535,"dataGaName":536,"dataGaLocation":628},{"text":802,"config":803},"Statut",{"href":804,"dataGaName":805,"dataGaLocation":628},"https://status.gitlab.com/","status",{"text":807,"config":808},"Conditions d'utilisation",{"href":809,"dataGaName":810},"/terms/","terms of use",{"text":812,"config":813},"Déclaration de confidentialité",{"href":814,"dataGaName":815,"dataGaLocation":628},"/fr-fr/privacy/","privacy statement",{"text":817,"config":818},"Préférences en matière de cookies",{"dataGaName":819,"dataGaLocation":628,"id":820,"isOneTrustButton":24},"cookie preferences","ot-sdk-btn",{"items":822},[823,825,828],{"text":807,"config":824},{"href":809,"dataGaName":810,"dataGaLocation":628},{"text":826,"config":827},"Politique de confidentialité",{"href":814,"dataGaName":815,"dataGaLocation":628},{"text":817,"config":829},{"dataGaName":819,"dataGaLocation":628,"id":820,"isOneTrustButton":24},1772652103333]