Leny Bernard, 10/04/2017

Aller plus loin avec Capistrano - Créer un plugin

3 minutes de lecture

Introduction et pré-requis


Pour bon nombre de projets, nous utilisons Capistrano qui permet de définir des recettes de déploiement selon l'environnement choisi et qui permettent d'exécuter toutes les tâches systématiques sans avoir peur d'en oublier une.

On peut ajouter ses propres tâches et il existe la notion de plugins qui permet de capitaliser de projets en projets et de ne pas avoir à copier/coller bêtement ses tâches. Un bon nombre de plugin est déjà développé et permet de prévenir sur Slack (ou un autre système de messagerie), gérer les droits, gérer composer, gérer symfony...

Pour comprendre la suite, il vous faut un projet avec capistrano installé et configuré.


Installer un plugin (gem)


Un plugin capistrano est un gem ruby que l'on a construit (build) et qu'on a envoyé (push) sur la plateforme https://rubygems.org/. Pour installer un plugin, il faut l'ajouter dans le fichier Gemfile afin de l'installer et dans le fichier Capfile afin de l'activer.

Il n'existe pas à ma connaissance de liste de plugins mais vous pourrez les trouver assez facilement en cherchant sur google ou github avec les topics suivants:

Admettons que vous ayez un projet victoire, vous voudrez probablement installer le plugin capistrano-victoire:

. Ajoutez la ligne suivant dans le fichier Gemfile

gem 'capistrano-victoire'
  1. Lancez l'installation

    bundle install
    

    il est possible aussi de lancer bundle update ce qui mettra à jour le fichier gem.lock avec les dernières versions

  2. Activez le plugin dans le Capfile

    require 'capistrano/victoire'
    

Petite liste de plugins qu'on aime particulièrement dans nos projets


  • capistrano/scm/git
  • capistrano/symfony
  • capistrano/composer
  • capistrano/file-permissions
  • capistrano/bower
  • capistrano/yarn
  • capistrano/victoire
  • slackistrano/capistrano

Créez le votre


Il est très simple de créer un plugin (gem) et cela permet de nettoyer de fichier deploy.rb de toutes les tâches qui sont faites de projet en projet.

On peut prendre, une nouvelle fois, en exemple le dépôt capistrano-victoire développé par nos soins.


Code, build and push


Une fois le code prêt, vous allez pouvoir construire le gem.

D'abord, il faut modifier le fichier capistrano-NAME.gemspec et définir la version à pusher, prenons 1.0.0.

Il faut ensuite build: gem build capistrano-NAME.gemspec

Puis pousser le gem sur rubygems:

gem push capistrano-NAME-1.0.0.gem

Votre gem est alors disponible comme n'importe quel autre gem sur la plateforme https://rubygems.org à l'adresse https://rubygems.org/gems/capistrano-NAME (par exemple, pour capistrano-victoire: https://rubygems.org/gems/capistrano-victoire)

comments powered by Disqus

Nos derniers articles