Redmine-gems

English version here
COPYright

Plugins de contruction automatique de Rubygems

Pré-requis

Ce plugins requiert :

  • Ruby 1.8.6 ou supérieur
  • Rails 2.2.2 ou supérieur
  • Redmine trunk from r2493 to r2886 ou supérieur

Remarque : ce plugin ne fonctionne que si vous avez une repository Subversion sur le projet ou elle est ajouté

Installation

Via SVN

  # cd $APP_ROOT
  # cd vendors/plugins
  # svn export https://svn.ultragreen.net/public/redmine-gems/tags/<lastest_tags> redmine-gems
  # rake db:migrate_plugins RAILS_ENV=production

Download depuis Ultragreen.net

http://www.ultragreen.net/projects/redmine-gems/files

récupérer le tar.gz de le répertoire APP_ROOT et :

  # cd $APP_ROOT
  # cd vendors/plugins
  # wget <URL_FICHIER_TAR_GZ>
  # tar xvzf redmine_gem_X_X_X.tgz
  # rm redmine_gem_X_X_X.tgz
  # rake db:migrate_plugins RAILS_ENV=production

Relancer votre serveur Rails et Redmine.

Configuration

Le gems se configure via le menu :
Administration>Plugins

Lien Configurer du plugin Redmine Gems

il faut renseigner deux paths :

  • Le path d'exportation SVN
  • Le path vers le répertoire du serveur de gems (gem server) (optionnel)

Ensuite on positionne :

  • la check box pour accepter l'envoi d'une annonce automatique
  • la check box pour accepter le déploiement local
  • la check box pour accepter le déploiement local dans la gemdir
  • la check box pour accepter le déploiement sur GemCutter

Remarque : le déploiement sur GemCutter implique
que les gems à déployer n'est jamais été déployer sur Gemcutter ET QUE l'échange de clef pour l'utilisateur Redmine est déja été fait avec GemCutter OU que le gem est en owner l'adresse mail associée à l'utilisateur Redmine

Le plugin contient des permissions spécifique configurable dans le menu :
Administration>Rôles et permissions

Pour les différents Profils existants :

  • permission pour Voir les rubygems,
  • permission pour Construire les rubygems
  • permission pour Déployer en local
  • permission pour Déployer dans la gemdir
  • permission pour Déployer sure GemCutter
  • permission pour modifier la configuration locale Projet du module Rubygems

Le plugin doit être installé comme modules dans tous les projets ou on veut l'utiliser.

Utilisation = Procédure

Une fois le plugins installé comme modules dans un projet, un onglet "Gems" apparaît dans la barre de menu du projet derrière l'onglet du module "Dépôt"
Si on clique sur cet onglet le plugin se lance et on peut voir si une repository SVN existe et si des tags (dans le répertoire tags ) existent (préalable obligatoire).
Le plugin peut aussi demander des versions "Redmine" à attacher si aucunes n'existent (préalable obligatoire).

  1. Si un/des tags SVN existe(nt), le plugin tente d'y faire correspondre (liste déroulante) une version Redmine, sinon vous devez en faire correspondre une.
  2. le plugins scan l'existance d'un fichier Rakefile de contruction de Gem (qui doit contenir les cibles générique clobber, clean et gem au minimum) ou d'un fichier de type *.gemspec, si les deux existent, il vous faudra choisir un de ses deux méthodes.
  3. le plugins vous demande aussi de saisir un commentaire (optionnel) de contruction.
  4. le plugin vous demande de modifier les options de déploiement et de génération d'annonces
  5. Cliquer sur le bouton "Contruire" pour lancer la construction du Gem

si une gems était déja construit le bouton propose de "Re-construire" le gems et fournit les informations de la dernière construction :

  • Date.
  • Auteur de la construction.
  • Version Redmine associée.

Principe de construction

  1. le plugin efface un eventuel export antérieur
  2. le plugin export le tags SVN choisit
  3. le plugin accède au répertoire du tags
  4. le plugin applique la méthode de contruction choisit
  5. le plugin déploie sur les cibles spécifiées (local,gemcutter,gemdir)
  6. le plugin attache le gem dans les modules "Fichier" de Redmine sous la version Choisit.
  7. le plugin persiste une trace de construction (Modèle Rails Rubygem) ou modifie un trace existante et y ajoute la date de modification (affichés dans les informations du gem dans la liste de cronstruction)
  8. le plugin génère une annonce si on la demandé

Le modèle Rails agit comme activité et événement, et le plugin comme provider d'activités, donc dans l'onglet "Activité",
un message apparait, si on coche la case à cocher (à droite sur le thèmes par défaut de redmine ) qui correspond aux messages d'activité de Redmine Gems.

Configuration au niveau projet :

Les valeurs par défaut au niveau de la configuration du plugin sont personnalisable au nivea configuration d'un projet :

les deux paths :

  • Le path d'exportation SVN
  • Le path vers le répertoire du serveur de gems (gem server) (optionnel)

les options :

  • la check box pour accepter l'envoi d'une annonce automatique
  • la check box pour accepter le déploiement local
  • la check box pour accepter le déploiement local dans la gemdir
  • la check box pour accepter le déploiement sur GemCutter

Priorité des configurations

Génération

A l'installation du plugin, la configuration par défaut est

  • exports_path = /tmp/exports
  • gemdir_path = /tmp/gemdir
  • annonce_enabled = 1
  • gemdir_deployment_enabled_default = 0
  • local_deployment_enabled_default = 0
  • gemcutter_deployment_enabled_default = 0

A l'installation du module dans un projet , la configuration locale est :

  • exports_path = exports_path (Configuration plugins)
  • gemdir_path = gemdir_path (Configuration plugins)
  • annonce_enabled = annonce_enabled (Configuration plugins)
  • gemdir_deployment_enabled = 0
  • local_deployment_enabled = 0
  • gemcutter_deployment_enabled = 0

Récupération

  • gemdir_path (locale au projet) surcharge gemdir_path (Config Plugin)
  • export_path (locale au projet) surcharge export_path (Config Plugin)
  • annonce_enabled (locale au projet) surcharge annonce_enabled (Config Plugin)
  • gemdir_deployment_enabled surcharge gemdir_deployment_enabled (Config Plugin)
    sauf si gemdir_deployment_enabled (Config Plugin) <> 1
  • local_deployment_enabled surcharge local_deployment_enabled (Config Plugin)
    sauf si local_deployment_enabled (Config Plugin) <> 1
  • gemcutter_deployment_enabled surcharge gemcutter_deployment_enabled (Config Plugin)
    sauf si gemcutter_deployment_enabled (Config Plugin) <> 1