Comment une validation spécifique puis-je cibler avec SHA Capistrano Déployez
-
06-09-2019 - |
Question
Je me demande comment je peux cibler un engagement spécifique SCS dans Git pour le déploiement, l'utilisation Capistrano? Il devrait être quelque chose comme
cap deploy --version=<sha targeted>
Ne peut pas sembler trouver la réponse à cette après beaucoup de recherche.
La solution
Pour Capistrano 2.9 jusqu'à 3.0:
cap -S revision=80655da8d80aaaf92ce5357e7828dc09adb00993 deploy
Pour les anciennes versions de Capistrano , vous pouvez déployer un git particulier COMMIT / arbre / branche / tag en faisant ceci:
cap -s branch=80655da8d80aaaf92ce5357e7828dc09adb00993 deploy
Dans certains cas, il peut être nécessaire de spécifier l'environnement comme un argument aussi. production
est juste un exemple.
cap production -S revision=80655da8d80aaaf92ce5357e7828dc09adb00993 deploy
Autres conseils
La réponse de Molf ne fonctionne pas pour moi (en utilisant Capistrano 2.11.2). Je devais utiliser la « révision » au lieu de la branche, comme ceci:
cap -S revision=80655da8d80aaaf92ce5357e7828dc09adb00993 deploy
Capistrano 3
Dans votre deploy.rb
ou d'un fichier spécifique étape comme config/deploy/production.rb
set :branch, ENV.fetch('REVISION', 'master')
Cela vous permet de pointer à une révision git spécifique. Il accepte un SHA, mais aussi tout ce qui résout à une véritable révision (par exemple étiquette git, étiquette annotée ou branche).
Il permet sur la ligne de commande en définissant la variable d'environnement REVISION
, par exemple.
bundle exec cap production deploy REVISION=80655da8d80aaaf92ce5357e7828dc09adb00993
bundle exec cap staging deploy REVISION=my-topic-branch
demander: branche, 'maître'
Invites pour l'entrée, mais par défaut « maître » si vous appuyez sur retour.