Environnement Rails la condition sine qua non pour cruisecontrol.rb
-
11-09-2019 - |
Question
Je n'ai pas l'environnement de rails, mais je veux utiliser cruisecontrol.rb comme mon environnement d'intégration Continuous.
Après avoir suivi le instrcution de http://cruisecontrolrb.thoughtworks.com/documentation/getting_started puis
./cruise start
Je suis l'erreur ici: (désolé, mais le formatter est mieux que l'affichage ici directement) http://pastebin.ca/1487868
Il semble que le CC.rb fait une migration de données / travail de sauvegarde lors du démarrage, et je pouvais résoudre ce problème en commentaire sur le code correspondant:
#cruisecontrolrb / db / migrate / 002_move_custom_files_to_directory_in_user_home.rb
DATA_ROOT = ARGV[0]
RAILS_ROOT = File.expand_path(".")
if File.directory? 'projects'
#mv 'projects', DATA_ROOT + '/projects' #comment out this line, it will work perfect fine
else
mkdir_p DATA_ROOT + '/projects'
end
Je débogués un peu de litière et trouvé lorsque le code ci-dessus d'exécution, le DATA_ROOT et Dir.pwd sont ~ / .cruise. Donc,
mv 'projects', DATA_ROOT + '/projects' would become
mv ~/.cruise/projects ~/.cruise/projects which is obvious not correct
Que recommanderiez-vous pour résoudre ce problème? Pour redfine DATA_ROOT à ce même endroit que je veux?
La solution
Il y a plusieurs façons de contourner cela, le plus simple est probablement de créer un fichier cruise_config.rb dans la racine de votre projet. Il devrait ressembler à ceci:
Project.configure do |project|
project.rake_task = "spec"
end
il suffit de remplacer « spec » avec toutes les tâches rake que vous avez. si vous ne l'utilisez rake (que vous utilisiez des fourmis), vous pouvez le faire à la place quelque chose comme ceci:
Project.configure do |project|
project.build_command = "ant test"
end
il suffit de remplacer « test fourmi » avec la commande de ligne de commande qui retourne 0 en cas de succès et 1 autrement. (Fourmi, faire, râteau, tous cela)