2012-04-20 17 views
5

मैं फ़िंग का उपयोग करके एक निजी जिथब रेपो से कोड की तैनाती को स्वचालित करने की कोशिश कर रहा हूं लेकिन एसवीएन निर्यात की तरह काम करने वाली किसी चीज़ को खोजने का प्रयास करने में परेशानी हो रही है।फ़िंग और जिथब

मैंने गिट आर्काइव और गिट चेकआउट-इंडेक्स पर कुछ पोस्ट पढ़ी हैं लेकिन इन्हें जिथब के साथ काम करने के लिए संघर्ष किया है। मुझे लगता है कि वे ज़िप डाउनलोड का उपयोग करने के लिए उत्सुक हैं क्योंकि वे इसे कैश कर सकते हैं।

यदि मुझे ऐसा करने के लिए फ़िंग में एक साधारण कार्य था, तो मुझे जिथब से ज़िप डाउनलोड करने में कोई दिक्कत नहीं होगी, एक साधारण http कार्य यह काम नहीं करता क्योंकि यह https से अधिक है और मुझे लगता है कि कुछ प्रकार की प्रमाणीकरण की आवश्यकता है।

मैं फ़िंग में गिटक्लोन कार्य का उपयोग करने में कामयाब रहा लेकिन ".git" छुपा फ़ोल्डर भी क्लोन किया गया है जो बड़े पैमाने पर सिरदर्द पैदा कर रहा है ... मुख्य रूप से क्योंकि बाद के निर्माण पर मैं बिल्ड फ़ोल्डर को हटा नहीं सकता क्योंकि यह कुछ गिट फ़ाइलों को सुझाता है , अर्थात् * .idx या * .pack उपयोग में हैं।

क्या किसी के पास फ़िंग और निजी जिथब रेपो के साथ कोई भाग्य है?

धन्यवाद

+0

यह है चाहता था एक निजी रेपो? यदि ज़िप डीएल लिंक सार्वजनिक रूप से उपलब्ध नहीं होना चाहिए, तो इस प्रकार कोई लेख आवश्यक नहीं है? – CharlesB

+3

शायद यह आसान हो सकता है यदि आप एक रेपो सेट करते हैं जो कि जिथब से क्लोन है और उसे स्थानीय रूप से फ़िंग क्लोन (या गिट आर्काइव, गिट चेकआउट-इंडेक्स) दें? – ralphtheninja

+0

यह एक निजी रेपो है, डाउनलोड लिंक 404 लौटाता है जब लॉग इन नहीं। – Carlton

उत्तर

4

@AYK मेरे बुरा, हाल ही में की खोज की गई तैनाती विकल्प हैं और लगता है कि Capistrano के साथ रोल करेंगे ...

वैसे भी इस अपने निर्माण स्क्रिप्ट मैं लोगों की सलाह के साथ अस्थायी रूप से का उपयोग कर समाप्त हो गया था ... ": \ एप्लिकेशन सी"

  • के इस build.xml फ़ाइल में रहती है मान लेते हैं: "\ एप्लिकेशन सी '

    • के दशक में मेरे ऐप जीवन मान लेते हैं आइए मान लें कि मेरे ऐप में एक गिट रेपो भी शामिल है "सी: \ app.git"
    • किसी भी बिल्ड को & हटाएं निर्देशिका "सी: \ ऐप \ बिल्ड" और "सी: \ ऐप \ तैनाती" जो पिछले निर्माण से मौजूद हो सकती है , Git चेकआउट और अंतिम कोड पकड़ Git से कोड सुझाव चेक के रूप में Git चेकआउट excuting
    • तैनात करने के लिए और कहते हैं ":: \ एप्लिकेशन \ निर्माण सी" और "\ एप्लिकेशन \ तैनात सी"
    • निर्देशिका बनाने में "C: \ एप्लिकेशन \ निर्माण"
    • वहाँ दस्तावेज़ जैसे कुछ निर्देशिकाओं मैं बाहर जाने के लिए तो मैं फ़ाइलों की प्रतिलिपि मैं को तैनात करना चाहते हैं नहीं करना चाहते हैं "C: \ एप्लिकेशन \ तैनात"

    • फिंग के साथ मेरी समस्या एसपीपी भाग है, PHP में एसएसएच 2 डीएल की आवश्यकता है जो मैंने नहीं किया था और न ही मैं इसके लिए स्रोत संकलित करने का प्रयास करने में समय बिताना चाहता था।

    • तो सब सब में मैं हासिल क्या मैं मूल रूप से Phing साथ लेकिन Capistrano के साथ एक शाम बिताने के बाद मैं परिवर्तित

    == build.xml ==

    <?xml version="1.0" encoding="UTF-8"?> 
    
    <project description="" name="MyProject" default="build" basedir="."> 
    
        <property file="build.properties" /> 
        <tstamp> 
        <format property="build.time" pattern="%Y%m%d_%H%I" /> 
        </tstamp> 
    
        <!-- ============================================ --> 
        <!-- Target: prepare         --> 
        <!-- ============================================ --> 
        <target name="prepare"> 
        <echo msg="Deleting old build and deploy dirs" /> 
        <delete dir="./build/" includeemptydirs="true" failonerror="true" /> 
        <delete dir="./deploy/" includeemptydirs="true" failonerror="true" /> 
        </target> 
    
        <!-- ============================================ --> 
        <!-- Target: create        --> 
        <!-- ============================================ --> 
        <target name="create" depends="prepare"> 
        <echo msg="Creating fresh build and deploy directories" /> 
        <mkdir dir="./build/" /> 
        <mkdir dir="./deploy/" /> 
        </target> 
    
        <!-- ============================================ --> 
        <!-- Target: gitclone        --> 
        <!-- ============================================ --> 
        <target name="gitcheckout" depends="create"> 
        <echo msg="Checking out latest code" /> 
        <exec command="git checkout-index --prefix ./build/ -a"></exec> 
        </target> 
    
        <!-- ============================================ --> 
        <!-- Target: preparedeploy       --> 
        <!-- ============================================ --> 
        <target name="preparedeploy" depends="gitcheckout"> 
        <echo msg="Preparing deploy" /> 
        <copy todir="./deploy/" > 
         <fileset dir="."> 
         <include name="cgi-bin/**" /> 
         <include name="htdocs/**" /> 
         </fileset> 
        </copy> 
        <mkdir dir="./deploy/logs" /> 
        </target> 
    
        <!-- ============================================ --> 
        <!-- Target: cleanup         --> 
        <!-- ============================================ --> 
        <target name="cleanup" depends="preparedeploy"> 
        <echo msg="Deleting build dir" /> 
        <delete dir="./build/" includeemptydirs="true" failonerror="true" /> 
        </target> 
    
        <!-- ============================================ --> 
        <!-- Target: build         --> 
        <!-- ============================================ --> 
        <target name="build" depends="cleanup, preparedeploy, gitcheckout, create, prepare"> 
        <echo msg="Starting build ${build.time}" /> 
        </target> 
    
    </project> 
    
  • संबंधित मुद्दे