நல்ல நாள், ஹப்ர்!
இன்று நான் பயன்படுத்துவதற்கான வழிகளில் ஒன்றைப் பகிர்ந்து கொள்ள விரும்புகிறேன்
அறிமுகம்
DevOps போன்ற சுருக்கமானது IT சமூகத்திற்கு புதியதாக இருக்காது. பலருக்கு, "DevOps" என்ற சொற்றொடர் ஒருவித மேஜிக் பொத்தானுடன் தொடர்புடையது, கிளிக் செய்யும் போது, பயன்பாட்டுக் குறியீடு தானாகவே வரிசைப்படுத்தப்பட்ட மற்றும் சோதிக்கப்பட்ட பயன்பாடாக மாறும் (எல்லாம் உண்மையில் மிகவும் சிக்கலானது, ஆனால் நாங்கள் எல்லா செயல்முறைகளிலிருந்தும் சுருக்கமாக இருக்கிறோம்).
எனவே, இதுபோன்ற மேஜிக் பட்டனை உருவாக்குவதற்கான ஆர்டரைப் பெற்றுள்ளோம், இதனால் நிர்வாகிகள் ஒரே கிளிக்கில் பயன்பாட்டை வரிசைப்படுத்த முடியும். இந்தப் பணியைச் செயல்படுத்துவதில் பல்வேறு வகைகள் உள்ளன: எந்தவொரு உடனடி தூதர்களுக்கும் ஒரு போட் எழுதுவது முதல் ஒரு தனி பயன்பாட்டை உருவாக்குவது வரை. ஆயினும்கூட, இவை அனைத்திற்கும் ஒரே குறிக்கோள் உள்ளது - பயன்பாட்டின் உருவாக்கம் மற்றும் வரிசைப்படுத்தலைத் தொடங்குவதை முடிந்தவரை வெளிப்படையானதாகவும் வசதியாகவும் செய்ய.
В нашем случае мы будем использовать ஜென்கின்ஸ்.
பணி
ஒரு குறிப்பிட்ட பதிப்பின் தேர்ந்தெடுக்கப்பட்ட மைக்ரோ சர்வீஸின் உருவாக்கம் மற்றும் (அல்லது) வரிசைப்படுத்தலைத் தொடங்கும் வசதியான ஜென்கின்ஸ் வேலையை உருவாக்கவும்.
உள்ளீடு தரவு
பல்வேறு மைக்ரோ சர்வீஸ்களின் மூலக் குறியீட்டைக் கொண்ட பல களஞ்சியங்கள் எங்களிடம் உள்ளன.
அளவுருக்களை வரையறுத்தல்
பின்வரும் அளவுருக்கள் எங்கள் வேலைக்கு உள்ளீடாகப் பெறப்பட வேண்டும்:
- மைக்ரோ சர்வீஸ் குறியீட்டைக் கொண்ட களஞ்சியத்தின் URL, வேலையை இயக்கும் போது உருவாக்கி பயன்படுத்த வேண்டும்.
- உருவாக்கப்படும் உறுதிமொழியின் ஐடி.
அப்படியே
இந்த பணியை நிறைவேற்ற எளிதான வழி, சரம் வகையின் இரண்டு அளவுருக்களை உருவாக்குவதாகும்.
இந்த வழக்கில், பயனர் களஞ்சியத்திற்கான பாதையை கைமுறையாக உள்ளிட வேண்டும் மற்றும் கமிட் ஐடியை உள்ளிட வேண்டும், இது முற்றிலும் வசதியானது அல்ல.
இருக்க வேண்டும்
இப்போது அதன் அனைத்து நன்மைகளையும் கருத்தில் கொள்ள மற்றொரு வகை அளவுருக்களை முயற்சிப்போம்.
தேர்வு அளவுரு வகையுடன் முதல் அளவுருவை உருவாக்குவோம், இரண்டாவது - செயலில் உள்ள தேர்வுகள் எதிர்வினை குறிப்பு அளவுரு. சாய்ஸ் வகையுடன் உள்ள அளவுருவில், எங்கள் மைக்ரோ சர்வீஸின் குறியீடு சேமிக்கப்பட்டுள்ள களஞ்சியங்களின் பெயர்களை தேர்வுகள் புலத்தில் கைமுறையாகச் சேர்ப்போம்.
பார்வையாளர்கள் இந்த கட்டுரையை விரும்பினால், அடுத்த கட்டுரையில், குறியீட்டின் மூலம் விளக்கத்தைப் பயன்படுத்தி ஜென்கின்ஸ் பணிகளை உள்ளமைக்கும் செயல்முறையை விவரிக்கிறேன் (குறியீட்டாக உள்ளமைவு), அதாவது. களஞ்சிய பெயர்களை கைமுறையாக உள்ளிட்டு அளவுருக்களை உருவாக்க வேண்டிய அவசியமில்லை, எல்லாம் தானாகவே நடக்கும் (எங்கள் குறியீடு SCM இலிருந்து களஞ்சியங்களின் பட்டியலைப் பெறும் மற்றும் இந்த பட்டியலுடன் ஒரு அளவுருவை உருவாக்கும்).
இரண்டாவது அளவுருவின் மதிப்புகள் மாறும் வகையில் நிரப்பப்படும், முதல் அளவுரு எடுக்கும் மதிப்பைப் பொறுத்து (test1 அல்லது test2), ஒவ்வொரு களஞ்சியத்திற்கும் அதன் சொந்த கமிட்களின் பட்டியல் உள்ளது.
செயலில் உள்ள தேர்வுகள் எதிர்வினை குறிப்பு அளவுரு நிரப்ப பின்வரும் புலங்கள் உள்ளன:
- பெயர் - அளவுரு பெயர்.
- ஸ்கிரிப்ட் - குறிப்பிடப்பட்ட அளவுரு புலத்திலிருந்து அளவுருவின் மதிப்பு மாற்றப்படும் ஒவ்வொரு முறையும் செயல்படுத்தப்படும் குறியீடு (எங்கள் விஷயத்தில், நாங்கள் test1 மற்றும் test2 இடையே தேர்வு செய்யும் போது).
- விளக்கம் - அளவுருவின் சுருக்கமான விளக்கம்.
- தேர்வு வகை - ஸ்கிரிப்ட் மூலம் வழங்கப்படும் பொருளின் வகை (எங்கள் விஷயத்தில் நாங்கள் html குறியீட்டை வழங்குவோம்).
- குறிப்பிடப்பட்ட அளவுரு - அளவுருவின் பெயர், அதன் மதிப்பு மாற்றப்படும்போது, ஸ்கிரிப்ட் பிரிவில் இருந்து குறியீடு செயல்படுத்தப்படும்.
இந்த அளவுருவில் மிக முக்கியமான புலத்தை நிரப்புவதற்கு நேரடியாக செல்லலாம். நாங்கள் தேர்வு செய்ய இரண்டு வகையான செயலாக்கங்களை வழங்குகிறோம்: பயன்படுத்தி க்ரூவி ஸ்கிரிப்ட் அல்லது ஸ்கிரிப்ட்லர் ஸ்கிரிப்ட்.
ஸ்கிரிப்ட்லர் என்பது நீங்கள் முன்பு எழுதிய ஸ்கிரிப்ட்களைச் சேமிக்கும் ஒரு செருகுநிரலாக இருப்பதாலும், மீண்டும் நகல்-பேஸ்ட் செய்யாமல் மற்ற பணிகளில் அவற்றைப் பயன்படுத்த அனுமதிக்கும் ஒரு செருகுநிரலாக இருப்பதாலும் நாங்கள் முதலில் தேர்வு செய்கிறோம்.
தேர்ந்தெடுக்கப்பட்ட களஞ்சியத்தில் இருந்து அனைத்து கமிட்களையும் பெற க்ரூவி குறியீடு:
AUTH = "логин и пароль в Base64"
GIT_URL = "url до вашей SCM (https://bitbucket.org/)"
PROJECT_NAME = "имя проектной области, где находятся репозитории"
def htmlBuild() {
html = """
<html>
<head>
<meta charset="windows-1251">
<style type="text/css">
div.grayTable {
text-align: left;
border-collapse: collapse;
}
.divTable.grayTable .divTableCell, .divTable.grayTable .divTableHead {
padding: 0px 3px;
}
.divTable.grayTable .divTableBody .divTableCell {
font-size: 13px;
}
</style>
</head>
<body>
"""
def commitOptions = ""
getCommitsForMicroservice(MICROSERVICE_NAME).each {
commitOptions += "<option style='font-style: italic' value='COMMIT=${it.getKey()}'>${it}</option>"
}
html += """<p style="display: inline-block;">
<select id="commit_id" size="1" name="value">
${commitOptions}
</select></p></div>"""
html += """
</div>
</div>
</div>
</body>
</html>
"""
return html
}
def getCommitsForMicroservice(microserviceRepo) {
def commits = [:]
def endpoint = GIT_URL + "/rest/api/1.0/projects/${PROJECT_NAME}/repos/${microserviceRepo}/commits"
def conn = new URL(endpoint).openConnection()
conn.setRequestProperty("Authorization", "Basic ${AUTH}")
def response = new groovy.json.JsonSlurper().parseText(conn.content.text)
response.values.each {
commits.put(it.displayId, it.message)
}
return commits
}
return htmlBuild()
விவரங்களுக்குச் செல்லாமல், இந்தக் குறியீடு மைக்ரோ சர்வீஸ் பெயரை (MICROSERVICE_NAME) உள்ளீடாகப் பெற்று, கோரிக்கையை அனுப்புகிறது bitbucket (முறை மைக்ரோ சர்வீஸிற்கான கமிட்டிகளைப் பெறுங்கள்) அதன் API ஐப் பயன்படுத்தி, கொடுக்கப்பட்ட மைக்ரோ சர்வீஸிற்கான அனைத்து கமிட்களின் ஐடி மற்றும் கமிட் செய்தியைப் பெறுகிறது.
முன்பே குறிப்பிட்டது போல, இந்தக் குறியீடு htmlஐத் தர வேண்டும், அது பக்கத்தில் காட்டப்படும் அளவுருக்கள் மூலம் உருவாக்கவும் Jenkins இல், எனவே Bitbucket இலிருந்து பெறப்பட்ட அனைத்து மதிப்புகளையும் ஒரு பட்டியலில் போர்த்தி, தேர்ந்தெடுக்க அவற்றைச் சேர்க்கிறோம்.
அனைத்து படிகளையும் முடித்த பிறகு, அத்தகைய அழகான பக்கத்தைப் பெற வேண்டும் அளவுருக்கள் மூலம் உருவாக்கவும்.
நீங்கள் test1 மைக்ரோ சர்வீஸைத் தேர்ந்தெடுத்திருந்தால்:
நீங்கள் test2 மைக்ரோ சர்வீஸைத் தேர்ந்தெடுத்திருந்தால்:
ஒவ்வொரு முறையும் url ஐ நகலெடுத்து, தேவையான உறுதிமொழி ஐடியைத் தேடுவதை விட, பயனர் உங்கள் பணியுடன் இந்த வழியில் தொடர்புகொள்வது மிகவும் வசதியாக இருக்கும் என்பதை ஒப்புக்கொள்க.
சோசலிஸ்ட் கட்சி இந்த கட்டுரை மிகவும் எளிமையான உதாரணத்தை வழங்குகிறது, இது இந்த வடிவத்தில் நடைமுறையில் பயன்படுத்தப்படாமல் இருக்கலாம், ஏனெனில் கூட்டங்களில் இன்னும் பல அளவுருக்கள் உள்ளன, ஆனால் இந்த கட்டுரையின் நோக்கம் கருவி எவ்வாறு செயல்படுகிறது என்பதைக் காண்பிப்பதாகும், வேலை செய்யும் தீர்வை வழங்குவது அல்ல.
PSS நான் முன்பு எழுதியது போல், இந்த கட்டுரை பயனுள்ளதாக இருந்தால், அடுத்தது பற்றி இருக்கும் குறியீடு வழியாக ஜென்கின்ஸ் பணிகளின் மாறும் கட்டமைப்பு.
ஆதாரம்: www.habr.com