{"id":79074,"date":"2020-09-28T13:36:57","date_gmt":"2020-09-28T13:36:57","guid":{"rendered":"https:\/\/blog.jetbrains.com\/?post_type=space&#038;p=79074"},"modified":"2020-09-28T13:36:57","modified_gmt":"2020-09-28T13:36:57","slug":"space-automation-est-disponible-pour-tous","status":"publish","type":"space","link":"https:\/\/blog.jetbrains.com\/fr\/space\/2020\/09\/28\/space-automation-est-disponible-pour-tous\/","title":{"rendered":"Space Automation est disponible pour tous"},"content":{"rendered":"<p><a href=\"https:\/\/blog.jetbrains.com\/space\/2020\/09\/17\/space-automation-is-available-for-everyone\/\"><img decoding=\"async\" loading=\"lazy\" class=\"alignnone wp-image-75715 size-full\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2020\/09\/1200x628_facebook_automate-ci-cd.png\" alt=\"Space Automation\" width=\"1200\" height=\"628\"><\/a><\/p>\n<p>Space Automation, l&#8217;une des fonctionnalit\u00e9s les plus attendues et pl\u00e9biscit\u00e9es dans le cadre du Programme d&#8217;Acc\u00e8s Anticip\u00e9 \u00e0 Space, est maintenant disponible pour tous les utilisateurs Beta. <br \/>\nAutomation vous permet d&#8217;ex\u00e9cuter les activit\u00e9s d&#8217;int\u00e9gration et de livraison continues dans Space afin de construire, tester et d\u00e9ployer votre projet.<\/p>\n<p>Space est accessible en version b\u00eata gratuitement. Tous ses utilisateurs b\u00e9n\u00e9ficient du forfait Organization, qui offre 10 000 cr\u00e9dits d&#8217;int\u00e9gration continue par mois. Si vous n&#8217;avez pas encore rejoint le programme b\u00eata, <a href=\"https:\/\/jb.gg\/68gjo8\" target=\"_blank\" rel=\"noopener\">inscrivez-vous gratuitement \u00e0 Space<\/a> pour commencez \u00e0 l&#8217;utiliser d\u00e8s aujourd&#8217;hui.<\/p>\n<p>Nous avons pr\u00e9par\u00e9 une pr\u00e9sentation du syst\u00e8me pour vous aider \u00e0 vous lancer dans l&#8217;automatisation d&#8217;un large \u00e9ventail de t\u00e2ches et dans l&#8217;organisation de vos pipelines de livraison continue.<\/p>\n<p>Sans plus tarder, parlons d\u2019Automation\u00a0!<\/p>\n<h2>Qu&#8217;est-ce que Space Automation ?<\/h2>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-74504\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2020\/09\/what_is_space_automation.png\" alt=\"JetBrains Space Automation\" width=\"697\" height=\"380\"><\/p>\n<p>Automation est le module de Space responsable de toutes les activit\u00e9s d&#8217;int\u00e9gration et de livraison continues dans le syst\u00e8me. Vous pouvez construire, tester et d\u00e9ployer un projet avec le fichier de script stock\u00e9 dans son r\u00e9f\u00e9rentiel.<\/p>\n<h2>Configuration en tant que code<\/h2>\n<p>Les scripts sont le seul moyen de configurer Automation. L&#8217;interface utilisateur d&#8217;Automation que vous voyez dans Space est utilis\u00e9e uniquement pour visualiser les r\u00e9sultats des scripts : journaux, tests, artefacts, etc. Ils sont \u00e9crits dans un DSL (langage sp\u00e9cifique au domaine) sp\u00e9cial bas\u00e9 sur Kotlin.<\/p>\n<h2>Script d&#8217;automatisation<\/h2>\n<p>Le script d&#8217;automatisation doit \u00eatre stock\u00e9 dans le fichier .space.kts dans le r\u00e9pertoire racine d&#8217;un projet. Pour modifier .space.kts, vous pouvez utiliser l&#8217;\u00e9diteur de code Web de Space ou IntelliJ IDEA si le plugin Space est install\u00e9.<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-74720\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2020\/09\/Automation-script-.png\" alt=\"Script d'automatisation\" width=\"1999\" height=\"791\"><\/p>\n<h2>DSL bas\u00e9 sur Kotlin<\/h2>\n<p>Le DSL Space Automation est bas\u00e9 sur Kotlin (YAML est pr\u00e9vu), ce qui pr\u00e9sente de nombreux avantages \u2013vous pouvez utiliser des types de donn\u00e9es et structures de langage Kotlin directement dans votre script d&#8217;automatisation.<\/p>\n<h2>Isolement dans une branche<\/h2>\n<p>La configuration d&#8217;Automation se faisant via le fichier de script, elle est enti\u00e8rement isol\u00e9e au sein d&#8217;une branche Git. Cela rend l&#8217;exp\u00e9rimentation des scripts d&#8217;Automation tr\u00e8s simple : il suffit de cr\u00e9er une nouvelle branche, d&#8217;ajouter le fichier .space.kts et vous pouvez commencer.<\/p>\n<h2>Conteneurs<\/h2>\n<p>Toutes les activit\u00e9s d&#8217;Automation s&#8217;ex\u00e9cutent dans des conteneurs Docker bas\u00e9s sur Linux. Les blocs constitutifs des scripts d&#8217;Automation sont les jobs. Un job permet d&#8217;ex\u00e9cuter des \u00e9tapes ind\u00e9pendantes dans des conteneurs. Dans notre exemple, le job ne comporte qu&#8217;une seule \u00e9tape\u00a0: un conteneur Ubuntu qui ex\u00e9cute un script shell.<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-74700\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2020\/09\/Containers.png\" alt=\"Conteneurs\" width=\"1568\" height=\"574\"><\/p>\n<p>Les r\u00e9sultats de l&#8217;ex\u00e9cution du job et les journaux du conteneur sont affich\u00e9s sur la page <strong>Jobs<\/strong> du projet\u00a0:<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-74710\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2020\/09\/Automation-Containers-1.png\" alt=\"\" width=\"1631\" height=\"1104\"><\/p>\n<h2>\u00c9tapes s\u00e9quentielles et parall\u00e8les<\/h2>\n<p>Vous pouvez ex\u00e9cuter des \u00e9tapes \u00e0 l&#8217;int\u00e9rieur de conteneurs de fa\u00e7on s\u00e9quentielle ou en parall\u00e8le. Cela vous permet d&#8217;ex\u00e9cuter un graphique de conteneurs.<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-74690\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2020\/09\/Automation-Sequential-and-parallel-steps.png\" alt=\"\u00c9tapes s\u00e9quentielles et parall\u00e8les d'Automation\" width=\"1562\" height=\"1182\"><\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-74668\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2020\/09\/Sequential-and-parallel-steps.png\" alt=\"\u00c9tapes s\u00e9quentielles et parall\u00e8les\" width=\"1523\" height=\"643\"><\/p>\n<h2>Ex\u00e9cution du code Kotlin<\/h2>\n<p>Le DSL bas\u00e9 sur Kotlin vous permet d&#8217;impl\u00e9menter une logique complexe dans vos scripts de build. Pour cela, vous pouvez utiliser un \u00e9l\u00e9ment kotlinScript sp\u00e9cial dans un conteneur.<br \/><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-74678\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2020\/09\/Running-Kotlin-code.png\" alt=\"Ex\u00e9cution du code Kotlin\" width=\"1560\" height=\"616\"><\/p>\n<h2>Int\u00e9gration avec les autres modules de Space<\/h2>\n<p>.space.kts a acc\u00e8s au client API HTTP Space bas\u00e9 sur Kotlin. Tous les modules de Space ayant des API, vous pouvez communiquer avec l&#8217;ensemble de Space\u00a0:<\/p>\n<ul>\n<li>api.space().packages<\/li>\n<li>api.space().projects<\/li>\n<li>api.space().todo<\/li>\n<li>api.space().blogs<\/li>\n<li>et ainsi de suite.<\/li>\n<\/ul>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-74656\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2020\/09\/Space-modules-Integration.png\" alt=\"Int\u00e9gration des modules de Space\" width=\"1560\" height=\"508\"><\/p>\n<h2>Int\u00e9gration avec Gradle, Docker et d&#8217;autres outils<\/h2>\n<p>Nous fournissons des types d&#8217;\u00e9tapes suppl\u00e9mentaires ainsi que des API pour vous permettre de travailler avec des outils externes. Vous pouvez par exemple utiliser les \u00e9tapes gradle ou gradlew pour simplifier les builds Gradle\u00a0:<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-74626\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2020\/09\/Automation-Integration-with-Gradle.png\" alt=\"Int\u00e9gration d'Automation avec Gradle\" width=\"1560\" height=\"188\"><\/p>\n<p>Les r\u00e9sultats des tests s&#8217;affichent sur la page de vue d&#8217;ensemble du job\u00a0:<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-74646\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2020\/09\/Automation-Integration.png\" alt=\"Int\u00e9gration d'Automation\" width=\"1999\" height=\"1380\"><\/p>\n<p>Vous pouvez utiliser l&#8217;\u00e9tape Docker pour cr\u00e9er et pousser des images Docker\u00a0:<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-74636\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2020\/09\/Automation-Integration-with-Docker.png\" alt=\"Int\u00e9gration d'Automation avec Docker\" width=\"1564\" height=\"592\"><\/p>\n<p>Nous pr\u00e9voyons d&#8217;ajouter la prise en charge de .NET, npm, MVN et d&#8217;autres outils plus tard.<\/p>\n<h2>Utilisation de biblioth\u00e8ques externes<\/h2>\n<p>Un autre avantage de l&#8217;utilisation de Kotlin pour vos scripts Automation\u00a0: est la possibilit\u00e9 de r\u00e9f\u00e9rencer des biblioth\u00e8ques externes.<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-74616\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2020\/09\/Automation-Using-external-libraries.png\" alt=\"Automatisation avec des biblioth\u00e8ques externes\" width=\"1562\" height=\"786\"><\/p>\n<h2>Plugin IntelliJ IDEA<\/h2>\n<p>Le recours au plugin Space pour IntelliJ IDEA facilite l&#8217;\u00e9criture de scripts complexes utilisant les API de Space. En plus de v\u00e9rifier vos scripts Automation, le plugin Space fournit la saisie semi-automatique du code.<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-74606\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2020\/09\/Automation-IntelliJ-IDEA-plugin.png\" alt=\"Plugin IntelliJ IDEA pour Automation\" width=\"1912\" height=\"904\"><\/p>\n<h2>Int\u00e9gration avec Space Packages<\/h2>\n<p><strong>Space Packages<\/strong> est le gestionnaire de r\u00e9f\u00e9rentiels universel int\u00e9gr\u00e9 \u00e0 Space. Il prend en charge plusieurs types de r\u00e9f\u00e9rentiels : registres de conteneurs, r\u00e9f\u00e9rentiels Maven, flux NuGet et registres npm. Automation fournit une int\u00e9gration directe avec les Packages\u00a0:<\/p>\n<ul>\n<li>Vos scripts Automation ne n\u00e9cessitent pas d&#8217;authentification.<\/li>\n<li>Une version de package peut \u00eatre automatiquement modifi\u00e9e en fonction du num\u00e9ro d&#8217;ex\u00e9cution du job.<\/li>\n<\/ul>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-74596\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2020\/09\/Space-Packages-Integration.png\" alt=\"Int\u00e9gration des Packages de Space\" width=\"1999\" height=\"1023\"><\/p>\n<h2>Conteneurs de services<\/h2>\n<p>\u00c0 l&#8217;int\u00e9rieur des conteneurs, vous pouvez ex\u00e9cuter des conteneurs de services suppl\u00e9mentaires qui fournissent des services accessibles au r\u00e9seau, tels que MySQL, Redis, Elastic, etc.<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-74586\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2020\/09\/Automation-containers.png\" alt=\"Conteneurs d'Automation\" width=\"1556\" height=\"668\"><\/p>\n<p>Comme pour tout autre conteneur, vous pouvez afficher les journaux du conteneur de services\u00a0:<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-74576\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2020\/09\/Automation-containers.png\" alt=\"Conteneurs de services d'Automation\" width=\"1827\" height=\"863\"><\/p>\n<h2>Partage de fichiers<\/h2>\n<p>Vous pouvez utiliser un disque partag\u00e9 pour transmettre des artefacts de build entre les \u00e9tapes. Un partage de fichiers consiste en un volume sp\u00e9cial disponible pour chaque conteneur auquel vous pouvez acc\u00e9der directement ou \u00e0 l&#8217;aide d&#8217;une API.<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-74565\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2020\/09\/automation-file-sharing.png\" alt=\"partage de fichiers automation\" width=\"1556\" height=\"684\"><\/p>\n<h2>Secrets et param\u00e8tres<\/h2>\n<p>Une partie importante de tout syst\u00e8me CI\/CD est la capacit\u00e9 de stocker en toute s\u00e9curit\u00e9 les informations d&#8217;identification \u00e0 diverses ressources externes, comme un r\u00e9f\u00e9rentiel de packages externe par exemple. Automation fournit son propre stockage pour les secrets et les param\u00e8tres\u00a0\u00e0 cette fin :<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-74545\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2020\/09\/automation-parameter.png\" alt=\"param\u00e8tre d'Automation\" width=\"1817\" height=\"1046\"><\/p>\n<p>Les secrets et les param\u00e8tres sont facilement accessibles \u00e0 partir de .space.kts en utilisant des valeurs cl\u00e9s.<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-75728\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2020\/09\/Automation-secrets-and-parame.png\" alt=\"Secrets et param\u00e8tres d'Automation\" width=\"1560\" height=\"684\"><\/p>\n<h2>Utilisation de cr\u00e9dits<\/h2>\n<p>Chaque <a href=\"https:\/\/www.jetbrains.com\/fr-fr\/space\/buy\/#cloud\" target=\"_blank\" rel=\"noopener\">forfait d&#8217;abonnement \u00e0 JetBrains Space<\/a> comprend un certain nombre de cr\u00e9dits CI, une monnaie artificielle que vous d\u00e9pensez lorsque vous ex\u00e9cutez vos builds Automation. Un cr\u00e9dit CI \u00e9quivaut \u00e0 une minute de travail d&#8217;un conteneur Linux par d\u00e9faut (2 vCPU, 7\u00a0800 Mio de RAM). Chaque mois, vos cr\u00e9dits CI sont restaur\u00e9s. Chaque forfait d&#8217;abonnement offre \u00e9galement un certain nombre de cr\u00e9dits de R\u00e9serve \u2013 votre stock de cr\u00e9dits CI de s\u00e9curit\u00e9. Une fois que vous avez d\u00e9pens\u00e9 tous vos cr\u00e9dits CI mensuels, Automation d\u00e9sactive les d\u00e9clencheurs automatiques de jobs dans tous les r\u00e9f\u00e9rentiels (par exemple, un d\u00e9clencheur activ\u00e9 par \u2018push git\u2019). Lorsque les d\u00e9clencheurs automatiques de jobs sont d\u00e9sactiv\u00e9s, vous ne pouvez plus d\u00e9clencher un job que manuellement en l&#8217;ex\u00e9cutant sur la page <strong>Jobs<\/strong>. Les cr\u00e9dits de r\u00e9serve seront utilis\u00e9s pour payer l&#8217;ex\u00e9cution de ces jobs.<\/p>\n<p><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-74555\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2020\/09\/space-automation-billing.png\" alt=\"cr\u00e9dits space automation\" width=\"1752\" height=\"800\"><\/p>\n<p>C&#8217;est tout pour aujourd&#8217;hui. Nous esp\u00e9rons que cet article vous a donn\u00e9 un bon aper\u00e7u du concept d&#8217;Automation dans Space. N&#8217;h\u00e9sitez pas \u00e0 nous poser toutes vos questions ou \u00e0 partager vos r\u00e9flexions dans les commentaires.<\/p>\n<p><a href=\"https:\/\/jb.gg\/nyxqlz\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-full wp-image-74525\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2020\/09\/Space-Automation-CICD-Webinar.png\" alt=\"Webinaire Space Automation CI CD\" width=\"1200\" height=\"676\"><\/a><\/p>\n<p><a href=\"S\">Rejoignez-nous pour un webinaire gratuit<\/a>, Introduction to Automation: CI\/CD in Space, le 6 octobre 2020 \u00e0 16h00 CEST. Au cours de cette session, Maarten Balliauw, Developer Advocate chez JetBrains, effectuera une d\u00e9mo en direct des fonctionnalit\u00e9s d&#8217;Automation, et Evgeniy Koshkin, Reponsable de l&#8217;\u00e9quipe Automation, animera la session de questions-r\u00e9ponses.<\/p>\n<p>Nous parlerons du DSL d&#8217;Automation, de l&#8217;ex\u00e9cution de builds, de la publication dans le registre des packages Space, des secrets et les param\u00e8tres, et bien d&#8217;autres choses ! Et pour finir en beaut\u00e9, nous pr\u00e9voyons une session de questions-r\u00e9ponses plus longue. R\u00e9servez votre place d\u00e8s maintenant\u00a0!<\/p>\n<p><em>L&#8217;\u00c9quipe JetBrains<br \/>\n\u2014 The Drive To Develop<\/em><\/p>\n<p><em>Auteur de l&#8217;article original en anglais : <a href=\"https:\/\/blog.jetbrains.com\/author\/alexandra-charikova-jetbrains-com\/\" target=\"_blank\" rel=\"noopener noreferrer\">Alexandra Charikova<\/a><\/em><\/p>\n","protected":false},"author":813,"featured_media":79075,"comment_status":"closed","ping_status":"closed","template":"","categories":[808,4331],"tags":[571],"cross-post-tag":[],"acf":[],"_links":{"self":[{"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/space\/79074"}],"collection":[{"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/space"}],"about":[{"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/types\/space"}],"author":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/users\/813"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/comments?post=79074"}],"version-history":[{"count":3,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/space\/79074\/revisions"}],"predecessor-version":[{"id":79741,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/space\/79074\/revisions\/79741"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/media\/79075"}],"wp:attachment":[{"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/media?parent=79074"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/categories?post=79074"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/tags?post=79074"},{"taxonomy":"cross-post-tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/fr\/wp-json\/wp\/v2\/cross-post-tag?post=79074"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}