[{"data":1,"prerenderedAt":2026},["ShallowReactive",2],{"/fr-fr/blog/what-is-gitlab-runner":3,"navigation-fr-fr":1241,"banner-fr-fr":1675,"footer-fr-fr":1683,"blog-post-authors-fr-fr-GitLab France Team":1922,"blog-related-posts-fr-fr-what-is-gitlab-runner":1938,"blog-promotions-fr-fr":1964,"next-steps-fr-fr":2017},{"id":4,"title":5,"authors":6,"body":8,"category":1220,"date":1221,"description":1222,"extension":1223,"externalUrl":1224,"faq":1224,"featured":1225,"heroImage":1226,"meta":1227,"navigation":357,"path":1228,"seo":1229,"slug":1233,"stem":1234,"tags":1235,"template":1239,"updatedDate":1224,"__hash__":1240},"blogPosts/fr-fr/blog/what-is-gitlab-runner.md","GitLab Runner : installation, configuration et bonnes pratiques pour vos pipelines CI/CD",[7],"GitLab France Team",{"type":9,"value":10,"toc":1201},"minimark",[11,33,36,41,53,82,94,98,107,130,133,147,151,157,160,201,213,217,226,231,234,252,265,271,307,313,332,338,373,384,491,496,510,514,517,533,537,540,543,548,603,608,629,633,636,639,644,666,671,691,696,713,722,730,759,767,778,782,791,799,804,828,834,837,854,866,869,872,949,953,956,961,967,973,988,1077,1081,1089,1093,1118,1122,1150,1154,1174,1178,1188,1197],[12,13,14,15,22,23,27,28,32],"p",{},"Derrière chaque ",[16,17,21],"a",{"href":18,"rel":19,"title":20},"https://about.gitlab.com/fr-fr/topics/ci-cd/cicd-pipeline/",[],"Qu'est-ce\nqu'un pipeline CI/CD ?","pipeline\nCI/CD"," réussi se cache un acteur discret mais\nindispensable : ",[24,25,26],"strong",{},"GitLab Runner",". C’est lui qui exécute les jobs définis\ndans vos fichiers ",[29,30,31],"code",{},".gitlab-ci.yml"," et permet de lancer des tests, de\nconstruire une application ou de déployer du code.",[12,34,35],{},"Sans runner, vos pipelines restent à l’état de promesse. Avec lui, ils deviennent concrets et reproductibles. Dans cet article, nous allons expliquer ce qu’est GitLab Runner, comment l’installer et le configurer, puis partager des bonnes pratiques pour en tirer le meilleur parti.",[37,38,40],"h2",{"id":39},"quest-ce-que-gitlab-runner","Qu’est-ce que GitLab Runner ?",[12,42,43,45,46,52],{},[24,44,26],{}," est une application ",[16,47,51],{"href":48,"rel":49,"title":50},"https://about.gitlab.com/fr-fr/blog/what-is-open-source/",[],"Qu'est-ce que l'open source ?","open source"," écrite en Go, qui exécute les jobs de vos pipelines CI/CD. Lorsqu’un développeur effectue un push du code, GitLab déclenche un pipeline et distribue les jobs aux runners disponibles. Ceux-ci s’exécutent puis renvoient leurs résultats (logs, artefacts, statut) à GitLab.",[12,54,55,56,59,60,63,64,67,68,74,75,81],{},"Un ",[24,57,58],{},"pipeline"," étant une suite automatisée de jobs (compilation, test, déploiement), le ",[24,61,62],{},"runner"," est l’agent chargé de les exécuter sur une machine donnée. L’",[24,65,66],{},"executor"," du runner définit quant à lui l’environnement dans lequel les jobs s'exécutent : ",[16,69,73],{"href":70,"rel":71,"title":72},"https://about.gitlab.com/fr-fr/blog/what-is-docker-comprehensive-guide/",[],"Qu'est-ce que Docker ?","Docker",", Shell, ",[16,76,80],{"href":77,"rel":78,"title":79},"https://about.gitlab.com/fr-fr/blog/kubernetes-the-container-orchestration-solution/",[],"Qu'est-ce que Kubernetes ?","Kubernetes",", etc.",[83,84,85],"blockquote",{},[12,86,87],{},[24,88,89],{},[16,90,93],{"href":91,"rel":92},"https://about.gitlab.com/fr-fr/free-trial/devsecops/?utm_medium=blog&utm_source=blog&utm_campaign=eg_emea_x_trial_x_fr_blog_fr",[],"→ Essayez GitLab Ultimate et GitLab Duo Enterprise gratuitement.",[37,95,97],{"id":96},"quels-sont-les-types-de-runners-disponibles-dans-gitlab-cicd","Quels sont les types de runners disponibles dans GitLab CI/CD ?",[12,99,100,101,106],{},"GitLab Runner propose les ",[16,102,105],{"href":103,"rel":104},"https://docs.gitlab.com/ci/runners/runners_scope/",[],"types de runners"," suivants, disponibles en fonction des personnes auxquelles vous souhaitez donner accès :",[108,109,110,118,124],"ul",{},[111,112,113,114,117],"li",{},"Les ",[24,115,116],{},"runners d’instance"," : disponibles pour tous les groupes et projets d'une instance GitLab.",[111,119,113,120,123],{},[24,121,122],{},"runners de groupe"," : disponibles pour tous les projets et sous-groupes d'un groupe.",[111,125,113,126,129],{},[24,127,128],{},"runners de projets"," : associés à des projets spécifiques. En général, les runners de projet sont utilisés par un seul projet à la fois.",[12,131,132],{},"Ces runners peuvent être hébergés de deux manières différentes :",[108,134,135,141],{},[111,136,113,137,140],{},[24,138,139],{},"runners hébergés"," : gérés par GitLab et disponibles sur GitLab.com, sans installation requise. Bien qu'ils permettent de démarrer rapidement, leurs possibilités de configuration restent restreintes.",[111,142,113,143,146],{},[24,144,145],{},"runners auto-hébergés"," : installés, configurés et administrés par vos soins sur vos serveurs, machines virtuelles ou clusters. Ils offrent un contrôle total et s’adaptent aux environnements spécifiques.",[37,148,150],{"id":149},"quels-sont-les-executors-supportés-par-gitlab-runner","Quels sont les executors supportés par GitLab Runner ?",[12,152,153,154,156],{},"Lors de l’installation d’un GitLab Runner, vous devez choisir un ",[24,155,66],{},", c’est-à-dire l’environnement dans lequel vos jobs seront exécutés. Le choix de l’executor a un impact direct sur la sécurité, la performance et la flexibilité de vos pipelines.",[12,158,159],{},"Voici les executors les plus utilisés :",[108,161,162,171,181,191],{},[111,163,164,170],{},[24,165,166],{},[16,167,73],{"href":168,"rel":169},"https://docs.gitlab.com/runner/executors/docker/",[]," : il exécute chaque job dans un conteneur isolé. Il est rapide, flexible et recommandé pour la majorité des projets.",[111,172,173,180],{},[24,174,175],{},[16,176,179],{"href":177,"rel":178},"https://docs.gitlab.com/runner/executors/shell/",[],"Shell"," : il exécute directement les jobs sur la machine hôte. Il est simple, mais sans isolation.",[111,182,183,190],{},[24,184,185],{},[16,186,189],{"href":187,"rel":188},"https://docs.gitlab.com/runner/executors/kubernetes/",[],"Kubernetes ",": il exécute les jobs dans des pods Kubernetes, avec une scalabilité native.",[111,192,193,200],{},[24,194,195],{},[16,196,199],{"href":197,"rel":198},"https://docs.gitlab.com/runner/executors/virtualbox/",[],"VirtualBox / Parallels"," : il exécute des jobs dans des environnements spécifiques comme macOS.",[12,202,203,204,206,207,212],{},"Le choix dépend de vos besoins. Pour la plupart des projets, ",[24,205,73],{}," est la meilleure option. Pour en savoir plus sur les executors, ",[16,208,211],{"href":209,"rel":210},"https://docs.gitlab.com/runner/executors/",[],"consultez notre documentation",".",[37,214,216],{"id":215},"comment-installer-gitlab-runner","Comment installer GitLab Runner ?",[12,218,219,220,225],{},"L’",[16,221,224],{"href":222,"rel":223},"https://docs.gitlab.com/runner/install/",[],"installation de GitLab Runner"," dépend de votre système d’exploitation et de votre environnement cible. Voici les scénarios les plus courants.",[227,228,230],"h3",{"id":229},"installation-sur-linux-debianubuntu","Installation sur Linux (Debian/Ubuntu)",[12,232,233],{},"Linux est le système le plus fréquent pour héberger des runners auto-hébergés, notamment côté serveurs. Son installation peut se faire de deux manières :",[108,235,236,239,249],{},[111,237,238],{},"Via le dépôt officiel de GitLab",[111,240,241,242,245,246],{},"Via un paquet ",[29,243,244],{},".deb"," ou ",[29,247,248],{},".rpm",[111,250,251],{},"Via un fichier binaire",[12,253,254,255,260,261,264],{},"L’exemple ci-dessous, illustre l’",[16,256,259],{"href":257,"rel":258},"https://docs.gitlab.com/runner/install/linux-repository/",[],"installation d’un paquet provenant du dépôt GitLab"," avec ",[24,262,263],{},"Debian/Ubuntu"," :",[266,267,268],"ol",{},[111,269,270],{},"Ajoutez le dépôt officiel de GitLab :",[272,273,278],"pre",{"className":274,"code":275,"language":276,"meta":277,"style":277},"language-shell shiki shiki-themes github-light","curl -L \"https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh\" | sudo bash\n","shell","",[29,279,280],{"__ignoreMap":277},[281,282,285,289,293,297,301,304],"span",{"class":283,"line":284},"line",1,[281,286,288],{"class":287},"s7eDp","curl",[281,290,292],{"class":291},"sYu0t"," -L",[281,294,296],{"class":295},"sYBdl"," \"https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh\"",[281,298,300],{"class":299},"sD7c4"," |",[281,302,303],{"class":287}," sudo",[281,305,306],{"class":295}," bash\n",[266,308,310],{"start":309},2,[111,311,312],{},"Installez la dernière version de GitLab Runner ou passez à l'étape suivante pour installer une version spécifique :",[272,314,316],{"className":274,"code":315,"language":276,"meta":277,"style":277},"sudo apt install gitlab-runner\n",[29,317,318],{"__ignoreMap":277},[281,319,320,323,326,329],{"class":283,"line":284},[281,321,322],{"class":287},"sudo",[281,324,325],{"class":295}," apt",[281,327,328],{"class":295}," install",[281,330,331],{"class":295}," gitlab-runner\n",[266,333,335],{"start":334},3,[111,336,337],{},"Pour installer une version spécifique de GitLab Runner :",[272,339,341],{"className":274,"code":340,"language":276,"meta":277,"style":277},"apt-cache madison gitlab-runner\n\nsudo apt install gitlab-runner=17.7.1-1 gitlab-runner-helper-images=17.7.1-1\n",[29,342,343,353,359],{"__ignoreMap":277},[281,344,345,348,351],{"class":283,"line":284},[281,346,347],{"class":287},"apt-cache",[281,349,350],{"class":295}," madison",[281,352,331],{"class":295},[281,354,355],{"class":283,"line":309},[281,356,358],{"emptyLinePlaceholder":357},true,"\n",[281,360,361,363,365,367,370],{"class":283,"line":334},[281,362,322],{"class":287},[281,364,325],{"class":295},[281,366,328],{"class":295},[281,368,369],{"class":295}," gitlab-runner=17.7.1-1",[281,371,372],{"class":295}," gitlab-runner-helper-images=17.7.1-1\n",[12,374,375,376,379,380,383],{},"Si vous essayez d'installer une version spécifique de ",[29,377,378],{},"gitlab-runner"," sans installer la même version de ",[29,381,382],{},"gitlab-runner-helper-images",", vous risquez de rencontrer l'erreur suivante :",[272,385,387],{"className":274,"code":386,"language":276,"meta":277,"style":277},"sudo apt install gitlab-runner=17.7.1-1\n\n...\n\nThe following packages have unmet dependencies:\n gitlab-runner : Depends: gitlab-runner-helper-images (= 17.7.1-1) but 17.8.3-1 is to be installed\nE: Unable to correct problems, you have held broken packages.\n",[29,388,389,400,404,409,414,435,459],{"__ignoreMap":277},[281,390,391,393,395,397],{"class":283,"line":284},[281,392,322],{"class":287},[281,394,325],{"class":295},[281,396,328],{"class":295},[281,398,399],{"class":295}," gitlab-runner=17.7.1-1\n",[281,401,402],{"class":283,"line":309},[281,403,358],{"emptyLinePlaceholder":357},[281,405,406],{"class":283,"line":334},[281,407,408],{"class":291},"...\n",[281,410,412],{"class":283,"line":411},4,[281,413,358],{"emptyLinePlaceholder":357},[281,415,417,420,423,426,429,432],{"class":283,"line":416},5,[281,418,419],{"class":287},"The",[281,421,422],{"class":295}," following",[281,424,425],{"class":295}," packages",[281,427,428],{"class":295}," have",[281,430,431],{"class":295}," unmet",[281,433,434],{"class":295}," dependencies:\n",[281,436,438,441,443,446,449,453,456],{"class":283,"line":437},6,[281,439,440],{"class":287}," gitlab-runner",[281,442,264],{"class":295},[281,444,445],{"class":295}," Depends:",[281,447,448],{"class":295}," gitlab-runner-helper-images",[281,450,452],{"class":451},"sgsFI"," (= ",[281,454,455],{"class":295},"17.7.1-1",[281,457,458],{"class":451},") but 17.8.3-1 is to be installed\n",[281,460,462,465,468,471,474,477,480,482,485,488],{"class":283,"line":461},7,[281,463,464],{"class":287},"E:",[281,466,467],{"class":295}," Unable",[281,469,470],{"class":295}," to",[281,472,473],{"class":295}," correct",[281,475,476],{"class":295}," problems,",[281,478,479],{"class":295}," you",[281,481,428],{"class":295},[281,483,484],{"class":295}," held",[281,486,487],{"class":295}," broken",[281,489,490],{"class":295}," packages.\n",[266,492,493],{"start":411},[111,494,495],{},"Enregistrez le runner.",[272,497,499],{"className":274,"code":498,"language":276,"meta":277,"style":277},"sudo gitlab-runner register\n",[29,500,501],{"__ignoreMap":277},[281,502,503,505,507],{"class":283,"line":284},[281,504,322],{"class":287},[281,506,440],{"class":295},[281,508,509],{"class":295}," register\n",[227,511,513],{"id":512},"installation-sur-windows-et-macos","Installation sur Windows et macOS",[12,515,516],{},"Si vos projets ont des exigences particulières en matière de compilation, vous pouvez également installer GitLab Runner sur Windows ou macOS en suivant les instructions suivantes :",[108,518,519,526],{},[111,520,521,212],{},[16,522,525],{"href":523,"rel":524},"https://docs.gitlab.com/runner/install/windows/",[],"Installer GitLab Runner sur Windows",[111,527,528,212],{},[16,529,532],{"href":530,"rel":531},"https://docs.gitlab.com/runner/install/osx/",[],"Installer GitLab Runner sur MacOS",[227,534,536],{"id":535},"installation-avec-docker","Installation avec Docker",[12,538,539],{},"Docker est souvent la méthode la plus simple et la plus rapide pour mettre en place un GitLab Runner. Elle permet d’exécuter un GitLab runner dans un conteneur Docker sans installation complexe, tout en bénéficiant d’un environnement isolé et facile à reproduire.",[12,541,542],{},"C’est une solution idéale pour les tests rapides, les environnements de développement temporaires, ou encore pour les équipes qui travaillent déjà largement avec des conteneurs.",[266,544,545],{},[111,546,547],{},"Lancez le conteneur",[272,549,551],{"className":274,"code":550,"language":276,"meta":277,"style":277},"docker run -d --name gitlab-runner --restart always \\ \n  -v /srv/gitlab-runner/config:/etc/gitlab-runner \\\n  -v /var/run/docker.sock:/var/run/docker.sock \\ \n  gitlab/gitlab-runner:latest\n",[29,552,553,578,589,598],{"__ignoreMap":277},[281,554,555,558,561,564,567,569,572,575],{"class":283,"line":284},[281,556,557],{"class":287},"docker",[281,559,560],{"class":295}," run",[281,562,563],{"class":291}," -d",[281,565,566],{"class":291}," --name",[281,568,440],{"class":295},[281,570,571],{"class":291}," --restart",[281,573,574],{"class":295}," always",[281,576,577],{"class":291}," \\ \n",[281,579,580,583,586],{"class":283,"line":309},[281,581,582],{"class":287},"  -v",[281,584,585],{"class":295}," /srv/gitlab-runner/config:/etc/gitlab-runner",[281,587,588],{"class":291}," \\\n",[281,590,591,593,596],{"class":283,"line":334},[281,592,582],{"class":291},[281,594,595],{"class":295}," /var/run/docker.sock:/var/run/docker.sock",[281,597,577],{"class":291},[281,599,600],{"class":283,"line":411},[281,601,602],{"class":287},"  gitlab/gitlab-runner:latest\n",[266,604,605],{"start":309},[111,606,607],{},"Enregistrez le runner",[272,609,611],{"className":274,"code":610,"language":276,"meta":277,"style":277},"docker exec -it gitlab-runner gitlab-runner register\n",[29,612,613],{"__ignoreMap":277},[281,614,615,617,620,623,625,627],{"class":283,"line":284},[281,616,557],{"class":287},[281,618,619],{"class":295}," exec",[281,621,622],{"class":291}," -it",[281,624,440],{"class":295},[281,626,440],{"class":295},[281,628,509],{"class":295},[227,630,632],{"id":631},"installation-avec-kubernetes","Installation avec Kubernetes",[12,634,635],{},"L'installation du GitLab Runner avec Kubernetes se fait à l’aide du Helm Chart de GitLab. Ce mode d’installation est le moyen officiel de déployer une instance GitLab Runner dans votre cluster Kubernetes.",[12,637,638],{},"Voici comment installer GitLab Runner à partir du Helm Chart de GitLab :",[266,640,641],{},[111,642,643],{},"Ajoutez le dépôt GitLab Helm :",[272,645,647],{"className":274,"code":646,"language":276,"meta":277,"style":277},"helm repo add gitlab https://charts.gitlab.io\n",[29,648,649],{"__ignoreMap":277},[281,650,651,654,657,660,663],{"class":283,"line":284},[281,652,653],{"class":287},"helm",[281,655,656],{"class":295}," repo",[281,658,659],{"class":295}," add",[281,661,662],{"class":295}," gitlab",[281,664,665],{"class":295}," https://charts.gitlab.io\n",[266,667,668],{"start":309},[111,669,670],{},"Vérifiez les versions de GitLab Runner auxquelles vous avez accès :",[272,672,674],{"className":274,"code":673,"language":276,"meta":277,"style":277},"helm search repo -l gitlab/gitlab-runner\n",[29,675,676],{"__ignoreMap":277},[281,677,678,680,683,685,688],{"class":283,"line":284},[281,679,653],{"class":287},[281,681,682],{"class":295}," search",[281,684,656],{"class":295},[281,686,687],{"class":291}," -l",[281,689,690],{"class":295}," gitlab/gitlab-runner\n",[266,692,693],{"start":334},[111,694,695],{},"Si vous ne parvenez pas à accéder aux dernières versions de GitLab Runner, mettez à jour le graphique à l'aide de cette commande :",[272,697,699],{"className":274,"code":698,"language":276,"meta":277,"style":277},"helm repo update gitlab\n",[29,700,701],{"__ignoreMap":277},[281,702,703,705,707,710],{"class":283,"line":284},[281,704,653],{"class":287},[281,706,656],{"class":295},[281,708,709],{"class":295}," update",[281,711,712],{"class":295}," gitlab\n",[266,714,715],{"start":411},[111,716,717,718,721],{},"Après avoir configuré le GitLab Runner dans votre fichier ",[29,719,720],{},"values.yaml",", exécutez cette commande en modifiant les paramètres si nécessaire :",[272,723,728],{"className":724,"code":726,"language":727,"meta":277},[725],"language-text","# For Helm 3\n\nhelm install --namespace \u003CNAMESPACE> gitlab-runner \\ \n  -f \u003CCONFIG_VALUES_FILE> \\ \n  gitlab/gitlab-runner\n","text",[29,729,726],{"__ignoreMap":277},[108,731,732,738,744],{},[111,733,734,737],{},[29,735,736],{},"\u003CNAMESPACE>"," : l'espace de nommage Kubernetes où vous souhaitez installer GitLab Runner.",[111,739,740,743],{},[29,741,742],{},"\u003CCONFIG_VALUES_FILE>"," : le chemin d’accès vers le fichier de valeurs contenant votre configuration personnalisée. Pour le créer, consultez notre documentation.",[111,745,746,747,750,751,754,755,758],{},"Pour installer une version spécifique du Helm Chart GitLab Runner, ajoutez ",[29,748,749],{},"--version \u003CRUNNER_HELM_CHART_VERSION>"," à votre commande ",[29,752,753],{},"helm install",". Vous pouvez installer n'importe quelle version du Helm Chart, mais les fichiers ",[29,756,757],{},"values.yml"," plus récents peuvent être incompatibles avec les versions plus anciennes.",[12,760,761,762,212],{},"Pour en savoir plus sur comment installer un GitLab Runner avec Kubernetes, consultez ",[16,763,766],{"href":764,"rel":765},"https://docs.gitlab.com/runner/install/kubernetes/#install-gitlab-runner-with-the-helm-chart",[],"notre documentation",[83,768,769],{},[12,770,771,772,777],{},"Consultez notre ",[16,773,776],{"href":774,"rel":775},"https://docs.gitlab.com/runner/faq/",[],"FAQ"," pour en savoir plus sur l’installation d’un GitLab Runner.",[37,779,781],{"id":780},"comment-enregistrer-un-gitlab-runner","Comment enregistrer un GitLab Runner ?",[12,783,784,785,790],{},"Une fois installé, ",[16,786,789],{"href":787,"rel":788},"https://docs.gitlab.com/runner/register/",[],"GitLab Runner doit être enregistré"," pour qu’il puisse récupérer les jobs depuis l’instance GitLab. Cette étape consiste à connecter votre runner installé à une ou plusieurs instances GitLab.",[12,792,793,794,212],{},"Il existe plusieurs manières d’enregistrer un GitLab Runner. Dans cet article, nous nous concentrerons sur l’enregistrement d’un runner ",[16,795,798],{"href":796,"rel":797},"https://docs.gitlab.com/runner/register/#register-with-a-runner-authentication-token",[],"via un token d’authentification",[12,800,801],{},[24,802,803],{},"Prérequis",[108,805,806],{},[111,807,808,809],{},"Obtenez un token d'authentification de runner. Vous pouvez soit :",[108,810,811,818],{},[111,812,813,814,212],{},"Créer un runner d'instance, de groupe ou de projet. Pour les instructions, consultez notre ",[16,815,817],{"href":103,"rel":816},[],"documentation sur la gestion des runners",[111,819,820,821,824,825,212],{},"Localiser le token d'authentification du runner dans le fichier ",[29,822,823],{},"config.toml",". Les tokens d'authentification de runner ont le préfixe ",[29,826,827],{},"glrt-",[12,829,830,831,833],{},"Une fois le runner enregistré, la configuration est sauvegardée dans le fichier ",[29,832,823],{},", qui est le fichier de configuration principal de GitLab Runner et contient tous les paramètres nécessaires au fonctionnement du runner et à l'exécution des jobs CI/CD. Ce fichier peut être modifié à tout moment : chaque changement est pris en compte dès le prochain job, sans redémarrage nécessaire du service.",[12,835,836],{},"Pour enregistrer le runner avec un jeton d'authentification du runner vous devez :",[266,838,839,842,845,848,851],{},[111,840,841],{},"Exécutez la commande d'enregistrement en fonction de votre mode d’installation,",[111,843,844],{},"Saisissez l’URL de votre instance GitLab (GitLab.com ou GitLab Self-Managed),",[111,846,847],{},"Renseignez le token d'authentification du runner,",[111,849,850],{},"Ajoutez une description pour le runner et les tags de job,",[111,852,853],{},"Renseignez l’executor choisi (Docker, Shell, Kubernetes, etc.).",[12,855,856,857,860,861,212],{},"Pour enregistrer plusieurs runners sur la même machine hôte, chacun avec une configuration différente, répétez la commande ",[29,858,859],{},"register"," et pour enregistrer la même configuration sur plusieurs machines hôtes, ",[16,862,865],{"href":863,"rel":864},"https://docs.gitlab.com/runner/fleet_scaling/#reusing-a-runner-configuration",[],"utilisez le même token d'authentification de runner pour chaque enregistrement de runner",[12,867,868],{},"Vous pouvez également utiliser le mode non-interactif pour utiliser des arguments supplémentaires afin d'enregistrer le runner.",[12,870,871],{},"Prenons un exemple avec Linux :",[272,873,875],{"className":274,"code":874,"language":276,"meta":277,"style":277},"sudo gitlab-runner register \\\n  --non-interactive \\\n  --url \"https://gitlab.com/\" \\\n  --token \"$RUNNER_TOKEN\" \\\n  --executor \"docker\" \\\n  --docker-image alpine:latest \\\n  --description \"docker-runner\"\n",[29,876,877,888,895,905,921,931,941],{"__ignoreMap":277},[281,878,879,881,883,886],{"class":283,"line":284},[281,880,322],{"class":287},[281,882,440],{"class":295},[281,884,885],{"class":295}," register",[281,887,588],{"class":291},[281,889,890,893],{"class":283,"line":309},[281,891,892],{"class":291},"  --non-interactive",[281,894,588],{"class":291},[281,896,897,900,903],{"class":283,"line":334},[281,898,899],{"class":291},"  --url",[281,901,902],{"class":295}," \"https://gitlab.com/\"",[281,904,588],{"class":291},[281,906,907,910,913,916,919],{"class":283,"line":411},[281,908,909],{"class":291},"  --token",[281,911,912],{"class":295}," \"",[281,914,915],{"class":451},"$RUNNER_TOKEN",[281,917,918],{"class":295},"\"",[281,920,588],{"class":291},[281,922,923,926,929],{"class":283,"line":416},[281,924,925],{"class":291},"  --executor",[281,927,928],{"class":295}," \"docker\"",[281,930,588],{"class":291},[281,932,933,936,939],{"class":283,"line":437},[281,934,935],{"class":291},"  --docker-image",[281,937,938],{"class":295}," alpine:latest",[281,940,588],{"class":291},[281,942,943,946],{"class":283,"line":461},[281,944,945],{"class":291},"  --description",[281,947,948],{"class":295}," \"docker-runner\"\n",[37,950,952],{"id":951},"tester-le-bon-fonctionnement-et-commencer-à-utiliser-votre-runner","Tester le bon fonctionnement et commencer à utiliser votre runner",[12,954,955],{},"Avant d’intégrer le runner à vos workflows, vérifiez qu’il fonctionne correctement :",[266,957,958],{},[111,959,960],{},"Vérifiez dans l’interface de GitLab",[12,962,963,964,212],{},"a. Dans votre projet, accédez à ",[24,965,966],{},"Paramètres > CI/CD > Runners",[12,968,969,970,212],{},"b. Vérifiez que votre runner est ",[24,971,972],{},"actif et fonctionnel",[266,974,975,982],{"start":309},[111,976,977,978,981],{},"Vérifiez en ",[24,979,980],{},"ligne de commande"," selon votre mode d’installation sélectionné.",[111,983,984,985],{},"Testez avec un pipeline simple en créant un fichier ",[29,986,987],{},".gitlab-ci.yml :",[272,989,993],{"className":990,"code":991,"language":992,"meta":277,"style":277},"language-yaml shiki shiki-themes github-light","\ntest-runner: \n  stage: test \n  script: \n   - echo \"Hello GitLab Runner\" \n   - hostname \n   - date \ntags: \n   - my-tags # ⚠️ Replace with YOUR runner's tags\n","yaml",[29,994,995,999,1008,1022,1029,1039,1048,1057,1065],{"__ignoreMap":277},[281,996,997],{"class":283,"line":284},[281,998,358],{"emptyLinePlaceholder":357},[281,1000,1001,1005],{"class":283,"line":309},[281,1002,1004],{"class":1003},"shJU0","test-runner",[281,1006,1007],{"class":451},": \n",[281,1009,1010,1013,1016,1019],{"class":283,"line":334},[281,1011,1012],{"class":1003},"  stage",[281,1014,1015],{"class":451},": ",[281,1017,1018],{"class":295},"test",[281,1020,1021],{"class":451}," \n",[281,1023,1024,1027],{"class":283,"line":411},[281,1025,1026],{"class":1003},"  script",[281,1028,1007],{"class":451},[281,1030,1031,1034,1037],{"class":283,"line":416},[281,1032,1033],{"class":451},"   - ",[281,1035,1036],{"class":295},"echo \"Hello GitLab Runner\"",[281,1038,1021],{"class":451},[281,1040,1041,1043,1046],{"class":283,"line":437},[281,1042,1033],{"class":451},[281,1044,1045],{"class":295},"hostname",[281,1047,1021],{"class":451},[281,1049,1050,1052,1055],{"class":283,"line":461},[281,1051,1033],{"class":451},[281,1053,1054],{"class":295},"date",[281,1056,1021],{"class":451},[281,1058,1060,1063],{"class":283,"line":1059},8,[281,1061,1062],{"class":1003},"tags",[281,1064,1007],{"class":451},[281,1066,1068,1070,1073],{"class":283,"line":1067},9,[281,1069,1033],{"class":451},[281,1071,1072],{"class":295},"my-tags",[281,1074,1076],{"class":1075},"sAwPA"," # ⚠️ Replace with YOUR runner's tags\n",[37,1078,1080],{"id":1079},"bonnes-pratiques-pour-sécuriser-et-optimiser-gitlab-runner","Bonnes pratiques pour sécuriser et optimiser GitLab Runner",[12,1082,1083,1084,212],{},"Un GitLab Runner mal configuré peut entraîner des lenteurs ou des failles de sécurité. Voici les bonnes pratiques pour en tirer le meilleur parti dans vos ",[16,1085,1088],{"href":18,"rel":1086,"title":1087},[],"Qu'est-ce qu'un pipeline CI/CD ?","pipelines CI/CD",[227,1090,1092],{"id":1091},"sécurité-des-runners","Sécurité des runners",[108,1094,1095,1106,1112],{},[111,1096,1097,1100,1101,245,1103,1105],{},[24,1098,1099],{},"Privilégier des environnements isolés"," : utilisez de préférence les executors ",[24,1102,73],{},[24,1104,80],{},", qui offrent une séparation claire entre les jobs, plutôt que le mode Shell qui exécute les commandes directement sur la machine hôte.",[111,1107,1108,1111],{},[24,1109,1110],{},"Limiter les permissions"," : évitez d’accorder des droits administrateurs aux runners si ce n’est pas nécessaire. Configurez-les avec le minimum d’autorisations pour réduire la surface d’attaque.",[111,1113,1114,1117],{},[24,1115,1116],{},"Contrôler l’accès par tags"," : attribuez des tags spécifiques aux runners afin qu’ils n’exécutent que certains jobs. Cela permet d’éviter qu’un job non prévu tourne sur un runner sensible.",[227,1119,1121],{"id":1120},"performance-et-rapidité-des-pipelines","Performance et rapidité des pipelines",[108,1123,1124,1138,1144],{},[111,1125,1126,1129,1130,1133,1134,1137],{},[24,1127,1128],{},"Utiliser des images légères"," : pour les executors Docker, sélectionnez des images adaptées et optimisées (par exemple ",[29,1131,1132],{},"alpine"," plutôt que ",[29,1135,1136],{},"ubuntu"," si cela suffit) afin de réduire le temps de démarrage des conteneurs.",[111,1139,1140,1143],{},[24,1141,1142],{},"Configurer le cache"," : tirez parti du cache de GitLab pour réutiliser des dépendances ou des fichiers générés entre plusieurs pipelines. Cela diminue le temps d’exécution global.",[111,1145,1146,1149],{},[24,1147,1148],{},"Exécuter parallèlement"," : divisez vos jobs en plusieurs étapes qui peuvent tourner en parallèle, afin de réduire le temps total d’un pipeline.",[227,1151,1153],{"id":1152},"maintenance-et-fiabilité","Maintenance et fiabilité",[108,1155,1156,1162,1168],{},[111,1157,1158,1161],{},[24,1159,1160],{},"Mettre à jour régulièrement les runners"," : chaque version apporte des correctifs et de nouvelles fonctionnalités. Garder vos runners synchronisés avec la version de GitLab est un gage de compatibilité et de stabilité.",[111,1163,1164,1167],{},[24,1165,1166],{},"Superviser vos runners"," : utilisez les métriques intégrées (par exemple via Prometheus) pour suivre la charge, le temps d’exécution des jobs ou l’utilisation des ressources. Cela aide à anticiper les goulots d’étranglement.",[111,1169,1170,1173],{},[24,1171,1172],{},"Prévoir la redondance"," : dans un environnement critique, installez plusieurs runners pour répartir la charge et éviter qu’un incident n'interrompt vos pipelines.",[37,1175,1177],{"id":1176},"aller-plus-loin-avec-gitlab-cicd","Aller plus loin avec GitLab CI/CD",[12,1179,1180,1182,1183,1187],{},[24,1181,26],{}," prend toute sa valeur lorsqu’il est intégré aux pipelines CI/CD, aux tests de sécurité et à l’automatisation complète de GitLab. Consultez également ",[16,1184,766],{"href":1185,"rel":1186},"https://docs.gitlab.com/runner/fleet_scaling/",[]," pour découvrir nos bonnes pratiques de gestion d'une flotte de runners GitLab dans un modèle de service partagé.",[83,1189,1190],{},[12,1191,1192],{},[24,1193,1194],{},[16,1195,93],{"href":91,"rel":1196},[],[1198,1199,1200],"style",{},"html pre.shiki code .s7eDp, html code.shiki .s7eDp{--shiki-default:#6F42C1}html pre.shiki code .sYu0t, html code.shiki .sYu0t{--shiki-default:#005CC5}html pre.shiki code .sYBdl, html code.shiki .sYBdl{--shiki-default:#032F62}html pre.shiki code .sD7c4, html code.shiki .sD7c4{--shiki-default:#D73A49}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html pre.shiki code .sgsFI, html code.shiki .sgsFI{--shiki-default:#24292E}html pre.shiki code .shJU0, html code.shiki .shJU0{--shiki-default:#22863A}html pre.shiki code .sAwPA, html code.shiki .sAwPA{--shiki-default:#6A737D}",{"title":277,"searchDepth":309,"depth":309,"links":1202},[1203,1204,1205,1206,1212,1213,1214,1219],{"id":39,"depth":309,"text":40},{"id":96,"depth":309,"text":97},{"id":149,"depth":309,"text":150},{"id":215,"depth":309,"text":216,"children":1207},[1208,1209,1210,1211],{"id":229,"depth":334,"text":230},{"id":512,"depth":334,"text":513},{"id":535,"depth":334,"text":536},{"id":631,"depth":334,"text":632},{"id":780,"depth":309,"text":781},{"id":951,"depth":309,"text":952},{"id":1079,"depth":309,"text":1080,"children":1215},[1216,1217,1218],{"id":1091,"depth":334,"text":1092},{"id":1120,"depth":334,"text":1121},{"id":1152,"depth":334,"text":1153},{"id":1176,"depth":309,"text":1177},"product","2025-11-21","GitLab Runner exécute les jobs de vos pipelines CI/CD de manière fiable, rapide et automatisée. Installez-le, configurez-le et optimisez-le pour des builds plus sûrs et parfaitement reproductibles.","md",null,false,"https://res.cloudinary.com/about-gitlab-com/image/upload/v1763646158/crdpd8lt5fndfzbcl9ln.jpg",{},"/fr-fr/blog/what-is-gitlab-runner",{"config":1230,"title":1231,"ogTitle":1231,"description":1232,"ogDescription":1232},{"noIndex":1225},"GitLab Runner : installation et bonnes pratiques","Découvrez GitLab Runner, son rôle et suivez notre guide pour l’installer, le configurer et l’utiliser efficacement.","what-is-gitlab-runner","fr-fr/blog/what-is-gitlab-runner",[1236,1237,1238],"CI/CD","DevSecOps platform","DevOps platform","BlogPost","2rpgdyRz1A_Dhibc6HNwJZz4g4yjPFD1LSmhKWsDFoE",{"logo":1242,"freeTrial":1247,"sales":1252,"login":1257,"items":1262,"search":1590,"minimal":1626,"duo":1645,"switchNav":1654,"pricingDeployment":1665},{"config":1243},{"href":1244,"dataGaName":1245,"dataGaLocation":1246},"/fr-fr/","gitlab logo","header",{"text":1248,"config":1249},"Commencer un essai gratuit",{"href":1250,"dataGaName":1251,"dataGaLocation":1246},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/fr-fr&glm_content=default-saas-trial/","free trial",{"text":1253,"config":1254},"Demander une démo",{"href":1255,"dataGaName":1256,"dataGaLocation":1246},"/fr-fr/sales/?contact-topic=request-demo","sales",{"text":1258,"config":1259},"Connexion",{"href":1260,"dataGaName":1261,"dataGaLocation":1246},"https://gitlab.com/users/sign_in/","sign in",[1263,1292,1393,1398,1512,1568],{"text":1264,"config":1265,"menu":1267},"Plateforme",{"dataNavLevelOne":1266},"platform",{"type":1268,"columns":1269},"cards",[1270,1276,1284],{"title":1264,"description":1271,"link":1272},"La plateforme d'orchestration intelligente pour le DevSecOps",{"text":1273,"config":1274},"Explorer notre plateforme",{"href":1275,"dataGaName":1266,"dataGaLocation":1246},"/fr-fr/platform/",{"title":1277,"description":1278,"link":1279},"GitLab Duo Agent Platform","L'IA agentique pour l'ensemble du cycle de développement logiciel",{"text":1280,"config":1281},"Découvrir GitLab Duo",{"href":1282,"dataGaName":1283,"dataGaLocation":1246},"/fr-fr/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":1285,"description":1286,"link":1287},"Pourquoi GitLab ?","Découvrez les principales raisons pour lesquelles les entreprises choisissent GitLab",{"text":1288,"config":1289},"En savoir plus",{"href":1290,"dataGaName":1291,"dataGaLocation":1246},"/fr-fr/why-gitlab/","why gitlab",{"text":1293,"left":357,"config":1294,"menu":1296},"Produit",{"dataNavLevelOne":1295},"solutions",{"type":1297,"link":1298,"columns":1302,"feature":1372},"lists",{"text":1299,"config":1300},"Voir toutes les solutions",{"href":1301,"dataGaName":1295,"dataGaLocation":1246},"/fr-fr/solutions/",[1303,1327,1350],{"title":1304,"description":1305,"link":1306,"items":1311},"Automatisation","CI/CD et automatisation pour accélérer le déploiement",{"config":1307},{"icon":1308,"href":1309,"dataGaName":1310,"dataGaLocation":1246},"AutomatedCodeAlt","/fr-fr/solutions/delivery-automation/","automated software delivery",[1312,1315,1318,1323],{"text":1236,"config":1313},{"href":1314,"dataGaLocation":1246,"dataGaName":1236},"/fr-fr/solutions/continuous-integration/",{"text":1277,"config":1316},{"href":1282,"dataGaLocation":1246,"dataGaName":1317},"gitlab duo agent platform - product menu",{"text":1319,"config":1320},"Gestion du code source",{"href":1321,"dataGaLocation":1246,"dataGaName":1322},"/fr-fr/solutions/source-code-management/","Source Code Management",{"text":1324,"config":1325},"Livraison de logiciels automatisée",{"href":1309,"dataGaLocation":1246,"dataGaName":1326},"Automated software delivery",{"title":1328,"description":1329,"link":1330,"items":1335},"Sécurité","Livrez du code plus rapidement sans compromettre la sécurité",{"config":1331},{"href":1332,"dataGaName":1333,"dataGaLocation":1246,"icon":1334},"/fr-fr/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[1336,1340,1345],{"text":1337,"config":1338},"Tests de sécurité des applications",{"href":1332,"dataGaName":1339,"dataGaLocation":1246},"Application security testing",{"text":1341,"config":1342},"Sécurité de la chaîne d'approvisionnement logicielle",{"href":1343,"dataGaLocation":1246,"dataGaName":1344},"/fr-fr/solutions/supply-chain/","Software supply chain security",{"text":1346,"config":1347},"Conformité logicielle",{"href":1348,"dataGaName":1349,"dataGaLocation":1246},"/fr-fr/solutions/software-compliance/","software compliance",{"title":1351,"link":1352,"items":1357},"Mesures",{"config":1353},{"icon":1354,"href":1355,"dataGaName":1356,"dataGaLocation":1246},"DigitalTransformation","/fr-fr/solutions/visibility-measurement/","visibility and measurement",[1358,1362,1367],{"text":1359,"config":1360},"Visibilité et mesures",{"href":1355,"dataGaLocation":1246,"dataGaName":1361},"Visibility and Measurement",{"text":1363,"config":1364},"Gestion de la chaîne de valeur",{"href":1365,"dataGaLocation":1246,"dataGaName":1366},"/fr-fr/solutions/value-stream-management/","Value Stream Management",{"text":1368,"config":1369},"Analyses et informations",{"href":1370,"dataGaLocation":1246,"dataGaName":1371},"/fr-fr/solutions/analytics-and-insights/","Analytics and insights",{"title":1373,"type":1297,"items":1374},"GitLab",[1375,1381,1387],{"text":1376,"config":1377},"Entreprises",{"icon":1378,"href":1379,"dataGaLocation":1246,"dataGaName":1380},"Building","/fr-fr/enterprise/","enterprise",{"text":1382,"config":1383},"Pour les PME",{"icon":1384,"href":1385,"dataGaLocation":1246,"dataGaName":1386},"Work","/fr-fr/small-business/","small business",{"text":1388,"config":1389},"Pour le secteur public",{"icon":1390,"href":1391,"dataGaLocation":1246,"dataGaName":1392},"Organization","/fr-fr/solutions/public-sector/","public sector",{"text":1394,"config":1395},"Tarifs",{"href":1396,"dataGaName":1397,"dataGaLocation":1246,"dataNavLevelOne":1397},"/fr-fr/pricing/","pricing",{"text":1399,"config":1400,"menu":1402},"Ressources",{"dataNavLevelOne":1401},"resources",{"type":1297,"link":1403,"columns":1407,"feature":1501},{"text":1404,"config":1405},"Afficher toutes les ressources",{"href":1406,"dataGaName":1401,"dataGaLocation":1246},"/fr-fr/resources/",[1408,1441,1468],{"title":1409,"items":1410},"Premiers pas",[1411,1416,1421,1426,1431,1436],{"text":1412,"config":1413},"Installation",{"href":1414,"dataGaName":1415,"dataGaLocation":1246},"/fr-fr/install/","install",{"text":1417,"config":1418},"Guides de démarrage",{"href":1419,"dataGaName":1420,"dataGaLocation":1246},"/fr-fr/get-started/","quick setup checklists",{"text":1422,"config":1423},"Apprentissage",{"href":1424,"dataGaLocation":1246,"dataGaName":1425},"https://university.gitlab.com/","learn",{"text":1427,"config":1428},"Documentation",{"href":1429,"dataGaName":1430,"dataGaLocation":1246},"https://docs.gitlab.com/","product documentation",{"text":1432,"config":1433},"Vidéos sur les bonnes pratiques",{"href":1434,"dataGaName":1435,"dataGaLocation":1246},"/fr-fr/getting-started-videos/","best practice videos",{"text":1437,"config":1438},"Intégrations",{"href":1439,"dataGaName":1440,"dataGaLocation":1246},"/fr-fr/integrations/","integrations",{"title":1442,"items":1443},"Découvrir",[1444,1449,1454,1459,1463],{"text":1445,"config":1446},"Témoignages clients",{"href":1447,"dataGaName":1448,"dataGaLocation":1246},"/fr-fr/customers/","customer success stories",{"text":1450,"config":1451},"Blog",{"href":1452,"dataGaName":1453,"dataGaLocation":1246},"/fr-fr/blog/","blog",{"text":1455,"config":1456},"Demo Hub",{"href":1457,"dataGaName":1458,"dataGaLocation":1246},"/fr-fr/demo-hub/","demo hub",{"text":1460,"config":1461},"The Source",{"href":1462,"dataGaName":1453,"dataGaLocation":1246},"/fr-fr/the-source/",{"text":1464,"config":1465},"Travail à distance",{"href":1466,"dataGaName":1467,"dataGaLocation":1246},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":1469,"items":1470},"Connecter",[1471,1476,1481,1486,1491,1496],{"text":1472,"config":1473},"Services GitLab",{"href":1474,"dataGaName":1475,"dataGaLocation":1246},"/fr-fr/services/","services",{"text":1477,"config":1478},"Contribuer",{"href":1479,"dataGaName":1480,"dataGaLocation":1246},"https://contributors.gitlab.com","contribute",{"text":1482,"config":1483},"Communauté",{"href":1484,"dataGaName":1485,"dataGaLocation":1246},"/community/","community",{"text":1487,"config":1488},"Forum",{"href":1489,"dataGaName":1490,"dataGaLocation":1246},"https://forum.gitlab.com/","forum",{"text":1492,"config":1493},"Événements",{"href":1494,"dataGaName":1495,"dataGaLocation":1246},"/events/","events",{"text":1497,"config":1498},"Partenaires",{"href":1499,"dataGaName":1500,"dataGaLocation":1246},"/fr-fr/partners/","partners",{"config":1502,"title":1505,"text":1506,"link":1507},{"background":1503,"textColor":1504},"url('https://res.cloudinary.com/about-gitlab-com/image/upload/v1777322348/qpq8yrgn8knii57omj0c.png')","#000","Nouveautés de GitLab","Découvrez les dernières fonctionnalités et améliorations.",{"text":1508,"config":1509},"Lire les articles les plus récents",{"href":1510,"dataGaName":1511,"dataGaLocation":1246},"/fr-fr/whats-new/","whats new",{"text":1513,"config":1514,"menu":1516},"Société",{"dataNavLevelOne":1515},"company",{"type":1297,"columns":1517},[1518],{"items":1519},[1520,1525,1531,1533,1538,1543,1548,1553,1558,1563],{"text":1521,"config":1522},"À propos",{"href":1523,"dataGaName":1524,"dataGaLocation":1246},"/fr-fr/company/","about",{"text":1526,"config":1527,"footerGa":1530},"Carrières",{"href":1528,"dataGaName":1529,"dataGaLocation":1246},"/jobs/","jobs",{"dataGaName":1529},{"text":1492,"config":1532},{"href":1494,"dataGaName":1495,"dataGaLocation":1246},{"text":1534,"config":1535},"Leadership",{"href":1536,"dataGaName":1537,"dataGaLocation":1246},"/company/team/e-group/","leadership",{"text":1539,"config":1540},"Manuel",{"href":1541,"dataGaName":1542,"dataGaLocation":1246},"https://handbook.gitlab.com/","handbook",{"text":1544,"config":1545},"Relations avec les investisseurs",{"href":1546,"dataGaName":1547,"dataGaLocation":1246},"https://ir.gitlab.com/overview/default.aspx","investor relations",{"text":1549,"config":1550},"Trust Center",{"href":1551,"dataGaName":1552,"dataGaLocation":1246},"/fr-fr/security/","trust center",{"text":1554,"config":1555},"Centre pour la transparence de l'IA",{"href":1556,"dataGaName":1557,"dataGaLocation":1246},"/fr-fr/ai-transparency-center/","ai transparency center",{"text":1559,"config":1560},"Newsletter",{"href":1561,"dataGaName":1562,"dataGaLocation":1246},"/company/contact/#contact-forms","newsletter",{"text":1564,"config":1565},"Presse",{"href":1566,"dataGaName":1567,"dataGaLocation":1246},"/press/","press",{"text":1569,"config":1570,"menu":1571},"Nous contacter",{"dataNavLevelOne":1515},{"type":1297,"columns":1572},[1573],{"items":1574},[1575,1580,1585],{"text":1576,"config":1577},"Contacter l'équipe commerciale",{"href":1578,"dataGaName":1579,"dataGaLocation":1246},"/fr-fr/sales/","talk to sales",{"text":1581,"config":1582},"Assistance GitLab",{"href":1583,"dataGaName":1584,"dataGaLocation":1246},"https://support.gitlab.com/hc/en-us","support portal",{"text":1586,"config":1587},"Portail clients GitLab",{"href":1588,"dataGaName":1589,"dataGaLocation":1246},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":1591,"login":1592,"suggestions":1599},"Fermer",{"text":1593,"link":1594},"Pour rechercher des dépôts et des projets, connectez-vous à",{"text":1595,"config":1596},"GitLab.com",{"href":1260,"dataGaName":1597,"dataGaLocation":1598},"search login","search",{"text":1600,"default":1601},"Suggestions",[1602,1605,1610,1612,1617,1622],{"text":1277,"config":1603},{"href":1282,"dataGaName":1604,"dataGaLocation":1598},"GitLab Duo Agent Platform",{"text":1606,"config":1607},"Suggestions de code (IA)",{"href":1608,"dataGaName":1609,"dataGaLocation":1598},"/fr-fr/solutions/code-suggestions/","Code Suggestions (AI)",{"text":1236,"config":1611},{"href":1314,"dataGaName":1236,"dataGaLocation":1598},{"text":1613,"config":1614},"GitLab sur AWS",{"href":1615,"dataGaName":1616,"dataGaLocation":1598},"/fr-fr/partners/technology-partners/aws/","GitLab on AWS",{"text":1618,"config":1619},"GitLab sur Google Cloud",{"href":1620,"dataGaName":1621,"dataGaLocation":1598},"/fr-fr/partners/technology-partners/google-cloud-platform/","GitLab on Google Cloud",{"text":1623,"config":1624},"Pourquoi utiliser GitLab ?",{"href":1290,"dataGaName":1625,"dataGaLocation":1598},"Why GitLab?",{"freeTrial":1627,"mobileIcon":1632,"desktopIcon":1637,"secondaryButton":1640},{"text":1628,"config":1629},"Commencer votre essai gratuit",{"href":1630,"dataGaName":1251,"dataGaLocation":1631},"https://gitlab.com/-/trials/new/","nav",{"altText":1633,"config":1634},"Icône GitLab",{"src":1635,"dataGaName":1636,"dataGaLocation":1631},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":1633,"config":1638},{"src":1639,"dataGaName":1636,"dataGaLocation":1631},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":1641,"config":1642},"Commencer",{"href":1643,"dataGaName":1644,"dataGaLocation":1631},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/fr-fr/get-started/","get started",{"freeTrial":1646,"mobileIcon":1650,"desktopIcon":1652},{"text":1647,"config":1648},"En savoir plus sur GitLab Duo",{"href":1282,"dataGaName":1649,"dataGaLocation":1631},"gitlab duo",{"altText":1633,"config":1651},{"src":1635,"dataGaName":1636,"dataGaLocation":1631},{"altText":1633,"config":1653},{"src":1639,"dataGaName":1636,"dataGaLocation":1631},{"button":1655,"mobileIcon":1660,"desktopIcon":1662},{"text":1656,"config":1657},"/switch",{"href":1658,"dataGaName":1659,"dataGaLocation":1631},"#contact","switch",{"altText":1633,"config":1661},{"src":1635,"dataGaName":1636,"dataGaLocation":1631},{"altText":1633,"config":1663},{"src":1664,"dataGaName":1636,"dataGaLocation":1631},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":1666,"mobileIcon":1671,"desktopIcon":1673},{"text":1667,"config":1668},"Retour aux tarifs",{"href":1396,"dataGaName":1669,"dataGaLocation":1631,"icon":1670},"back to pricing","GoBack",{"altText":1633,"config":1672},{"src":1635,"dataGaName":1636,"dataGaLocation":1631},{"altText":1633,"config":1674},{"src":1639,"dataGaName":1636,"dataGaLocation":1631},{"title":1676,"button":1677,"config":1681},"GitLab Orbit est arrivé : la couche de contexte pour les agents d'IA.",{"text":1288,"config":1678},{"href":1679,"dataGaName":1680,"dataGaLocation":1246},"/fr-fr/gitlab-orbit/","orbit",{"layout":1682,"disabled":1225},"release",{"data":1684},{"text":1685,"source":1686,"edit":1692,"contribute":1697,"config":1701,"items":1706,"minimal":1914},"Git est une marque déposée de Software Freedom Conservancy et notre utilisation de « GitLab » est sous licence.",{"text":1687,"config":1688},"Afficher le code source de la page",{"href":1689,"dataGaName":1690,"dataGaLocation":1691},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":1693,"config":1694},"Modifier cette page",{"href":1695,"dataGaName":1696,"dataGaLocation":1691},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":1477,"config":1698},{"href":1699,"dataGaName":1700,"dataGaLocation":1691},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":1702,"facebook":1703,"youtube":1704,"linkedin":1705},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[1707,1753,1806,1849,1881],{"title":1394,"links":1708,"subMenu":1723},[1709,1713,1718],{"text":1710,"config":1711},"Voir les forfaits",{"href":1396,"dataGaName":1712,"dataGaLocation":1691},"view plans",{"text":1714,"config":1715},"GitLab Premium",{"href":1716,"dataGaName":1717,"dataGaLocation":1691},"/fr-fr/pricing/premium/","why premium",{"text":1719,"config":1720},"GitLab Ultimate",{"href":1721,"dataGaName":1722,"dataGaLocation":1691},"/fr-fr/pricing/ultimate/","why ultimate",[1724],{"title":1569,"links":1725},[1726,1728,1730,1733,1738,1743,1748],{"text":1576,"config":1727},{"href":1578,"dataGaName":1256,"dataGaLocation":1691},{"text":1581,"config":1729},{"href":1583,"dataGaName":1584,"dataGaLocation":1691},{"text":1731,"config":1732},"Portail clients",{"href":1588,"dataGaName":1589,"dataGaLocation":1691},{"text":1734,"config":1735},"Statut",{"href":1736,"dataGaName":1737,"dataGaLocation":1691},"https://status.gitlab.com/","status",{"text":1739,"config":1740},"Conditions d'utilisation",{"href":1741,"dataGaName":1742,"dataGaLocation":1691},"/terms/","terms of use",{"text":1744,"config":1745},"Politique de confidentialité",{"href":1746,"dataGaName":1747,"dataGaLocation":1691},"/fr-fr/privacy/","privacy statement",{"text":1749,"config":1750},"Gestion des cookies",{"dataGaName":1751,"dataGaLocation":1691,"id":1752,"isOneTrustButton":357},"cookie preferences","ot-sdk-btn",{"title":1293,"links":1754,"subMenu":1763},[1755,1759],{"text":1756,"config":1757},"Plateforme DevSecOps",{"href":1275,"dataGaName":1758,"dataGaLocation":1691},"devsecops platform",{"text":1760,"config":1761},"Développement assisté par l'IA",{"href":1282,"dataGaName":1762,"dataGaLocation":1691},"ai-assisted development",[1764],{"title":1765,"links":1766},"Thèmes",[1767,1771,1776,1781,1786,1791,1796,1801],{"text":1236,"config":1768},{"href":1769,"dataGaName":1770,"dataGaLocation":1691},"/fr-fr/topics/ci-cd/","cicd",{"text":1772,"config":1773},"GitOps",{"href":1774,"dataGaName":1775,"dataGaLocation":1691},"/fr-fr/topics/gitops/","gitops",{"text":1777,"config":1778},"DevOps",{"href":1779,"dataGaName":1780,"dataGaLocation":1691},"/fr-fr/topics/devops/","devops",{"text":1782,"config":1783},"Contrôle de version",{"href":1784,"dataGaName":1785,"dataGaLocation":1691},"/fr-fr/topics/version-control/","version control",{"text":1787,"config":1788},"DevSecOps",{"href":1789,"dataGaName":1790,"dataGaLocation":1691},"/fr-fr/topics/devsecops/","devsecops",{"text":1792,"config":1793},"Cloud-native",{"href":1794,"dataGaName":1795,"dataGaLocation":1691},"/fr-fr/topics/cloud-native/","cloud native",{"text":1797,"config":1798},"IA pour la programmation",{"href":1799,"dataGaName":1800,"dataGaLocation":1691},"/fr-fr/topics/devops/ai-for-coding/","ai for coding",{"text":1802,"config":1803},"IA agentique",{"href":1804,"dataGaName":1805,"dataGaLocation":1691},"/fr-fr/topics/agentic-ai/","agentic ai",{"title":1807,"links":1808},"Solutions",[1809,1812,1814,1819,1822,1825,1828,1831,1833,1836,1839,1844],{"text":1337,"config":1810},{"href":1332,"dataGaName":1811,"dataGaLocation":1691},"Application Security Testing",{"text":1324,"config":1813},{"href":1309,"dataGaName":1310,"dataGaLocation":1691},{"text":1815,"config":1816},"Développement Agile",{"href":1817,"dataGaName":1818,"dataGaLocation":1691},"/fr-fr/solutions/agile-delivery/","agile delivery",{"text":1319,"config":1820},{"href":1321,"dataGaName":1821,"dataGaLocation":1691},"source code management",{"text":1236,"config":1823},{"href":1314,"dataGaName":1824,"dataGaLocation":1691},"continuous integration & delivery",{"text":1363,"config":1826},{"href":1365,"dataGaName":1827,"dataGaLocation":1691},"value stream management",{"text":1772,"config":1829},{"href":1830,"dataGaName":1775,"dataGaLocation":1691},"/fr-fr/solutions/gitops/",{"text":1376,"config":1832},{"href":1379,"dataGaName":1380,"dataGaLocation":1691},{"text":1834,"config":1835},"PME",{"href":1385,"dataGaName":1386,"dataGaLocation":1691},{"text":1837,"config":1838},"Secteur public",{"href":1391,"dataGaName":1392,"dataGaLocation":1691},{"text":1840,"config":1841},"Éducation",{"href":1842,"dataGaName":1843,"dataGaLocation":1691},"/fr-fr/solutions/education/","education",{"text":1845,"config":1846},"Services financiers",{"href":1847,"dataGaName":1848,"dataGaLocation":1691},"/fr-fr/solutions/finance/","financial services",{"title":1399,"links":1850},[1851,1853,1855,1857,1860,1862,1865,1867,1869,1871,1873,1875,1877,1879],{"text":1412,"config":1852},{"href":1414,"dataGaName":1415,"dataGaLocation":1691},{"text":1417,"config":1854},{"href":1419,"dataGaName":1420,"dataGaLocation":1691},{"text":1422,"config":1856},{"href":1424,"dataGaName":1425,"dataGaLocation":1691},{"text":1427,"config":1858},{"href":1429,"dataGaName":1859,"dataGaLocation":1691},"docs",{"text":1450,"config":1861},{"href":1452,"dataGaName":1453,"dataGaLocation":1691},{"text":1863,"config":1864},"Nouveautés",{"href":1510,"dataGaName":1511,"dataGaLocation":1691},{"text":1445,"config":1866},{"href":1447,"dataGaName":1448,"dataGaLocation":1691},{"text":1464,"config":1868},{"href":1466,"dataGaName":1467,"dataGaLocation":1691},{"text":1472,"config":1870},{"href":1474,"dataGaName":1475,"dataGaLocation":1691},{"text":1477,"config":1872},{"href":1479,"dataGaName":1480,"dataGaLocation":1691},{"text":1482,"config":1874},{"href":1484,"dataGaName":1485,"dataGaLocation":1691},{"text":1487,"config":1876},{"href":1489,"dataGaName":1490,"dataGaLocation":1691},{"text":1492,"config":1878},{"href":1494,"dataGaName":1495,"dataGaLocation":1691},{"text":1497,"config":1880},{"href":1499,"dataGaName":1500,"dataGaLocation":1691},{"title":1513,"links":1882},[1883,1885,1887,1889,1891,1893,1898,1903,1905,1907,1909],{"text":1521,"config":1884},{"href":1523,"dataGaName":1515,"dataGaLocation":1691},{"text":1526,"config":1886},{"href":1528,"dataGaName":1529,"dataGaLocation":1691},{"text":1534,"config":1888},{"href":1536,"dataGaName":1537,"dataGaLocation":1691},{"text":1539,"config":1890},{"href":1541,"dataGaName":1542,"dataGaLocation":1691},{"text":1544,"config":1892},{"href":1546,"dataGaName":1547,"dataGaLocation":1691},{"text":1894,"config":1895},"Développement durable",{"href":1896,"dataGaName":1897,"dataGaLocation":1691},"/sustainability/","Sustainability",{"text":1899,"config":1900},"Diversité, inclusion et appartenance (DIB)",{"href":1901,"dataGaName":1902,"dataGaLocation":1691},"/fr-fr/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":1549,"config":1904},{"href":1551,"dataGaName":1552,"dataGaLocation":1691},{"text":1559,"config":1906},{"href":1561,"dataGaName":1562,"dataGaLocation":1691},{"text":1564,"config":1908},{"href":1566,"dataGaName":1567,"dataGaLocation":1691},{"text":1910,"config":1911},"Déclaration de transparence sur l'esclavage moderne",{"href":1912,"dataGaName":1913,"dataGaLocation":1691},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":1915},[1916,1918,1920],{"text":1739,"config":1917},{"href":1741,"dataGaName":1742,"dataGaLocation":1691},{"text":1749,"config":1919},{"dataGaName":1751,"dataGaLocation":1691,"id":1752,"isOneTrustButton":357},{"text":1744,"config":1921},{"href":1746,"dataGaName":1747,"dataGaLocation":1691},[1923],{"id":1924,"title":1925,"body":1224,"config":1926,"content":1928,"description":1224,"extension":1932,"meta":1933,"navigation":357,"path":1934,"seo":1935,"stem":1936,"__hash__":1937},"blogAuthors/en-us/blog/authors/gitlab-france-team.yml","Gitlab France Team",{"template":1927},"BlogAuthor",{"name":7,"config":1929},{"headshot":1930,"ctfId":1931},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659488/Blog/Author%20Headshots/gitlab-logo-extra-whitespace.png","1gfblqN0ibYIuWGk7MOTny","yml",{},"/en-us/blog/authors/gitlab-france-team",{},"en-us/blog/authors/gitlab-france-team","Eni-wcJbgxSvctiz4Yjf4UeRk6T6IWt1wK0KuHU907U",[1939,1948,1956],{"title":1940,"description":1941,"heroImage":1942,"category":1220,"date":1943,"authors":1944,"slug":1947,"externalUrl":1224},"Maîtrisez vos sièges GitLab avec l'accès restreint","Découvrez comment la fonctionnalité d'accès restreint de GitLab permet d'éviter les dépassements de sièges, s'intègre à votre fournisseur d'identité et garantit des coûts de licence prévisibles.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1774375772/kpaaaiqhokevxxeoxvu0.png","2026-07-15",[1945,1946],"Magdalena Frankiewicz","Priyanka Palanikumar","gitlab-restricted-access-improvements",{"title":1949,"description":1950,"heroImage":1951,"category":1220,"date":1952,"authors":1953,"slug":1955,"externalUrl":1224},"Feature flags de GitLab en Python : guide de démarrage","Découvrez comment intégrer les feature flags de GitLab dans une application Flask en Python avec le SDK Unleash pour contrôler le déploiement progressif de fonctionnalités sans redéployer votre application.","https://res.cloudinary.com/about-gitlab-com/image/upload/f_auto,q_auto,c_lfill/v1774465167/n5hlvrsrheadeccyr1oz.png","2026-06-01",[1954],"Omid Khan","getting-started-with-gitlab-feature-flags-in-python",{"title":1957,"description":1958,"heroImage":1959,"category":1220,"date":1960,"authors":1961,"slug":1963,"externalUrl":1224},"Suivez l'utilisation des composants CI dans votre organisation","Avec GitLab 19.0, visualisez comment vos composants CI partagés sont utilisés dans votre organisation, afin de pouvoir prendre les mesures qui s'imposent en fonction de vos observations.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1779189265/iqzyhhiwagxzwywvjzow.png","2026-05-22",[1962],"Corinne Dent","track-ci-component-usage",{"promotions":1965},[1966,1980,1991,2003],{"id":1967,"categories":1968,"header":1970,"text":1971,"button":1972,"image":1977},"ai-modernization",[1969],"ai","L'IA tient-elle ses promesses à grande échelle ?","Le questionnaire ne prendra pas plus de 5 minutes.",{"text":1973,"config":1974},"Obtenez votre score de maturité IA",{"href":1975,"dataGaName":1976,"dataGaLocation":1453},"/fr-fr/assessments/ai-modernization-assessment/","modernization assessment",{"config":1978},{"src":1979},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/qix0m7kwnd8x2fh1zq49.png",{"id":1981,"categories":1982,"header":1983,"text":1971,"button":1984,"image":1988},"devops-modernization",[1220,1790],"Vous contentez-vous de gérer des outils ou de livrer des innovations ?",{"text":1985,"config":1986},"Obtenez votre score de maturité DevOps",{"href":1987,"dataGaName":1976,"dataGaLocation":1453},"/fr-fr/assessments/devops-modernization-assessment/",{"config":1989},{"src":1990},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138785/eg818fmakweyuznttgid.png",{"id":1992,"categories":1993,"header":1995,"text":1971,"button":1996,"image":2000},"security-modernization",[1994],"security","Faut-il sacrifier la rapidité pour garantir la sécurité ?",{"text":1997,"config":1998},"Obtenez votre score de maturité en matière de sécurité",{"href":1999,"dataGaName":1976,"dataGaLocation":1453},"/fr-fr/assessments/security-modernization-assessment/",{"config":2001},{"src":2002},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/p4pbqd9nnjejg5ds6mdk.png",{"id":2004,"paths":2005,"header":2008,"text":2009,"button":2010,"image":2015},"github-azure-migration",[2006,2007],"migration-from-azure-devops-to-gitlab","integrating-azure-devops-scm-and-gitlab","Votre équipe est-elle prête pour la migration de GitHub vers Azure ?","GitHub a déjà commencé sa migration vers Azure. Découvrez ce que cela signifie pour vous.",{"text":2011,"config":2012},"Découvrez les différences entre GitLab et GitHub",{"href":2013,"dataGaName":2014,"dataGaLocation":1453},"/fr-fr/compare/gitlab-vs-github/github-azure-migration/","github azure migration",{"config":2016},{"src":1990},{"header":2018,"blurb":2019,"button":2020,"secondaryButton":2024},"Commencez à développer plus rapidement dès aujourd'hui","Découvrez ce que votre équipe peut accomplir avec la plateforme d'orchestration intelligente pour le DevSecOps.\n",{"text":1248,"config":2021},{"href":2022,"dataGaName":1251,"dataGaLocation":2023},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/fr-fr/","feature",{"text":1576,"config":2025},{"href":1578,"dataGaName":1256,"dataGaLocation":2023},1786803765251]