د جینکنز دندې کې متحرک پیرامیټرې رامینځته کول ، یا څنګه خپل کار د کارونکي دوستانه کړئ

ښه ورځ، هبر!

نن زه غواړم د کارولو لپاره یوه لاره شریکه کړم د فعال انتخاب پلگ ان دنده په کې ترسره کړئ جینکنز ترټولو متحد او د کاروونکي دوستانه.

پېژندنه

دا ډول لنډیز لکه DevOps د معلوماتي ټیکنالوژۍ ټولنې لپاره نور څه نوي ندي. د ډیری خلکو لپاره ، د "Do DevOps" جمله د یو ډول جادو بټن سره تړاو لري ، کله چې کلیک وکړئ ، د غوښتنلیک کوډ په اوتومات ډول ځای پرځای شوي او ازمول شوي غوښتنلیک بدلیږي (هر څه واقعیا خورا پیچلي دي ، مګر موږ له ټولو پروسو څخه خلاصیږو).

نو، موږ د داسې جادو بټن جوړولو امر ترلاسه کړ ترڅو مدیران وکولی شي غوښتنلیک په یو کلیک سره ځای په ځای کړي. د دې دندې پلي کولو مختلف ډولونه شتون لري: د هر فوري میسینجر لپاره د بوټ لیکلو څخه د جلا غوښتنلیک رامینځته کولو پورې. په هرصورت، دا ټول ورته هدف لري - د غوښتنلیک جوړول او پلي کول د امکان تر حده شفاف او اسانه کول دي.

زموږ په قضیه کې موږ به وکاروو جینکنز.


د جینکنز دندې کې متحرک پیرامیټرې رامینځته کول ، یا څنګه خپل کار د کارونکي دوستانه کړئ

موخه

د جینکنز یو مناسب دنده رامینځته کړئ چې د یوې ټاکلې نسخې ټاکل شوي مایکرو سرویس جوړول او (یا) ګمارل به پیل کړي.

د جینکنز دندې کې متحرک پیرامیټرې رامینځته کول ، یا څنګه خپل کار د کارونکي دوستانه کړئ

د معلوماتو داخلول

موږ ډیری ذخیره لرو چې د مختلف مایکرو خدماتو سرچینې کوډ لري.

د پیرامیټونو تعریف کول

لاندې پیرامیټرې باید زموږ دندې ته د ننوتلو په توګه ترلاسه شي:

  1. د مایکرو سرویس کوډ سره د ذخیره کولو URL چې موږ غواړو د دندې پرمخ وړلو پرمهال جوړ او ځای په ځای کړو.
  2. د ژمنې پیژندنه چې له هغې څخه به جوړ شي.

لکه څنګه

د دې کار سرته رسولو لپاره ترټولو اسانه لار د سټرینګ ډول دوه پیرامیټرې رامینځته کول دي.

د جینکنز دندې کې متحرک پیرامیټرې رامینځته کول ، یا څنګه خپل کار د کارونکي دوستانه کړئ

پدې حالت کې ، کارونکي به اړتیا ولري په لاسي ډول ذخیره کولو او ژمنې ID ته لاره دننه کړي ، کوم چې تاسو ګورئ ، په بشپړ ډول مناسب ندي.

د جینکنز دندې کې متحرک پیرامیټرې رامینځته کول ، یا څنګه خپل کار د کارونکي دوستانه کړئ

لکه څنګه چې باید وي

اوس راځئ چې د بل ډول پیرامیټونو هڅه وکړو ترڅو د هغې ټولې ګټې په پام کې ونیسو.
راځئ چې لومړی پیرامیټر د انتخاب پیرامیټر ډول سره رامینځته کړو ، دوهم - د فعال انتخابونو عکس العمل پیرامیټر. د انتخاب ډول سره پیرامیټر کې، موږ به په لاسي ډول د انتخابونو په ساحه کې د ذخیره کولو نومونه اضافه کړو چیرې چې زموږ د مایکرو خدماتو کوډ زیرمه شوی.

د جینکنز دندې کې متحرک پیرامیټرې رامینځته کول ، یا څنګه خپل کار د کارونکي دوستانه کړئ

که لیدونکي دا مقاله خوښوي ، نو په راتلونکي مقاله کې به زه په جینکنز کې د دندو تنظیم کولو پروسه تشریح کړم ، د کوډ له لارې توضیحات په کارولو سره (د کوډ په توګه تنظیم کول) ، د بیلګې په توګه. موږ به اړتیا نلرو په لاسي ډول د ذخیره کولو نومونه دننه کړو او پیرامیټونه رامینځته کړو ، هرڅه به په اوتومات ډول پیښ شي (زموږ کوډ به د SCM څخه د ذخیره کولو لیست ترلاسه کړي او د دې لیست سره پیرامیټر رامینځته کړي).

د دوهم پیرامیټر ارزښتونه به په متحرک ډول ډک شي ، پدې پورې اړه لري چې لومړی پیرامیټر کوم ارزښت اخلي (ټیسټ 1 یا ټیسټ 2) ، ځکه چې هر ذخیره خپل د ژمنو لیست لري.

فعال انتخابونه د عکس العمل پیرامیټر د ډکولو لپاره لاندې ساحې لري:

  1. نوم - د پیرامیټر نوم.
  2. د ښونکی - کوډ چې هرکله به اجرا شي کله چې د راجع شوي پیرامیټر ساحې څخه د پیرامیټر ارزښت بدل شي (زموږ په قضیه کې ، کله چې موږ د ټیسټ 1 او ټیسټ 2 ترمینځ غوره کوو).
  3. Description - د پیرامیټر لنډ تشریح.
  4. د انتخاب ډول - د سکریپټ لخوا بیرته راستانه شوي څیز ډول (زموږ په قضیه کې موږ به د html کوډ بیرته راوړو).
  5. حواله شوي پیرامیټر - د پیرامیټر نوم، کله چې ارزښت بدل شي، د سکریپټ برخې څخه کوډ به اجرا شي.

د جینکنز دندې کې متحرک پیرامیټرې رامینځته کول ، یا څنګه خپل کار د کارونکي دوستانه کړئ

راځئ چې په مستقیم ډول په دې پیرامیټر کې د خورا مهم ساحې ډکولو ته لاړ شو. موږ ته د غوره کولو لپاره دوه ډوله تطبیق وړاندیز کیږي: کارول گرووی سکریپټ او یا سکریپټر سکریپټ.
موږ لومړی غوره کوو، ځکه چې سکریپټلر یوازې یو پلگ ان دی چې هغه سکریپټونه خوندي کوي چې تاسو مخکې لیکلي دي او تاسو ته اجازه درکوي چې د کاپي پیسټ کولو پرته په نورو کارونو کې وکاروئ.

د غوره شوي زیرمو څخه د ټولو ژمنو ترلاسه کولو لپاره گرووي کوډ:

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) د ان پټ په توګه ترلاسه کوي او غوښتنه لیږي بیتبیتټ (طریقه GetCommitsForMicroservice) د دې API په کارولو سره ، او د ورکړل شوي مایکرو سرویس لپاره د ټولو ژمنو ID او ژمن پیغام ترلاسه کوي.
لکه څنګه چې مخکې یادونه وشوه، دا کوډ باید html بیرته راشي چې په پاڼه کې به ښودل شي د پیرامیټونو سره جوړ کړئ په جینکنز کې، نو موږ د بټ بکټ څخه ټول ترلاسه شوي ارزښتونه په لیست کې وتړو او د انتخاب لپاره یې اضافه کړو.

د ټولو مرحلو بشپړولو وروسته، موږ باید داسې ښکلې پاڼه ترلاسه کړو د پیرامیټونو سره جوړ کړئ.

که تاسو ټیسټ 1 مایکرو خدمت غوره کړی:

د جینکنز دندې کې متحرک پیرامیټرې رامینځته کول ، یا څنګه خپل کار د کارونکي دوستانه کړئ

که تاسو ټیسټ 2 مایکرو خدمت غوره کړی:

د جینکنز دندې کې متحرک پیرامیټرې رامینځته کول ، یا څنګه خپل کار د کارونکي دوستانه کړئ

موافقه وکړئ چې دا به د کارونکي لپاره خورا اسانه وي چې ستاسو د دندې سره پدې ډول اړیکه ونیسي هر ځل د یو آر ایل کاپي کولو او د اړین ژمنې ID په لټه کې کولو په پرتله.

PS دا مقاله یو خورا ساده مثال وړاندې کوي، کوم چې ممکن په دې بڼه کې عملي کار نه وي، ځکه چې مجلسونه ډیری نور مختلف پیرامیټونه لري، مګر د دې مقالې موخه دا وه چې دا وښيي چې وسیله څنګه کار کوي، نه د کاري حل چمتو کول.

پی ایس ایس لکه څنګه چې ما مخکې لیکلي، که دا مقاله ګټوره وي، نو راتلونکی به یې په اړه وي د کوډ له لارې د جینکنز دندو متحرک ترتیب.

سرچینه: www.habr.com

Add a comment