Django
जेनकींस के साथ निरंतर एकीकरण
खोज…
जेनकिंस 2.0+ पाइपलाइन स्क्रिप्ट
जेनकिन्स के आधुनिक संस्करण (संस्करण 2. x) एक "बिल्ड पाइपलाइन प्लगइन" के साथ आते हैं, जिसका उपयोग इंटरकनेक्टेड नौकरियों की भीड़ बनाए बिना जटिल सीआई कार्यों को ऑर्केस्ट्रेट करने के लिए किया जा सकता है, और आपको आसानी से अपने बिल्ड / टेस्ट कॉन्फ़िगरेशन को संस्करण-नियंत्रित करने की अनुमति मिलती है।
आप इसे "पाइपलाइन" प्रकार की नौकरी में मैन्युअल रूप से स्थापित कर सकते हैं, या, यदि आपकी परियोजना गितुब पर होस्ट की जाती है, तो आप स्वचालित रूप से आपके लिए नौकरियों को स्थापित करने के लिए "गिटहब संगठन फ़ोल्डर प्लगिन" का उपयोग कर सकते हैं।
यहाँ Django साइटों के लिए एक सरल विन्यास है जिसे केवल साइट के निर्दिष्ट अजगर मॉड्यूल को स्थापित करने की आवश्यकता होती है।
#!/usr/bin/groovy
node {
// If you are having issues with your project not getting updated,
// try uncommenting the following lines.
//stage 'Checkout'
//checkout scm
//sh 'git submodule update --init --recursive'
stage 'Update Python Modules'
// Create a virtualenv in this folder, and install or upgrade packages
// specified in requirements.txt; https://pip.readthedocs.io/en/1.1/requirements.html
sh 'virtualenv env && source env/bin/activate && pip install --upgrade -r requirements.txt'
stage 'Test'
// Invoke Django's tests
sh 'source env/bin/activate && python ./manage.py runtests'
}
जेनकिन्स 2.0+ पाइपलाइन स्क्रिप्ट, डॉकर कंटेनर
यहां एक पाइपलाइन स्क्रिप्ट का एक उदाहरण है जो डॉकटर कंटेनर बनाता है, फिर इसके अंदर परीक्षण चलाता है। Entrypoint या तो माना जाता है manage.py
या invoke
/ fabric
के साथ एक runtests
उपलब्ध होती है।
#!/usr/bin/groovy
node {
stage 'Checkout'
checkout scm
sh 'git submodule update --init --recursive'
imageName = 'mycontainer:build'
remotes = [
'dockerhub-account',
]
stage 'Build'
def djangoImage = docker.build imageName
stage 'Run Tests'
djangoImage.run('', 'runtests')
stage 'Push'
for (int i = 0; i < remotes.size(); i++) {
sh "docker tag ${imageName} ${remotes[i]}/${imageName}"
sh "docker push ${remotes[i]}/${imageName}"
}
}