github - हर ट्रैविस को पुल अनुरोध निर्माण के लिए कवरिटी स्कैन चलाएं




travis-ci coverity (2)

मैं जितना संभव हो उतना ज्यादा छात्र असाइनमेंट ग्रेडिंग सिस्टम को स्वचालित करना चाहता हूं। आदर्श रूप से असाइनमेंट जमा करते समय इन चरणों को लिया जाएगा।

  1. विद्यार्थी ने मेरे गिथब रिपॉजिटरी का इस्तेमाल किया और फ़ाइलों को संशोधित किया
  2. विद्यार्थी स्थानीय कोड को अपनी रिपॉजिटरी में धकेलता है और पुल अनुरोध बनाता है
  3. ट्रैविस सीआई ने पुल अनुरोध का पता लगाया और पुल अनुरोध निर्माण को चलाने का पता लगाया
  4. यदि कोड सफलतापूर्वक बनाता है, तो पुल का पुल अनुरोध के लिए कवरिटी स्टेटिक कोड विश्लेषण चलाता है
  5. छात्र Github पुल अनुरोध पृष्ठ से स्थिति का निर्माण हो सकता है

मैंने सफलतापूर्वक मेरे रेपो में हर पुल अनुरोध के लिए ट्रेविस की स्थापना की है। मैंने अपने रेपो पर प्रत्येक प्रतिबद्धता के लिए ट्रेविस के जरिए सफलतापूर्वक स्कैन किया है। लेकिन मैं पुल अनुरोध के लिए कवरिटी स्कैन को ट्रिगर नहीं कर सकता, केवल ट्रैविस बिल्ड चल रहे हैं। क्या मैं इस समस्या को ठीक कर सकता हूं और हर पुल अनुरोध के लिए कवरिटी स्कैन रिपोर्ट को बनाए रख सकता हूं?

यह मेरी .travis.yml

language: c
compiler: gcc

env:
  global:
   # The next declaration is the encrypted COVERITY_SCAN_TOKEN, created
   #   via the "travis encrypt" command using the project repo's public key
   - secure: "WHkT1bLbpz8VA8tl+qyZvWHLg7YvnMPhCNXCEAQQaklcDq8HQ7glIrrs35VnTDfs09tVgkPbgsAfwBuwxqkmmxWaquW0AHdb6cefNpQVj2ovUriQVNBFmjfte9Bbq0NWKoLp+4IY/3IDfLoUOekOIDXuQtkJhNvX1zkkt21lSeo="

addons:
  coverity_scan:
    project:
      name: "Freeuni-CN101-2014/midterm"
      description: "Build submitted via Travis CI"
    notification_email: [email protected]
    build_command_prepend: ""
    build_command:   "make"
    branch_pattern: "*"

script: make

पुल अनुरोध का ट्रैविस आउटपुट यहां है

ट्रॉविस आउटपुट के बाद मैंने पुल अनुरोध को मुख्य शाखा के साथ विलय कर दिया


मैं कवच का उपयोग नहीं करने का सुझाव देता हूं, क्योंकि मुफ़्त खाते में बहुत सी सीमाएं हैं I जेनकींस का उपयोग करना बेहतर है मैं आपके लिए कॉन्फ़िगरेशन को स्पेशल बनाने का प्रयास करूंगा जेनकिंस ने गिटौब पर पुल के अनुरोधों का समर्थन किया


मैंने कवरिटी का समर्थन पूछा और उन्होंने जवाब दिया

कवररी स्कैन के लिए ट्रिगर विशिष्ट शाखा के लिए होता है, पुल अनुरोध के लिए नहीं, और विशेष रूप से शाखा .travis.yml में उल्लिखित है

अद्यतन करें

उपयोगकर्ता @ एडमास्टर की सहायता के साथ मैंने जेनकिंस और सीपीकेक प्लगइन के साथ खेलना शुरू कर दिया। जेनकिंस पुल अनुरोध स्कैन कर रहा है, बिना गिटब कमिट्स के निर्माण की स्थिति निर्धारित किए बिना (ट्रैविस सेट करता है)

उदाहरण

इसलिए मैंने ट्रैविस के साथ प्रयोग करना जारी रखा और इस रेपो में आया। मैंने अपना .travis.yml फ़ाइल बदल दिया है जो इस तरह दिखता है

language: c
compiler: gcc

before_install:
  - sudo apt-get install -qq cppcheck

script:
  - cppcheck --error-exitcode=1 --quiet .
  - make

cppcheck कम प्रभावी तो कवरिता हो सकता है, लेकिन यह छात्रों के कार्य के लिए पर्याप्त है





coverity