2015-04-28 12 views
8

का उपयोग कर GitLab सीआई में स्वचालित रूप से परीक्षण चलाने के लिए मैं कैसे विंडोज (64 बिट) के लिए gitlab-ci-बहु धावक का उपयोग कर GitLab सीआई के साथ काम शुरू कर दिया। सबकुछ ठीक काम करता है, मेरे भंडारों के कनेक्शन हैं और मेरी पुष्टिकरण नौकरियां प्रत्येक धक्का पर शुरू होती हैं।gitlab-ci-बहु धावक

क्या मैं अब क्या करना चाहते हैं एक काम जो npm install सभी निर्भरता डाउनलोड करने के लिए चलाता है और एक ही काम है जो मेरे सभी परीक्षणों karma start karma.conf.js चल रहे हैं या घुरघुराना का उपयोग करने और grunt test चलाकर कर्म/चमेली के साथ लिखा कार्यान्वित चल रहा है।

तो पहली नौकरी मैंने कोशिश की थी:

cd app 
npm install 
karma start karma.conf.js 

पहले दो आदेशों निष्पादित हो, लेकिन पिछले एक पूरी तरह से नजरअंदाज कर दिया है। तो मैंने नौकरियों को विभाजित करने की कोशिश की। आदेशों में से पहला अपना स्वयं का काम प्राप्त करता है (टैब "समानांतर में चलाया जाता है") और आखिरी व्यक्ति "सफलता पर चलने वाले टैब" टैब में अपनी नौकरी में स्थानांतरित हो गया था। अब सभी निर्भरताएं स्थापित हो जाती हैं और दूसरी नौकरी शुरू होती है। अब तक बहुत अच्छा है, लेकिन दूसरी नौकरी सभी पहले स्थापित निर्भरताओं को हटाने के साथ शुरू होती है और फिर karma start karma.conf.js चलाने की कोशिश करती है। यह स्पष्ट रूप से सभी परीक्षणों को विफल करने में समाप्त होता है क्योंकि एनपीएम निर्भरता "कोणीय-मोक्स" डाउनलोड नहीं की गई थी। यदि मैं दूसरी नौकरी में npm install जोड़ता हूं (जो मुझे इतना समझ में नहीं आता है), कर्म कार्य को फिर से अनदेखा कर दिया जाएगा।

यहां समस्या क्या है? मैं इसे कैसे ठीक करूं? और क्या प्रत्येक परीक्षण निष्पादन पर हमेशा सभी निर्भरताओं को डाउनलोड करने का कोई तरीका नहीं है?

+0

क्या आपने कभी इसे किसी भी मौके से '.gitlab-ci.yml' के साथ काम करने के लिए प्राप्त किया था? – montrealist

+1

हां! पूरी तरह से काम करता है :)! मैं नीचे अपना समाधान पोस्ट करूंगा। – error1337

उत्तर

11

के बाद से इस सवाल का पोस्ट किया गया था, Gitlab सीआई config के लिए .gitlab-ci.yml उपयोग करने के लिए बंद कर दी है। मेरा मानना ​​है कि निर्भरता स्थापित करने के लिए सुझाया गया तरीका एक before_script आदेश ऐसे

before_script: 
    - npm install 

test: 
    script: npm test 
+3

विंडोज उपयोगकर्ताओं के लिए छोटे संकेत ... "एनपीएम इंस्टॉल" जैसे कमांड काम नहीं करते हैं, आपको "कॉल एनपीएम इंस्टॉल" का उपयोग करना होगा। – error1337

+0

विंडोज़ पर एनपीएम के साथ ऐसा कुछ करने के लिए वास्तव में एक npm.cmd है, इसलिए जब गिटलाब सीआई इसे चलाता है ("cmd/c npm.cmd ..." जैसे कुछ का उपयोग करते हुए) जब npm.cmd समाप्त होता है तो यह वास्तव में cmd ​​मौजूद है, तो पूरे काम को समाप्त करता है। बहुत यकीन नहीं है, लेकिन इस तरह कुछ। – Ivan

4

के रूप में मैं नीचे मेरी अंतिम समाधान पोस्ट करने के लिए, इस मुद्दे के साथ दूसरों की मदद करना चाहते हैं के साथ है। मेरा .gitlab-ci.yaml फ़ाइल और मेरा karma.conf.js ऐप-रूट निर्देशिका में स्थित हैं। कर्म के लिए मैं PhantomJS का उपयोग कर रहा हूं, जो विंडोज के लिए और मेरे लिनक्स सर्वर के लिए भी बहुत अच्छा काम करता है। विंडोज के लिए

समाधान:

image: node:4.2.2 

cache: 
    paths: 
    - node_modules/ 

stages: 
    - test 

test_app: 
    stage: test 
    script: 
    - run npm install 
    - run karma start karma.conf.js 

वर्तमान में मैं/परीक्षण के लिए एक Linux सर्वर का उपयोग कर रहा मेरी एप्लिकेशन बना। लिनक्स के लिए काम करने के लिए आपको "रन" को हटाना होगा।

आप एक से अधिक काम है, तो आप "before_script" अनुभाग पर निर्भरता स्थापित आदेशों स्थानांतरित कर सकते हैं Tamlyn की तरह ऊपर लिखा था।

कृपया मुझे बताएं, अगर यह अभी भी आपके लिए काम नहीं कर रहा है। शायद मेरे पास कुछ और विचार हैं ... मैंने इसे काम करने के लिए बहुत कुछ किया है।

+0

बहुत उपयोगी, साझा करने के लिए धन्यवाद! मेरे लिए, यह एक बार चलाने के लिए 'कर्म शुरू - सिंगल रन' कहने के लिए उपयोगी था। – fedorqui

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