Un push-to-deploy simple et gratuit pour votre frontend

Dans cet article, nous verrons ce qui a été mis en place pour le site http://www.bdx.io (une conférence pour les développeurs qui se tiendra sur Bordeaux en octobre ;-)) afin d’automatiser le déploiement d’un site statique, hébergé chez github, optimisé pour le web (pré-processing css, minification et concaténation, optimisation des images etc…) et ce, via un  simple commit Git.

Le principe de fonctionnement s’apparente un peu au fonctionnement d’heroku, à ceci près :

  • Qu’il est déclenché automatiquement lors de l’apparition de nouveaux commits sur une branche de votre choix
  • Qu’un processus d’optimisation des ressources statiques est appliqué en amont du déploiement

A travers cet article nous parlerons :

  • De Github pages pour l’hébergement des ressources statiques du site
  • De Yeoman qui nous servira à générer une ossature « clef en main » pour un site web optimisé
  • D’un petit script sh maison permettant de pusher notre site web optimisé sur une branche de notre repository git
  • D’un build Jenkins déclenché chez Cloudbees qui exécute un script Grunt pour optimiser votre site Web
  • De hooks Git pour déclencher automatiquement ce job Jenkins, sans avoir à poller votre repository Git

Lire le reste de cette entrée »

Critique de Livre : Apache Maven de A. Heritier et N. De Loof

Durant mes vacances d’été en Crête, j’ai eu l’occasion de me dorer la pilule en lisant le livre Apache Maven chez Pearson, écrit par Arnaud Heritier et Nicolas De Loof.
Suivant ces deux zigotos sur twitter depuis début 2010,  et ayant déjà pu lire de bons echos dans la blogosphère java sur le livre,  cela m’a donné envie de le lire.

En terme d’expérience maven, je l’utilise tous les jours depuis maintenant 2 ans et demi en mode « utilisation avancée » (archetypes, poms parent, plugins maison, assurance qualité, industrialisation, intégration continue …) ; j’ai également eu l’occasion, à 4 reprises, de dispenser une formation Maven pour différents clients extérieurs : j’étais donc loin d’être débutant en commençant la lecture du livre et attendais beaucoup de ce dernier : qu’il soit à la fois didactique pour que je puisse le faire lire à des développeurs débutants (de mon équipe) sur le sujet, mais aussi qu’il m’apprenne des choses !

D’autre part, j’avoue avoir peu d’expérience dans la lecture de livres techniques puisque c’est le second livre technique que j’achète (et lit) avec le fameux Design Pattern du Gang of Four. A fortiori, il s’agit là de ma première critique de livre,  j’espère donc ne pas trop faillir dans cet exercice.

Lire le reste de cette entrée »

Plugins Hudson – Episode 3 : Des formulaires et des données

Suite de ma série de billets consacrés au développement de plugins Hudson. Dans cet épisode qui se situe dans le prolongement de l’implémentation de son premier plugin, je vais principalement traiter de  la gestion des données, depuis leur saisie par un utilisateur à leur persistance. Nous verrons également comment tirer partie du framework javascript en place dans Hudson.

Lire le reste de cette entrée »

Plugins Hudson – Episode 2 : Implémenter son premier plugin

Suite de ma série de billets consacrés au développement de plugin Hudson : aujourd’hui, nous allons parler développement et mettre davantage les mains dans le cambouis que dans l’épisode 1.

Nous allons voir notamment comment implémenter des points d’extension ainsi qu’une vue et un traitement coté serveur en utilisant les technologies Jelly et Stapler
Lire le reste de cette entrée »

Publié dans Hudson, Maven. 4 Comments »

Plugins Hudson – Episode 1 : La création du plugin

Aujourd’hui, nous allons traiter du développement de plugins pour Hudson.

Cela fait maintenant un peu plus d’un mois que je travaille sur un plugin hudson permettant de générer des statistiques globales sur l’état d’exécution des jobs hudson : le global-build-stats hudson plugin. Ce plugin est particulièrement utile pour du monitoring Hudson et permet de détecter des problèmes sur différents axes : temps, typologie de build, typologie de résultat du build.

A l’occasion de la première release stable du plugin (la 0.1), j’ai décidé de partager sur ce blog l’ensemble des facilités et problèmes que j’ai pu rencontrer durant les développements de ce plugin. Ces retours seront formalisés par un ensemble de billets (à priori trois ou quatre) s’organisant autours des problématiques suivantes :

  • Mise en place d’un nouveau plugin
  • Comment et où poser des points d’extension
  • Présentation du framework MVC d’Hudson : Stapler
  • Persister ses données
  • Coté présentation : le scripting Jelly et les comportements javascript d’Hudson
  • La première release : le déploiement et les outils de communication autours du plugin
  • La mise en place de la sécurité

Lire le reste de cette entrée »

Publié dans Hudson, Maven. 2 Comments »