2014-11-04 8 views
6

मैं एक रेल अनुप्रयोग है कि circleciparallel_test चलाते समय CircleCI के अंदर एकाधिक simplecov निर्देशिकाओं को मर्ज कैसे करें?

अंदर rspec इंटरनेट पर चारों ओर देख रहे हैं मैं अपने spec_helper.rb फ़ाइल का बहुत beginnging को यह जोड़ा साथ parallel_test चलाता है:

if ENV['COVERAGE'] 
    require 'simplecov' 
    # on circleci change the output dir to the artifacts 
    if ENV['CIRCLE_ARTIFACTS'] 
    dir = File.join("..", "..", "..", ENV['CIRCLE_ARTIFACTS'], "coverage") 
    SimpleCov.coverage_dir(dir) 
    SimpleCov.merge_timeout 3600 
    SimpleCov.command_name "rspec_#{Process.pid.to_s}#{ENV['TEST_ENV_NUMBER']}" 
    end 
    SimpleCov.start 'rails' 
end 

समस्या यह है कि एक परिणाम के रूप में मैं

enter image description here

क्या मैं गलत कर रहा हूँ: भिन्न फ़ोल्डर प्रत्येक circleci उदाहरण के लिए एक हो?

+0

कोई भी जो सर्कल-सीआई में काम करता है? – fabrizioM

+0

असंबद्ध, लेकिन आपका circle.yml कैसा दिखता है? मुझे यह कार्यप्रणाली नहीं मिल सकती @fabrizioM – StevenNunez

उत्तर

6

मैं CircleCI पर काम करता हूं। दुर्भाग्यवश यह काम नहीं करेगा - हम सभी बिल्डों के निर्माण के बाद अलग-अलग निर्माणों से कलाकृतियों की निर्देशिका एकत्र नहीं करते हैं, इसलिए निर्माण के दौरान उन्हें एक साथ मर्ज करने का प्रयास करने वाले टूल काम नहीं करेंगे। हमने ऐसा करने के लिए क्षमताओं को जोड़ने के बारे में बात की है, लेकिन यह वर्तमान में हमारे फीचर रोडमैप पर नहीं है, क्षमा करें!

+0

क्या यह अभी भी मामला है?मैं बस scp के माध्यम से @ फ्रैंक-सी-एक्टर्ट के समाधान को लागू करने वाला हूं ... – GDorn

3

किसी भी व्यक्ति जो अभी भी इस समस्या का हल ढूंढ रहा है, वहां एक नई संभावना है: कंटेनरों के बीच एसएसएच का उपयोग मैन्युअल रूप से सिंक और रिपोर्ट मर्ज करने के लिए, docs देखें। हालांकि, यह एक टर्नकी समाधान नहीं है, आपको खुद को आवश्यक लिपियों को लिखना होगा।

अन्यथा, आप भी एक बाहरी कवरेज सेवा का उपयोग कर सकते एक साथ (हम coveralls codecov का उपयोग करें) CircleCI के notification webhook साथ।

संपादित

आप अपने circle.yml में इस तरह webhook जोड़ सकते हैं (धन्यवाद इयान): notify: webhooks: - url: https://coveralls.io/webhook?repo_token=(your repo token)

+1

क्या आप मंडल के वेबहूक के साथ काम करने के लिए कवरॉल को कॉन्फ़िगर करने में थोड़ा और विवरण दे सकते हैं? – Nader

+0

इस जानकारी को https://coveralls.zendesk.com/hc/en-us/articles/203484329- समानांतर- बिल्ड- वेबहूक पर मिला –

1

व्याख्या करने के लिए क्या पर फ्रैंक एकर्ट, Coveralls can do this कहा। हालांकि, वह दस्तावेज थोड़ा दूर है।

आप Gemfile में जोड़ें:

gem 'coveralls', require: false 

अपने spec/spec_helper.rb में जोड़ें:

if ENV['CIRCLECI'] 
    # If running in CircleCI, run with Coveralls too 
    require 'coveralls' 
    Coveralls.wear!('rails') 
end 

अपने circle.yml में जोड़े (नहीं के रूप में coveralls.yml लेख राज्यों):

notify: 
    webhooks: 
    - url: https://coveralls.io/webhook?repo_token=your-repo-token 

में जोड़े (या बनाएँ)रूट फ़ोल्डर में, और जोड़ें:

repo_token: your-repo-token 

अंत में, जाना CircleCI परियोजना विन्यास में और एक वातावरण चर जोड़ें: COVERALLS_PARALLEL=true

यह हमारे लिए काम किया, लेकिन हम उचित पंक्ति गिनती में त्रुटियाँ नजर आती हैं (reported to Coveralls) लेकिन यह काम कर रहा है और हमें समय के साथ बदलते हुए हमारे कवरेज के बारे में एक अच्छा विचार देता है।

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