2009-05-27 16 views
36

पर तैनात करने के साथ मैं एक विशिष्ट प्रतिबद्धता SHA को कैसे लक्षित करूं, मैं सोच रहा हूं कि कैपिस्ट्रानो का उपयोग करके, मैं गिट में एक विशिष्ट प्रतिबद्धता SHA को कैसे तैनात कर सकता हूं? यहकैपिस्ट्रानो को

cap deploy --version=<sha targeted> 

कुछ खोज के बाद इसका उत्तर नहीं मिल रहा है।

उत्तर

63

Capistrano 2.9 के लिए 3.0 तक:

cap -S revision=80655da8d80aaaf92ce5357e7828dc09adb00993 deploy 

Capistrano के पुराने संस्करणों के लिए, यदि आप ऐसा करने से पेड़/शाखा/टैग तैनात कर सकते हैं एक विशेष Git प्रतिबद्ध /:

cap -s branch=80655da8d80aaaf92ce5357e7828dc09adb00993 deploy 

कुछ मामलों में पर्यावरण को तर्क के रूप में निर्दिष्ट करने की आवश्यकता हो सकती है। production सिर्फ एक उदाहरण है।

cap production -S revision=80655da8d80aaaf92ce5357e7828dc09adb00993 deploy 
+0

क्या एक विशिष्ट प्रतिबद्धता के लिए एसएचए है? –

+1

शाखा "गिट चेकआउट " के साथ गिट में पारित की जाएगी, इसलिए एक प्रतिबद्ध आईडी को पेड़ आईडी, शाखा का नाम इत्यादि के रूप में ठीक काम करना चाहिए। – molf

+0

यह उत्तर मेरे लिए काम नहीं करता है, @ एहसानसन का जवाब देखें नीचे। –

17

भेड़िया का जवाब मेरे लिए काम नहीं करता (कैपिस्ट्रानो 2.11.2 का उपयोग करके)।

cap -S revision=80655da8d80aaaf92ce5357e7828dc09adb00993 deploy 
+0

2.14.2 –

+3

में 100% ठीक काम करना ठीक है, 2.11.2 2.9 से ऊपर है, और आप ऊपर 2.9 के लिए उल्लिखित वाक्यविन्यास का उपयोग करते हैं। क्या मैं कुछ भूल रहा हूँ ? –

8

Capistrano 3

अपने deploy.rb या चरण-विशिष्ट फ़ाइल में config/deploy/production.rb

set :branch, ENV.fetch('REVISION', 'master') 

तरह यह करने के लिए आप की अनुमति देता है: मैं इस तरह शाखा के बजाय "संशोधन" का उपयोग करना पड़ा, एक विशिष्ट गिट संशोधन के लिए इंगित करें। यह एक एसएचए स्वीकार करता है लेकिन कुछ भी जो वास्तविक संशोधन (जैसे गिट टैग, एनोटेटेड टैग, या शाखा) को हल करता है।

REVISION पर्यावरण चर सेट करके कमांड लाइन पर इसका उपयोग करें, उदा।

bundle exec cap production deploy REVISION=80655da8d80aaaf92ce5357e7828dc09adb00993 

bundle exec cap staging deploy REVISION=my-topic-branch 
+0

शाखा को कमांड लाइन तर्क के रूप में पास करने का कोई तरीका है? – marcovtwout

+0

मुझे ऐसा करने का कोई तरीका नहीं पता। –

+0

@marcovtwout हाँ हां संभव है, अद्यतन अद्यतन देखें। – Dennis

0

से पूछते हैं: शाखा, 'गुरु'

इनपुट के लिए

संकेत देता है लेकिन चूक 'गुरु' के लिए अगर आप वापसी दबाएँ।

संबंधित मुद्दे