Lumela, Habr!
Kajeno ke rata ho arolelana e 'ngoe ea litsela tsa ho sebelisa
Selelekela
Kgutsufatso e kang DevOps ha e sa le ntho e ntjha bakeng sa setjhaba sa IT. Ho batho ba bangata, poleloana "do DevOps" e amahanngoa le mofuta o itseng oa konopo ea boselamose, ha e tobetse, khoutu ea kopo e fetoha ts'ebeliso e sebelisitsoeng le e lekiloeng (ntho e 'ngoe le e' ngoe e rarahane le ho feta, empa re ikhula lits'ebetsong tsohle).
Kahoo, re ile ra fumana taelo ea ho etsa konopo e joalo ea boselamose e le hore batsamaisi ba ka tsamaisa kopo ka ho tobetsa hanngoe feela. Ho na le mefuta e fapaneng ea ts'ebetsong ea mosebetsi ona: ho tloha ho ngola bot bakeng sa mang kapa mang oa manqosa a potlakileng ho isa ho ho etsa kopo e fapaneng. Leha ho le joalo, sena sohle se na le sepheo se le seng - ho etsa hore ho qala kaho le phepelo ea ts'ebeliso e be pepeneneng le e bonolo kamoo ho ka khonehang.
Tabeng ea rona re tla e sebelisa Jenkins.
Sepheo
Theha mosebetsi o bonolo oa Jenkins o tla qala moaho le (kapa) phepelo ea microservice e khethiloeng ea mofuta o itseng.
Kenya data
Re na le lipolokelo tse 'maloa tse nang le khoutu ea mohloli oa li-microservices tse fapaneng.
Ho hlalosa liparamente
Lintlha tse latelang li lokela ho amoheloa e le tlhahiso ea mosebetsi oa rona:
- URL ea polokelo e nang le khoutu ea microservice eo re batlang ho e haha le ho e sebelisa ha re etsa mosebetsi.
- ID ea boitlamo eo moaho o tla etsoa ho eona.
JOALOKAHA
Tsela e bonolo ka ho fetisisa ea ho phethahatsa mosebetsi ona ke ho etsa liparamente tse peli tsa mofuta oa String.
Tabeng ena, mosebelisi o tla hloka ho kenya tsela e eang sebakeng sa polokelo le id ea boitlamo, eo, u e bonang, e seng bonolo ka botlalo.
JOALOKAHA
Joale a re lekeng mofuta o mong oa li-parameter ho nahana ka melemo eohle ea eona.
Ha re theheng paramente ea pele ka mofuta oa Choice Parameter, ea bobeli - Active Choices Reactive Reference Parameter. Ka paramenteng e nang le mofuta oa Khetho, re tla kenyelletsa tšimong ea Khetho mabitso a polokelo moo khoutu ea li-microservices tsa rona e bolokiloeng teng.
Haeba bamameli ba rata sehlooho sena, joale sehloohong se latelang ke tla hlalosa mokhoa oa ho lokisa mesebetsi ho Jenkins, ho sebelisa tlhaloso ka khoutu (Configuration as code), i.e. re ke ke ra hloka ho kenya mabitso a polokelo ka letsoho le ho theha li-parameter, ntho e 'ngoe le e' ngoe e tla etsahala ka bo eona (khoutu ea rona e tla fumana lethathamo la li-repositories tse tsoang ho SCM le ho etsa parameter e nang le lenane lena).
Litekanyetso tsa paramente ea bobeli li tla tlatsoa ka matla, ho latela hore na paramente ea pele e nka boleng bofe (test1 kapa test2), hobane polokelo ka 'ngoe e na le lenane la eona la boitlamo.
Likhetho tse sebetsang Reactive Reference parameter e na le likarolo tse latelang tseo u lokelang ho li tlatsa:
- lebitso – lebitso la paramethara.
- rx - khoutu e tla etsoa nako le nako ha boleng ba parameter bo tsoa tšimong ea Referenced parameter bo fetoloa (ho rona, ha re khetha pakeng tsa test1 le test2).
- Tlhaloso – tlhaloso e khutšoanyane ea paramethara.
- Mofuta oa khetho - mofuta oa ntho e khutlisitsoeng ke script (ho rona re tla khutlisa khoutu ea html).
- Paramethara e boletsoeng - lebitso la parameter, ha boleng ba eona bo fetoloa, khoutu e tsoang karolong ea Script e tla etsoa.
Ha re tsoeleng pele ka kotloloho ho tlatsa tšimo ea bohlokoa ka ho fetisisa paramenteng ena. Re fana ka mefuta e 'meli ea ts'ebetsong eo u ka khethang ho eona: ho sebelisa Sengoloa sa Groovy kapa Scriptler Script.
Re khetha ea pele, kaha Scriptler ke plugin feela e bolokang mangolo ao u a ngotseng pele 'me e u lumella ho e sebelisa mesebetsing e meng ntle le ho kopitsa hape.
Khoutu ea Groovy ho fumana litlatsetso tsohle sebakeng se khethiloeng:
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()
Ntle le ho kena ka botlalo, khoutu ena e fumana lebitso la microservice (MICROSERVICE_NAME) joalo ka tlhahiso mme e romela kopo ho Bitbucket (mokhoa getCommitsForMicroservice) e sebelisa API ea eona, 'me e fumana id le ho etsa molaetsa oa boitlamo bohle bakeng sa microservice e fanoeng.
Joalokaha ho boletsoe pejana, khoutu ena e lokela ho khutlisa html e tla hlahisoa leqepheng Haha ka Parameters ho Jenkins, kahoo re thatela litekanyetso tsohle tse amoheloang ho tsoa ho Bitbucket lethathamong ebe re li kenyelletsa ho li khetha.
Kamora ho qeta mehato eohle, re lokela ho fumana leqephe le letle joalo Haha ka Parameters.
Haeba u khethile test1 microservice:
Haeba u khethile test2 microservice:
Lumellana hore ho tla ba bonolo haholoanyane hore mosebelisi a sebelisane le mosebetsi oa hau ka tsela ena ho feta ho kopitsa url nako le nako le ho batla id ea boitlamo e hlokahalang.
PES Sehlooho sena se fana ka mohlala o nolofalitsoeng haholo, o ka 'nang oa se ke oa sebelisoa ka mokhoa o sebetsang ka mokhoa ona, kaha likopano li na le mekhahlelo e mengata e fapaneng, empa morero oa sehlooho sena e ne e le ho bontša kamoo sesebelisoa se sebetsang kateng, eseng ho fana ka tharollo e sebetsang.
PSS Joalokaha ke ngotse pejana, haeba sehlooho sena se le molemo, joale se latelang se tla bua ka tlhophiso e matla ea mesebetsi ea Jenkins ka khoutu.
Source: www.habr.com