{"id":72112,"date":"2023-08-21T12:59:46","date_gmt":"2023-08-21T11:59:46","guid":{"rendered":"https:\/\/kinsta.com\/fr\/?p=72112&#038;preview=true&#038;preview_id=72112"},"modified":"2023-08-22T06:12:35","modified_gmt":"2023-08-22T05:12:35","slug":"deploiement-continu-react","status":"publish","type":"post","link":"https:\/\/kinsta.com\/fr\/blog\/deploiement-continu-react\/","title":{"rendered":"D\u00e9ploiement continu d&rsquo;applications React avec CircleCI et Kinsta API"},"content":{"rendered":"<p>Le d\u00e9ploiement continu est devenu essentiel dans le paysage du <a href=\"https:\/\/kinsta.com\/fr\/blog\/developpeur-full-stack\/\">d\u00e9veloppement logiciel<\/a>, qui \u00e9volue rapidement. Il promet des cycles de publication plus rapides, une r\u00e9duction des erreurs humaines et, en fin de compte, une meilleure exp\u00e9rience pour l&rsquo;utilisateur.<\/p>\n<p>Le d\u00e9veloppement de logiciels consiste \u00e0 r\u00e9soudre des probl\u00e8mes du monde r\u00e9el \u00e0 l&rsquo;aide de code. Le parcours d&rsquo;un logiciel, depuis sa cr\u00e9ation jusqu&rsquo;\u00e0 son utilisation par le client, comporte de nombreuses \u00e9tapes qui exigent rapidit\u00e9, s\u00e9curit\u00e9 et fiabilit\u00e9. C&rsquo;est l\u00e0 que le d\u00e9ploiement continu s&rsquo;impose.<\/p>\n<p>Cet article explique comment int\u00e9grer la plateforme <a href=\"https:\/\/circleci.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">CircleCI<\/a> pour cr\u00e9er un flux de travail d&rsquo;int\u00e9gration continue et de livraison\/d\u00e9ploiement continu (<a href=\"https:\/\/kinsta.com\/fr\/blog\/outils-devops\/#devops-pipeline-cicd-tools\">CI\/CD<\/a>) tout en exploitant la puissance de l&rsquo;<a href=\"https:\/\/kinsta.com\/fr\/docs\/api-kinsta\/\">API Kinsta<\/a> pour le d\u00e9ploiement continu d&rsquo;applications &#8211; comme notre exemple React ici. Cette combinaison peut permettre de passer en douceur du d\u00e9veloppement \u00e0 la production.<\/p>\n<div><\/div><kinsta-auto-toc heading=\"Table of Contents\" exclude=\"last\" list-style=\"arrow\" selector=\"h2\" count-number=\"-1\"><\/kinsta-auto-toc>\n<h2>Comprendre le d\u00e9ploiement continu<\/h2>\n<p>Le d\u00e9ploiement continu est plus qu&rsquo;un simple mot \u00e0 la mode : c&rsquo;est un changement de paradigme dans le d\u00e9veloppement de logiciels. Il s&rsquo;agit d&rsquo;automatiser le processus de construction, de test et de d\u00e9ploiement des modifications du code sur les serveurs de production.<\/p>\n<p>Le pipeline CI\/CD, \u00e9l\u00e9ment fondamental du d\u00e9ploiement continu, orchestre l&rsquo;ensemble du processus. Il comprend le contr\u00f4le des versions, les tests automatis\u00e9s et le d\u00e9ploiement automatis\u00e9. Chaque \u00e9tape est cruciale pour s&rsquo;assurer que seul un code fiable et test\u00e9 atteigne la production.<\/p>\n<h2>Qu&rsquo;est-ce que CircleCI ?<\/h2>\n<p>CircleCI est un outil populaire pour la mise en \u0153uvre de CI\/CD. Il s&rsquo;int\u00e8gre aux syst\u00e8mes de contr\u00f4le de version tels que <a href=\"https:\/\/kinsta.com\/fr\/blog\/comment-pousser-code-github\/\">GitHub<\/a>, <a href=\"https:\/\/kinsta.com\/fr\/blog\/gitlab-vs-github\/\">GitLab<\/a> et <a href=\"https:\/\/kinsta.com\/fr\/blog\/bitbucket-vs-github\/\">Bitbucket<\/a>, permettant aux d\u00e9veloppeurs d&rsquo;automatiser l&rsquo;ensemble du pipeline CI\/CD. Son \u00e9volutivit\u00e9, son extensibilit\u00e9 et sa prise en charge de divers <a href=\"https:\/\/kinsta.com\/fr\/blog\/meilleur-langage-programmation-apprendre\/\">langages de programmation<\/a> en font un outil polyvalent pour des projets de toutes tailles.<\/p>\n<p>Les <a href=\"https:\/\/kinsta.com\/fr\/blog\/types-de-developpeurs\/\">d\u00e9veloppeurs<\/a> CircleCI d\u00e9finissent des flux de travail qui se d\u00e9clenchent automatiquement lors de la validation du code. Cela initie les processus de construction et de test et, une fois termin\u00e9 avec succ\u00e8s, d\u00e9ploie le code dans l&rsquo;environnement cible. Cette approche non interventionniste permet non seulement de gagner du temps mais aussi de r\u00e9duire le risque d&rsquo;erreurs humaines lors du d\u00e9ploiement.<\/p>\n<h2>Comprendre l&rsquo;API Kinsta<\/h2>\n<p>L&rsquo;<a href=\"https:\/\/kinsta.com\/fr\/changelog\/api-kinsta\/\">API de Kinsta<\/a> vous permet d&rsquo;interagir avec les services h\u00e9berg\u00e9s par Kinsta de mani\u00e8re programmatique, le d\u00e9ploiement d&rsquo;applications faisant partie de ses fonctionnalit\u00e9s. Lorsque vous travaillez avec des flux de travail CI\/CD, vous utiliserez la commande cURL pour interagir avec l&rsquo;API Kinsta \u00e0 partir du flux de travail.<\/p>\n<p>Pour utiliser l&rsquo;API, vous devez avoir un compte avec au moins un site <a href=\"https:\/\/kinsta.com\/fr\/hebergement-wordpress\/\">WordPress<\/a>, une <a href=\"https:\/\/sevalla.com\/application-hosting\/\">application<\/a> ou une <a href=\"https:\/\/sevalla.com\/database-hosting\/\">base de donn\u00e9es<\/a> dans MyKinsta. Vous pouvez ensuite g\u00e9n\u00e9rer une cl\u00e9 API pour authentifier votre acc\u00e8s \u00e0 l&rsquo;API.<\/p>\n<p>Pour g\u00e9n\u00e9rer une cl\u00e9 API :<\/p>\n<ol start=\"1\">\n<li>Allez sur votre tableau de bord MyKinsta.<\/li>\n<li>Naviguez jusqu&rsquo;\u00e0 la page des <strong>cl\u00e9s API <\/strong>(<strong>Votre nom<\/strong> &gt; <strong>R\u00e9glages de l&rsquo;entreprise<\/strong> &gt; <strong>Cl\u00e9s API<\/strong>).<\/li>\n<li>Cliquez sur <strong>Cr\u00e9er une cl\u00e9 API<\/strong>.<\/li>\n<li>Choisissez une date d&rsquo;expiration ou d\u00e9finissez une date de d\u00e9but personnalis\u00e9e et un nombre d&rsquo;heures pour l&rsquo;expiration de la cl\u00e9.<\/li>\n<li>Donnez un nom unique \u00e0 la cl\u00e9.<\/li>\n<li>Cliquez sur <strong>G\u00e9n\u00e9rer<\/strong>.<\/li>\n<\/ol>\n<p>Apr\u00e8s avoir cr\u00e9\u00e9 une cl\u00e9 API, copiez-la et conservez-la en lieu s\u00fbr (nous vous recommandons d&rsquo;utiliser un <a href=\"https:\/\/kinsta.com\/fr\/blog\/gestionnaires-mots-passe\/\">gestionnaire de mots de passe<\/a>), car c&rsquo;est la <strong>seule fois o\u00f9<\/strong> elle sera r\u00e9v\u00e9l\u00e9e dans MyKinsta.<\/p>\n<h3>Comment d\u00e9clencher un d\u00e9ploiement avec l&rsquo;API Kinsta<\/h3>\n<p>Pour d\u00e9clencher le d\u00e9ploiement d&rsquo;une application sur Kinsta \u00e0 l&rsquo;aide de l&rsquo;API, vous avez besoin de l&rsquo;identifiant de l&rsquo;application et du nom de la branche d\u00e9ployable dans le d\u00e9p\u00f4t Git. Vous pouvez r\u00e9cup\u00e9rer l&rsquo;identifiant de votre application en <a href=\"https:\/\/api-docs.kinsta.com\/tag\/Applications#operation\/getApplications\" target=\"_blank\" rel=\"noopener noreferrer\">consultant d&rsquo;abord <\/a><a href=\"https:\/\/api-docs.kinsta.com\/tag\/Applications#operation\/getApplications\" target=\"_blank\" rel=\"noopener noreferrer\">la liste de vos applications<\/a>, qui fournira des d\u00e9tails sur chaque application, y compris son identifiant.<\/p>\n<p>Vous pouvez ensuite envoyer une <a href=\"https:\/\/kinsta.com\/fr\/blog\/requetes-http-javascript\/\">requ\u00eate POST<\/a> au point d&rsquo;arriv\u00e9e de l&rsquo;API <code><a href=\"https:\/\/api-docs.kinsta.com\/tag\/Application-Deployments#operation\/manualDeployApplication\" target=\"_blank\" rel=\"noopener noreferrer\">\/applications\/deployments<\/a><\/code> avec une commande cURL :<\/p>\n<pre><code class=\"language-yaml\">curl -i -X POST \n  https:\/\/api.kinsta.com\/v2\/applications\/deployments \n  -H 'Authorization: Bearer &lt;YOUR_TOKEN_HERE&gt;' \n  -H 'Content-Type: application\/json' \n  -d '{\n    \"app_id\": \"&lt;YOUR_APP_ID&gt;\",\n    \"branch\": \"main\"\n  }'<\/code><\/pre>\n<p>Cette commande cURL sera utilis\u00e9e dans le workflow.<\/p>\n<h2>D\u00e9marrer avec CircleCI<\/h2>\n<p>Vous aurez besoin d&rsquo;un code source h\u00e9berg\u00e9 sur votre fournisseur Git pr\u00e9f\u00e9r\u00e9 pour d\u00e9marrer avec CircleCI. Pour ce tutoriel, nous utiliserons l&rsquo;<a href=\"https:\/\/github.com\/kinsta\/site-builder\" target=\"_blank\" rel=\"noopener noreferrer\">application de cr\u00e9ation de site<\/a> d\u00e9velopp\u00e9e pour le tutoriel <a href=\"https:\/\/kinsta.com\/fr\/blog\/api-wordpress\/\">Comment cr\u00e9er un site WordPress avec l&rsquo;API Kinsta<\/a>. N&rsquo;h\u00e9sitez pas \u00e0 utiliser le d\u00e9p\u00f4t en y acc\u00e9dant sur GitHub et en s\u00e9lectionnant : <strong>Utiliser ce mod\u00e8le<\/strong> &gt; <strong>Cr\u00e9er un nouveau d\u00e9p\u00f4t<\/strong>.<\/p>\n<p>Dans l&rsquo;application <a href=\"https:\/\/kinsta.com\/fr\/sujets\/react\/\">React<\/a>, des tests unitaires sont cr\u00e9\u00e9s pour tester chaque composant. <a href=\"https:\/\/kinsta.com\/fr\/blog\/vscode-extensions\/#1-eslint\">ESLint<\/a> est \u00e9galement utilis\u00e9 pour assurer une syntaxe et un formatage de code parfaits. Mettons en place un flux de travail CI\/CD qui construit, teste, s&rsquo;assure que la syntaxe de notre code est correcte, et enfin d\u00e9ploie sur Kinsta en utilisant l&rsquo;API.<\/p>\n<p>Pour commencer, explorons quelques concepts cl\u00e9s :<\/p>\n<ol start=\"1\">\n<li><strong>Les flux de travail :<\/strong> CircleCI est bas\u00e9 sur des flux de travail &#8211; des s\u00e9quences d\u00e9finies de t\u00e2ches qui d\u00e9crivent les \u00e9tapes de votre pipeline CI\/CD. Les flux de travail peuvent inclure diff\u00e9rentes \u00e9tapes telles que la construction, les tests, le d\u00e9ploiement, et plus encore.<\/li>\n<li><strong>Les t\u00e2ches :<\/strong> Les t\u00e2ches sont des unit\u00e9s de travail individuelles au sein d&rsquo;un flux de travail. Chaque t\u00e2che ex\u00e9cute un travail sp\u00e9cifique, tel que la compilation de code, l&rsquo;ex\u00e9cution de tests ou le d\u00e9ploiement sur un serveur. Ces t\u00e2ches peuvent \u00e9galement comprendre diverses \u00e9tapes ex\u00e9cut\u00e9es en s\u00e9quence (ex\u00e9cution parall\u00e8le), de sorte que si l&rsquo;une d&rsquo;entre elles \u00e9choue, c&rsquo;est l&rsquo;ensemble de la t\u00e2che qui \u00e9choue.<\/li>\n<\/ol>\n<h3>\u00c9tape 1 : Cr\u00e9er un compte CircleCI<\/h3>\n<p>Visitez le site web de CircleCI et cr\u00e9ez un compte si vous n&rsquo;en avez pas d\u00e9j\u00e0 un. Vous pouvez vous inscrire en utilisant votre fournisseur Git pr\u00e9f\u00e9r\u00e9. Cela facilite l&rsquo;acc\u00e8s \u00e0 vos d\u00e9p\u00f4ts sans configuration suppl\u00e9mentaire.<\/p>\n<h3>\u00c9tape 2 : Cr\u00e9er le fichier de configuration<\/h3>\n<p>Dans le r\u00e9pertoire racine de votre projet, cr\u00e9ez un dossier <strong>.circleci<\/strong> s&rsquo;il n&rsquo;existe pas, et dans ce dossier, cr\u00e9ez un fichier <strong>config.yml<\/strong>. Ce fichier contiendra la configuration de votre flux de travail.<\/p>\n<h3>\u00c9tape 3 : Configurer votre r\u00e9f\u00e9rentiel<\/h3>\n<p>Une fois connect\u00e9, naviguez dans votre <a href=\"https:\/\/app.circleci.com\/dashboard\" target=\"_blank\" rel=\"noopener noreferrer\">tableau de bord CircleCI<\/a>, cliquez sur <strong>Projets<\/strong> dans la colonne lat\u00e9rale de gauche pour voir une liste de d\u00e9p\u00f4ts, et cliquez sur le bouton <strong>Configurer un projet<\/strong> pour le d\u00e9p\u00f4t que vous souhaitez configurer.<\/p>\n<figure style=\"width: 1600px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/08\/configure-repository.jpg\" alt=\"Configurez votre d\u00e9p\u00f4t.\" width=\"1600\" height=\"225\"><figcaption class=\"wp-caption-text\">Configurez votre d\u00e9p\u00f4t.<\/figcaption><\/figure>\n<p>Ceci affichera une bo\u00eete de dialogue dans laquelle CircleCI d\u00e9tectera automatiquement votre fichier de configuration. Ensuite, cliquez sur le bouton <strong>Configurer<\/strong> le projet. CircleCI peut maintenant acc\u00e9der \u00e0 votre base de code et ex\u00e9cuter les flux de travail d\u00e9finis lors des changements de code.<\/p>\n<h3>\u00c9tape 4 : D\u00e9finir la t\u00e2che de votre flux de travail<\/h3>\n<p>Au c\u0153ur de la mise en place de votre pipeline CircleCI se trouve cette \u00e9tape cruciale : d\u00e9finir votre workflow dans le fichier <strong>config.yml<\/strong>. C&rsquo;est ici que vous orchestrez la s\u00e9quence d&rsquo;actions que votre pipeline va ex\u00e9cuter. C&rsquo;est comme si vous d\u00e9finissiez le plan de votre voyage du d\u00e9veloppement \u00e0 la production.<\/p>\n<p>Cela commence par la d\u00e9finition de la version de CircleCI, qui est actuellement <code>2.1<\/code>:<\/p>\n<pre><code class=\"language-yaml\">version: 2.1<\/code><\/pre>\n<p>Vous aurez besoin d&rsquo;une t\u00e2che <code>build<\/code> pour chaque projet React. Ce job s&rsquo;attaque aux t\u00e2ches fondamentales qui rendent votre code pr\u00eat \u00e0 \u00eatre d\u00e9ploy\u00e9. Ces t\u00e2ches comprennent l&rsquo;installation des d\u00e9pendances n\u00e9cessaires, la compilation de votre code, l&rsquo;ex\u00e9cution de tests pour s&rsquo;assurer que tout fonctionne correctement, la v\u00e9rification de la qualit\u00e9 du code et, enfin, le d\u00e9ploiement du code vers sa destination.<\/p>\n<p>Puisque les projets React ont souvent besoin d&rsquo;outils comme <a href=\"https:\/\/kinsta.com\/fr\/blog\/construire-slackbot-nodejs-api-kinsta-gesion-site\/\">Node.js<\/a> pour faire le travail, CircleCI simplifie l&rsquo;acc\u00e8s \u00e0 ces outils en les offrant sous forme d&rsquo;<a href=\"https:\/\/circleci.com\/developer\/images\" target=\"_blank\" rel=\"noopener noreferrer\">images pr\u00e9-packag\u00e9es<\/a>. Dans ce tutoriel, sp\u00e9cifiez la version de Node.js que vous souhaitez utiliser. Utilisons <a href=\"https:\/\/kinsta.com\/fr\/blog\/node-js-20\/\">Node.js v20<\/a>.<\/p>\n<pre><code class=\"language-yaml\">jobs:\n  build:\n    docker:\n      - image: cimg\/node:20.5.0<\/code><\/pre>\n<p>Ce travail effectuera plusieurs \u00e9tapes, alors cr\u00e9ons-les. La premi\u00e8re \u00e9tape est <code>checkout<\/code>, qui r\u00e9cup\u00e8re la derni\u00e8re version de votre code dans le r\u00e9f\u00e9rentiel afin que toutes les actions suivantes fonctionnent avec le dernier code.<\/p>\n<pre><code class=\"language-yaml\">steps:\n  - checkout<\/code><\/pre>\n<p>Passons maintenant \u00e0 l&rsquo;essentiel : faire avancer les choses. Les \u00e9tapes qui suivent <code>checkout<\/code> couvrent les t\u00e2ches cl\u00e9s : installation des d\u00e9pendances, compilation du code source, ex\u00e9cution des tests unitaires et utilisation d&rsquo;ESLint pour inspecter votre code \u00e0 la recherche d&rsquo;\u00e9ventuels signaux d&rsquo;alerte.<\/p>\n<pre><code class=\"language-yaml\">steps:\n  - checkout\n  - run:\n      name: Install Dependencies\n      command: npm install\n  - run:\n      name: Compile Source Code\n      command: npm run build\n  - run:\n      name: Run Unit Tests\n      command: npm test\n  - run:\n      name: Run ESLint\n      command: npm run lint<\/code><\/pre>\n<p>Chaque \u00e9tape, comme les panneaux indicateurs d&rsquo;un voyage, est nomm\u00e9e pour vous aider \u00e0 suivre ce qui se passe lorsque le flux de travail bat son plein. Cette clart\u00e9 facilite le d\u00e9pannage et permet de s&rsquo;assurer que tout est sur la bonne voie au fur et \u00e0 mesure que votre flux de travail s&rsquo;\u00e9coule.<\/p>\n<h4>D\u00e9clenchement du d\u00e9ploiement continu vers Kinsta<\/h4>\n<p>La derni\u00e8re \u00e9tape de la t\u00e2che <code>build<\/code> consiste \u00e0 lancer le d\u00e9ploiement vers Kinsta via l&rsquo;API. Cela n\u00e9cessite deux valeurs : votre <strong>cl\u00e9 API<\/strong> et votre <strong>App ID<\/strong>, qui ne doivent pas \u00eatre publiques. Ces valeurs seront conserv\u00e9es comme <a href=\"https:\/\/kinsta.com\/fr\/blog\/variables-environnement\/\">variables d&rsquo;environnement<\/a> dans CircleCI. Pour l&rsquo;instant, d\u00e9finissons l&rsquo;\u00e9tape de d\u00e9ploiement dans le workflow :<\/p>\n<pre><code class=\"language-yaml\">- run:\n    name: Deploy to Kinsta\n    command: |\n      curl -i -X POST \n        https:\/\/api.kinsta.com\/v2\/applications\/deployments \n        -H \"Authorization: Bearer $API_KEY\" \n        -H \"Content-Type: application\/json\" \n        -d '{\n          \"app_id\": \"'\"$APP_ID\"'\",\n          \"branch\": \"main\"\n        }'<\/code><\/pre>\n<p>Dans le code fourni, vous ex\u00e9cutez la commande cURL pour d\u00e9clencher le d\u00e9ploiement en utilisant l&rsquo;identifiant de l&rsquo;application stock\u00e9 dans vos variables d&rsquo;environnement. Rappelez-vous, les variables d&rsquo;environnement sont accessibles en utilisant la syntaxe :<\/p>\n<pre><code class=\"language-yaml\">\"$VARIABLE_NAME\"<\/code><\/pre>\n<h4>Stocker des variables d&rsquo;environnement avec CircleCI<\/h4>\n<p>Les variables d&rsquo;environnement sont cruciales pour maintenir la s\u00e9curit\u00e9 et la flexibilit\u00e9 de vos flux de travail d&rsquo;int\u00e9gration et de d\u00e9ploiement continus. Pour stocker des variables d&rsquo;environnement dans CircleCI, suivez les \u00e9tapes suivantes :<\/p>\n<ol start=\"1\">\n<li>Ouvrez votre projet pour voir tous les d\u00e9tails de votre pipeline, et cliquez sur le bouton <strong>R\u00e9glages du projet<\/strong>.<\/li>\n<li>Cliquez sur l&rsquo;onglet <strong>Variables d&rsquo;environnement<\/strong> dans la colonne lat\u00e9rale et ajoutez vos variables d&rsquo;environnement.<\/li>\n<\/ol>\n<figure style=\"width: 1600px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/08\/store-env-variables.jpg\" alt=\"Enregistrez les variables d'environnement.\" width=\"1600\" height=\"225\"><figcaption class=\"wp-caption-text\">Enregistrez les variables d&rsquo;environnement.<\/figcaption><\/figure>\n<h3>\u00c9tape 5 : Configuration du flux de travail<\/h3>\n<p>Une fois vos t\u00e2ches configur\u00e9es et structur\u00e9es en \u00e9tapes organis\u00e9es, la phase suivante consiste \u00e0 <a href=\"https:\/\/circleci.com\/docs\/configuration-reference\/#workflows\" target=\"_blank\" rel=\"noopener noreferrer\">configurer votre flux de travail<\/a>. Le flux de travail agit comme un orchestrateur, guidant la s\u00e9quence des t\u00e2ches et <a href=\"https:\/\/support.circleci.com\/hc\/en-us\/articles\/115015953868-Filter-workflows-by-branch-\">incorporant des filtres et des r\u00e8gles sp\u00e9cifiques<\/a> pour d\u00e9terminer comment ces t\u00e2ches sont ex\u00e9cut\u00e9es.<\/p>\n<p>Dans ce tutoriel, nous allons cr\u00e9er un flux de travail qui d\u00e9clenche le travail de construction exclusivement lorsqu&rsquo;il y a une pouss\u00e9e ou des modifications dans le code sur la branche <code>main<\/code> du d\u00e9p\u00f4t :<\/p>\n<pre><code class=\"language-yaml\">workflows:\n  version: 2\n  build-test-lint:\n    jobs:\n      - build:\n          filters:\n            branches:\n              only:\n                - main<\/code><\/pre>\n<p>Cette configuration est r\u00e9alis\u00e9e \u00e0 l&rsquo;aide de filtres, qui vous permettent de contr\u00f4ler l&rsquo;ex\u00e9cution d&rsquo;une t\u00e2che en fonction de certaines conditions. Vous pouvez \u00e9galement incorporer des d\u00e9clencheurs pour planifier le moment o\u00f9 le flux de travail doit s&rsquo;ex\u00e9cuter (exemple : tous les jours \u00e0 12 heures UTC) :<\/p>\n<pre><code class=\"language-yaml\">workflows:\n  version: 2\n  build-test-lint:\n    jobs:\n      - build:\n          filters:\n            branches:\n              only:\n                - main\n    triggers:\n      - schedule:\n          cron: \"0 0 * * *\"<\/code><\/pre>\n<p>Le flux de travail ci-dessus comporte une page <code>trigger<\/code> d\u00e9finie avec le mot-cl\u00e9 <code>schedule<\/code>. L&rsquo;expression cron <code>\"0 0 * * *\"<\/code> correspond \u00e0 la programmation du flux de travail \u00e0 minuit UTC tous les jours.<\/p>\n<p>Dans une expression cron, il y a cinq champs s\u00e9par\u00e9s par des espaces, chacun repr\u00e9sentant une unit\u00e9 de temps diff\u00e9rente :<\/p>\n<ol start=\"1\">\n<li><strong>Minute (0-59) :<\/strong> Le premier champ repr\u00e9sente la minute de l&rsquo;heure, d\u00e9finie sur <code>0<\/code> pour se d\u00e9clencher au d\u00e9but de l&rsquo;heure.<\/li>\n<li><strong>Heure (0-23) :<\/strong> Le deuxi\u00e8me champ indique l&rsquo;heure de la journ\u00e9e ; r\u00e9glez-le sur <code>0<\/code> pour un d\u00e9clenchement \u00e0 minuit.<\/li>\n<li><strong>Jour du mois (1-31) :<\/strong> Le troisi\u00e8me champ indique le jour, avec un ast\u00e9risque (<code>*<\/code>) pour n&rsquo;importe quel jour.<\/li>\n<li><strong>Mois (1-12) :<\/strong> Le quatri\u00e8me champ repr\u00e9sente le mois, indiqu\u00e9 par un ast\u00e9risque (<code>*<\/code>) pour n&rsquo;importe quel mois.<\/li>\n<li><strong>Jour de la semaine (0-6, o\u00f9 0 correspond au dimanche) :<\/strong> Le cinqui\u00e8me champ indique le jour de la semaine, \u00e9galement marqu\u00e9 d&rsquo;un ast\u00e9risque (<code>*<\/code>) pour n&rsquo;importe quel jour.<\/li>\n<\/ol>\n<p>Avec cette configuration de flux de travail, vous pouvez g\u00e9rer efficacement quand et dans quelles conditions vos t\u00e2ches d\u00e9finies s&rsquo;ex\u00e9cutent, en maintenant un pipeline CI\/CD efficace et rationalis\u00e9.<\/p>\n<h3>\u00c9tape 6 : Validation et observation<\/h3>\n<p>Une fois que votre flux de travail est configur\u00e9 avec succ\u00e8s, validez vos changements dans votre d\u00e9p\u00f4t de contr\u00f4le de version. CircleCI d\u00e9tectera automatiquement la pr\u00e9sence du fichier de configuration et d\u00e9clenchera les flux de travail d\u00e9finis lors des changements de code.<\/p>\n<figure style=\"width: 1600px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/08\/circleci-job-details.jpg\" alt=\"D\u00e9tails de l'offre CircleCI.\" width=\"1600\" height=\"225\"><figcaption class=\"wp-caption-text\">D\u00e9tails de l&rsquo;offre CircleCI.<\/figcaption><\/figure>\n<p>Cliquez sur la t\u00e2che de construction pour consulter ses d\u00e9tails. Si vous avez plus d&rsquo;une t\u00e2che, elles seront toutes list\u00e9es. Lorsque vous cliquez sur une t\u00e2che, l&rsquo;onglet <strong>\u00c9TAPES<\/strong> affiche toutes les \u00e9tapes ex\u00e9cut\u00e9es par la t\u00e2che et indique si elles ont r\u00e9ussi ou \u00e9chou\u00e9.<\/p>\n<figure style=\"width: 1600px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/08\/circleci-job-steps.jpg\" alt=\"\u00c9tapes de la t\u00e2che.\" width=\"1600\" height=\"225\"><figcaption class=\"wp-caption-text\">\u00c9tapes de la t\u00e2che.<\/figcaption><\/figure>\n<p>Vous pouvez \u00e9galement cliquer sur chaque \u00e9tape pour obtenir plus de d\u00e9tails. Lorsque vous cliquez sur l&rsquo;\u00e9tape <strong>D\u00e9ployer vers Kinsta<\/strong>, vous verrez plus de d\u00e9tails sur la requ\u00eate API et saurez si elle a abouti :<\/p>\n<figure style=\"width: 1600px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/08\/circleci-step-info.jpg\" alt=\"Informations sur l'\u00e9tape.\" width=\"1600\" height=\"225\"><figcaption class=\"wp-caption-text\">Informations sur l&rsquo;\u00e9tape.<\/figcaption><\/figure>\n<aside role=\"note\" class=\"wp-block-kinsta-notice is-style-info\">\n            <h3>Info<\/h3>\n        <p>L&rsquo;\u00e9tape D\u00e9ployer vers Kinsta est con\u00e7ue pour ex\u00e9cuter le processus de d\u00e9ploiement \u00e0 l&rsquo;aide de l&rsquo;API de Kinsta. Elle affichera un \u00e9tat de r\u00e9ussite m\u00eame si le processus de d\u00e9ploiement r\u00e9el rencontre des probl\u00e8mes ou des \u00e9checs. En effet, la r\u00e9ponse du flux de travail est bas\u00e9e sur le lancement r\u00e9ussi du d\u00e9ploiement, et non sur son ach\u00e8vement ou son \u00e9tat.<\/p>\n<\/aside>\n\n<p>Lorsque vous consultez votre tableau de bord <a href=\"https:\/\/my.kinsta.com\/?lang=fr\">MyKinsta<\/a>, vous remarquerez que le flux de travailD\u00e9ploiement continu d&rsquo;applications React avec CircleCI et l&rsquo;API Kinsta d\u00e9clenche automatiquement le d\u00e9ploiement. Voici \u00e0 quoi ressemble votre flux de travail CircleCI complet :<\/p>\n<pre><code class=\"language-yaml\">version: 2.1\njobs:\n  build:\n    docker:\n      - image: cimg\/node:20.5.0\n    steps:\n      - checkout # Check out the code from the repository\n      - run:\n          name: Install Dependencies\n          command: npm install\n      - run:\n          name: Compile Source Code\n          command: npm run build\n      - run:\n          name: Run Unit Tests\n          command: npm test\n      - run:\n          name: Run ESLint\n          command: npm run lint\n- run:\n    name: Deploy to Kinsta\n    command: |\n      curl -i -X POST \n        https:\/\/api.kinsta.com\/v2\/applications\/deployments \n        -H \"Authorization: Bearer $API_KEY\" \n        -H \"Content-Type: application\/json\" \n        -d '{\n          \"app_id\": \"'\"$APP_ID\"'\",\n          \"branch\": \"main\"\n        }'\n\nworkflows:\n  version: 2\n  build-test-lint:\n    jobs:\n      - build:\n          filters:\n            branches:\n              only:\n                - main<\/code><\/pre>\n<h2>R\u00e9sum\u00e9<\/h2>\n<p>Vous avez maintenant r\u00e9ussi \u00e0 mettre en place un processus de d\u00e9ploiement personnalis\u00e9 pour votre application React sur Kinsta gr\u00e2ce \u00e0 CircleCI. Cette approche vous donne plus de flexibilit\u00e9 et d&rsquo;autorit\u00e9 sur vos d\u00e9ploiements, permettant \u00e0 votre \u00e9quipe d&rsquo;ex\u00e9cuter des \u00e9tapes sp\u00e9cialis\u00e9es dans le processus.<\/p>\n<p>En adoptant CircleCI, vous faites un pas important vers l&rsquo;am\u00e9lioration de vos m\u00e9thodologies de d\u00e9veloppement. L&rsquo;automatisation de votre pipeline CI\/CD garantit non seulement la qualit\u00e9 de votre code mais acc\u00e9l\u00e8re \u00e9galement vos cycles de mise en production.<\/p>\n<p><em>Comment utilisez-vous l&rsquo;API Kinsta ? Quels points d&rsquo;extr\u00e9mit\u00e9 souhaiteriez-vous voir ajout\u00e9s \u00e0 l&rsquo;API ? Quel tutoriel relatif \u00e0 l&rsquo;API Kinsta aimeriez-vous lire ensuite ?<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Le d\u00e9ploiement continu est devenu essentiel dans le paysage du d\u00e9veloppement logiciel, qui \u00e9volue rapidement. Il promet des cycles de publication plus rapides, une r\u00e9duction des &#8230;<\/p>\n","protected":false},"author":287,"featured_media":72113,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kinsta_gated_content":false,"_kinsta_gated_content_redirect":"","footnotes":""},"tags":[],"topic":[953,1004],"class_list":["post-72112","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","topic-api","topic-react"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v24.6 (Yoast SEO v24.6) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>D\u00e9ploiement continu d&#039;applications React avec CircleCI et l&#039;API Kinsta<\/title>\n<meta name=\"description\" content=\"Ajoutez de mani\u00e8re transparente le CI\/CD aux projets React \u00e0 l&#039;aide de CircleCI et de la puissante API Kinsta pour un d\u00e9veloppement et un d\u00e9ploiement efficaces.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/kinsta.com\/fr\/blog\/deploiement-continu-react\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"D\u00e9ploiement continu d&#039;applications React avec CircleCI et Kinsta API\" \/>\n<meta property=\"og:description\" content=\"Ajoutez de mani\u00e8re transparente le CI\/CD aux projets React \u00e0 l&#039;aide de CircleCI et de la puissante API Kinsta pour un d\u00e9veloppement et un d\u00e9ploiement efficaces.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kinsta.com\/fr\/blog\/deploiement-continu-react\/\" \/>\n<meta property=\"og:site_name\" content=\"Kinsta\u00ae\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/kinstafrance\/\" \/>\n<meta property=\"article:published_time\" content=\"2023-08-21T11:59:46+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-08-22T05:12:35+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/08\/continuous-deployment-of-react-applications-with-circleci-and-kinsta-api.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1460\" \/>\n\t<meta property=\"og:image:height\" content=\"730\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Joel Olawanle\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:description\" content=\"Ajoutez de mani\u00e8re transparente le CI\/CD aux projets React \u00e0 l&#039;aide de CircleCI et de la puissante API Kinsta pour un d\u00e9veloppement et un d\u00e9ploiement efficaces.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/08\/continuous-deployment-of-react-applications-with-circleci-and-kinsta-api.jpg\" \/>\n<meta name=\"twitter:creator\" content=\"@olawanle_joel\" \/>\n<meta name=\"twitter:site\" content=\"@kinsta_fr\" \/>\n<meta name=\"twitter:label1\" content=\"\u00c9crit par\" \/>\n\t<meta name=\"twitter:data1\" content=\"Joel Olawanle\" \/>\n\t<meta name=\"twitter:label2\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data2\" content=\"12 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/deploiement-continu-react\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/deploiement-continu-react\/\"},\"author\":{\"name\":\"Joel Olawanle\",\"@id\":\"https:\/\/kinsta.com\/fr\/#\/schema\/person\/efa7de30245ca15be5ce1dcacff89c07\"},\"headline\":\"D\u00e9ploiement continu d&rsquo;applications React avec CircleCI et Kinsta API\",\"datePublished\":\"2023-08-21T11:59:46+00:00\",\"dateModified\":\"2023-08-22T05:12:35+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/deploiement-continu-react\/\"},\"wordCount\":2586,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/fr\/#organization\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/deploiement-continu-react\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/08\/continuous-deployment-of-react-applications-with-circleci-and-kinsta-api.jpg\",\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/kinsta.com\/fr\/blog\/deploiement-continu-react\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/deploiement-continu-react\/\",\"url\":\"https:\/\/kinsta.com\/fr\/blog\/deploiement-continu-react\/\",\"name\":\"D\u00e9ploiement continu d'applications React avec CircleCI et l'API Kinsta\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/fr\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/deploiement-continu-react\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/deploiement-continu-react\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/08\/continuous-deployment-of-react-applications-with-circleci-and-kinsta-api.jpg\",\"datePublished\":\"2023-08-21T11:59:46+00:00\",\"dateModified\":\"2023-08-22T05:12:35+00:00\",\"description\":\"Ajoutez de mani\u00e8re transparente le CI\/CD aux projets React \u00e0 l'aide de CircleCI et de la puissante API Kinsta pour un d\u00e9veloppement et un d\u00e9ploiement efficaces.\",\"breadcrumb\":{\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/deploiement-continu-react\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kinsta.com\/fr\/blog\/deploiement-continu-react\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/deploiement-continu-react\/#primaryimage\",\"url\":\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/08\/continuous-deployment-of-react-applications-with-circleci-and-kinsta-api.jpg\",\"contentUrl\":\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/08\/continuous-deployment-of-react-applications-with-circleci-and-kinsta-api.jpg\",\"width\":1460,\"height\":730},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/deploiement-continu-react\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/kinsta.com\/fr\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"API\",\"item\":\"https:\/\/kinsta.com\/fr\/sujets\/api\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"D\u00e9ploiement continu d&rsquo;applications React avec CircleCI et Kinsta API\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/kinsta.com\/fr\/#website\",\"url\":\"https:\/\/kinsta.com\/fr\/\",\"name\":\"Kinsta\u00ae\",\"description\":\"Solutions d&#039;h\u00e9bergement premium, rapides et s\u00e9curis\u00e9es\",\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/fr\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/kinsta.com\/fr\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/kinsta.com\/fr\/#organization\",\"name\":\"Kinsta\",\"url\":\"https:\/\/kinsta.com\/fr\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/kinsta.com\/fr\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/12\/kinsta-logo.jpeg\",\"contentUrl\":\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/12\/kinsta-logo.jpeg\",\"width\":500,\"height\":500,\"caption\":\"Kinsta\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/fr\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/kinstafrance\/\",\"https:\/\/x.com\/kinsta_fr\",\"https:\/\/www.instagram.com\/kinstahosting\/\",\"https:\/\/www.linkedin.com\/company\/kinsta\/\",\"https:\/\/www.pinterest.com\/kinstahosting\/\",\"https:\/\/www.youtube.com\/c\/Kinsta\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/kinsta.com\/fr\/#\/schema\/person\/efa7de30245ca15be5ce1dcacff89c07\",\"name\":\"Joel Olawanle\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/kinsta.com\/fr\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/051bf577ce2c837846a1db9eef184758?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/051bf577ce2c837846a1db9eef184758?s=96&d=mm&r=g\",\"caption\":\"Joel Olawanle\"},\"description\":\"Joel is a Frontend developer working at Kinsta as a Technical Editor. He is a passionate teacher with love for open source and has written over 300 technical articles majorly around JavaScript and it's frameworks.\",\"sameAs\":[\"https:\/\/joelolawanle.com\/\",\"https:\/\/www.linkedin.com\/in\/olawanlejoel\/\",\"https:\/\/x.com\/olawanle_joel\",\"https:\/\/www.youtube.com\/@joelolawanle\"],\"gender\":\"male\",\"knowsAbout\":[\"JavaScript\",\"React\",\"Next.js\"],\"knowsLanguage\":[\"English\"],\"jobTitle\":\"Technical Editor\",\"worksFor\":\"Kinsta\",\"url\":\"https:\/\/kinsta.com\/fr\/blog\/author\/joelolawanle\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"D\u00e9ploiement continu d'applications React avec CircleCI et l'API Kinsta","description":"Ajoutez de mani\u00e8re transparente le CI\/CD aux projets React \u00e0 l'aide de CircleCI et de la puissante API Kinsta pour un d\u00e9veloppement et un d\u00e9ploiement efficaces.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/kinsta.com\/fr\/blog\/deploiement-continu-react\/","og_locale":"fr_FR","og_type":"article","og_title":"D\u00e9ploiement continu d'applications React avec CircleCI et Kinsta API","og_description":"Ajoutez de mani\u00e8re transparente le CI\/CD aux projets React \u00e0 l'aide de CircleCI et de la puissante API Kinsta pour un d\u00e9veloppement et un d\u00e9ploiement efficaces.","og_url":"https:\/\/kinsta.com\/fr\/blog\/deploiement-continu-react\/","og_site_name":"Kinsta\u00ae","article_publisher":"https:\/\/www.facebook.com\/kinstafrance\/","article_published_time":"2023-08-21T11:59:46+00:00","article_modified_time":"2023-08-22T05:12:35+00:00","og_image":[{"width":1460,"height":730,"url":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/08\/continuous-deployment-of-react-applications-with-circleci-and-kinsta-api.jpg","type":"image\/jpeg"}],"author":"Joel Olawanle","twitter_card":"summary_large_image","twitter_description":"Ajoutez de mani\u00e8re transparente le CI\/CD aux projets React \u00e0 l'aide de CircleCI et de la puissante API Kinsta pour un d\u00e9veloppement et un d\u00e9ploiement efficaces.","twitter_image":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/08\/continuous-deployment-of-react-applications-with-circleci-and-kinsta-api.jpg","twitter_creator":"@olawanle_joel","twitter_site":"@kinsta_fr","twitter_misc":{"\u00c9crit par":"Joel Olawanle","Dur\u00e9e de lecture estim\u00e9e":"12 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kinsta.com\/fr\/blog\/deploiement-continu-react\/#article","isPartOf":{"@id":"https:\/\/kinsta.com\/fr\/blog\/deploiement-continu-react\/"},"author":{"name":"Joel Olawanle","@id":"https:\/\/kinsta.com\/fr\/#\/schema\/person\/efa7de30245ca15be5ce1dcacff89c07"},"headline":"D\u00e9ploiement continu d&rsquo;applications React avec CircleCI et Kinsta API","datePublished":"2023-08-21T11:59:46+00:00","dateModified":"2023-08-22T05:12:35+00:00","mainEntityOfPage":{"@id":"https:\/\/kinsta.com\/fr\/blog\/deploiement-continu-react\/"},"wordCount":2586,"commentCount":0,"publisher":{"@id":"https:\/\/kinsta.com\/fr\/#organization"},"image":{"@id":"https:\/\/kinsta.com\/fr\/blog\/deploiement-continu-react\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/08\/continuous-deployment-of-react-applications-with-circleci-and-kinsta-api.jpg","inLanguage":"fr-FR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kinsta.com\/fr\/blog\/deploiement-continu-react\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kinsta.com\/fr\/blog\/deploiement-continu-react\/","url":"https:\/\/kinsta.com\/fr\/blog\/deploiement-continu-react\/","name":"D\u00e9ploiement continu d'applications React avec CircleCI et l'API Kinsta","isPartOf":{"@id":"https:\/\/kinsta.com\/fr\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kinsta.com\/fr\/blog\/deploiement-continu-react\/#primaryimage"},"image":{"@id":"https:\/\/kinsta.com\/fr\/blog\/deploiement-continu-react\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/08\/continuous-deployment-of-react-applications-with-circleci-and-kinsta-api.jpg","datePublished":"2023-08-21T11:59:46+00:00","dateModified":"2023-08-22T05:12:35+00:00","description":"Ajoutez de mani\u00e8re transparente le CI\/CD aux projets React \u00e0 l'aide de CircleCI et de la puissante API Kinsta pour un d\u00e9veloppement et un d\u00e9ploiement efficaces.","breadcrumb":{"@id":"https:\/\/kinsta.com\/fr\/blog\/deploiement-continu-react\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kinsta.com\/fr\/blog\/deploiement-continu-react\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/kinsta.com\/fr\/blog\/deploiement-continu-react\/#primaryimage","url":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/08\/continuous-deployment-of-react-applications-with-circleci-and-kinsta-api.jpg","contentUrl":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/08\/continuous-deployment-of-react-applications-with-circleci-and-kinsta-api.jpg","width":1460,"height":730},{"@type":"BreadcrumbList","@id":"https:\/\/kinsta.com\/fr\/blog\/deploiement-continu-react\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/kinsta.com\/fr\/"},{"@type":"ListItem","position":2,"name":"API","item":"https:\/\/kinsta.com\/fr\/sujets\/api\/"},{"@type":"ListItem","position":3,"name":"D\u00e9ploiement continu d&rsquo;applications React avec CircleCI et Kinsta API"}]},{"@type":"WebSite","@id":"https:\/\/kinsta.com\/fr\/#website","url":"https:\/\/kinsta.com\/fr\/","name":"Kinsta\u00ae","description":"Solutions d&#039;h\u00e9bergement premium, rapides et s\u00e9curis\u00e9es","publisher":{"@id":"https:\/\/kinsta.com\/fr\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kinsta.com\/fr\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Organization","@id":"https:\/\/kinsta.com\/fr\/#organization","name":"Kinsta","url":"https:\/\/kinsta.com\/fr\/","logo":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/kinsta.com\/fr\/#\/schema\/logo\/image\/","url":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/12\/kinsta-logo.jpeg","contentUrl":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/12\/kinsta-logo.jpeg","width":500,"height":500,"caption":"Kinsta"},"image":{"@id":"https:\/\/kinsta.com\/fr\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/kinstafrance\/","https:\/\/x.com\/kinsta_fr","https:\/\/www.instagram.com\/kinstahosting\/","https:\/\/www.linkedin.com\/company\/kinsta\/","https:\/\/www.pinterest.com\/kinstahosting\/","https:\/\/www.youtube.com\/c\/Kinsta"]},{"@type":"Person","@id":"https:\/\/kinsta.com\/fr\/#\/schema\/person\/efa7de30245ca15be5ce1dcacff89c07","name":"Joel Olawanle","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/kinsta.com\/fr\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/051bf577ce2c837846a1db9eef184758?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/051bf577ce2c837846a1db9eef184758?s=96&d=mm&r=g","caption":"Joel Olawanle"},"description":"Joel is a Frontend developer working at Kinsta as a Technical Editor. He is a passionate teacher with love for open source and has written over 300 technical articles majorly around JavaScript and it's frameworks.","sameAs":["https:\/\/joelolawanle.com\/","https:\/\/www.linkedin.com\/in\/olawanlejoel\/","https:\/\/x.com\/olawanle_joel","https:\/\/www.youtube.com\/@joelolawanle"],"gender":"male","knowsAbout":["JavaScript","React","Next.js"],"knowsLanguage":["English"],"jobTitle":"Technical Editor","worksFor":"Kinsta","url":"https:\/\/kinsta.com\/fr\/blog\/author\/joelolawanle\/"}]}},"acf":[],"_links":{"self":[{"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/posts\/72112","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/users\/287"}],"replies":[{"embeddable":true,"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/comments?post=72112"}],"version-history":[{"count":6,"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/posts\/72112\/revisions"}],"predecessor-version":[{"id":72138,"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/posts\/72112\/revisions\/72138"}],"alternate":[{"embeddable":true,"hreflang":"en","title":"English","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/72112\/translations\/en"},{"embeddable":true,"hreflang":"it","title":"Italian","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/72112\/translations\/it"},{"embeddable":true,"hreflang":"pt","title":"Portuguese","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/72112\/translations\/pt"},{"embeddable":true,"hreflang":"fr","title":"French","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/72112\/translations\/fr"},{"embeddable":true,"hreflang":"de","title":"German","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/72112\/translations\/de"},{"embeddable":true,"hreflang":"ja","title":"Japanese","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/72112\/translations\/jp"},{"embeddable":true,"hreflang":"nl","title":"Dutch","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/72112\/translations\/nl"},{"embeddable":true,"hreflang":"es","title":"Spanish","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/72112\/translations\/es"},{"href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/72112\/tree"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/media\/72113"}],"wp:attachment":[{"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/media?parent=72112"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/tags?post=72112"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/topic?post=72112"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}