جینکنز کے کام میں متحرک پیرامیٹرز بنانا، یا اپنے کام کو صارف دوست بنانے کا طریقہ

اچھا دن، حبر!

آج میں استعمال کرنے کا ایک طریقہ بتانا چاہوں گا۔ ایکٹو چوائسز پلگ ان میں کام کرو جینکنز سب سے زیادہ متحد اور صارف دوست۔

تعارف

DevOps جیسا مخفف اب IT کمیونٹی کے لیے کوئی نئی چیز نہیں ہے۔ بہت سے لوگوں کے لیے، "do DevOps" کا جملہ کسی قسم کے جادوئی بٹن سے منسلک ہوتا ہے، جب کلک کیا جاتا ہے، تو ایپلیکیشن کوڈ خود بخود ایک تعینات اور آزمائشی ایپلیکیشن میں بدل جاتا ہے (ہر چیز درحقیقت زیادہ پیچیدہ ہے، لیکن ہم تمام عمل سے خلاصی کر رہے ہیں)۔

لہذا، ہمیں ایک ایسا جادوئی بٹن بنانے کا آرڈر موصول ہوا ہے تاکہ منتظمین ایک کلک کے ساتھ درخواست کو تعینات کر سکیں۔ اس کام کے نفاذ کی مختلف قسمیں ہیں: کسی بھی فوری میسنجر کے لیے بوٹ لکھنے سے لے کر ایک علیحدہ ایپلیکیشن تیار کرنے تک۔ بہر حال، اس سب کا ایک ہی مقصد ہے - ایپلیکیشن کی تعمیر اور تعیناتی کو ہر ممکن حد تک شفاف اور آسان بنانا۔

ہمارے معاملے میں ہم استعمال کریں گے۔ جینکنز.


جینکنز کے کام میں متحرک پیرامیٹرز بنانا، یا اپنے کام کو صارف دوست بنانے کا طریقہ

ٹاسک

ایک آسان جینکنز جاب بنائیں جو کسی مخصوص ورژن کی منتخب مائیکرو سروس کی تعمیر اور (یا) تعیناتی کا آغاز کرے گی۔

جینکنز کے کام میں متحرک پیرامیٹرز بنانا، یا اپنے کام کو صارف دوست بنانے کا طریقہ

ان پٹ ڈیٹا

ہمارے پاس متعدد ذخیرے ہیں جن میں مختلف مائیکرو سروسز کا سورس کوڈ ہوتا ہے۔

پیرامیٹرز کی وضاحت کرنا

مندرجہ ذیل پیرامیٹرز کو ہمارے کام میں ان پٹ کے طور پر موصول ہونا چاہیے:

  1. مائیکرو سروس کوڈ کے ساتھ ریپوزٹری کا URL جسے ہم کام چلاتے وقت بنانا اور تعینات کرنا چاہتے ہیں۔
  2. کمٹ کی ID جس سے تعمیر ہو گی۔

AS IS

اس کام کو پورا کرنے کا سب سے آسان طریقہ String قسم کے دو پیرامیٹرز بنانا ہے۔

جینکنز کے کام میں متحرک پیرامیٹرز بنانا، یا اپنے کام کو صارف دوست بنانے کا طریقہ

اس صورت میں، صارف کو دستی طور پر ریپوزٹری اور کمٹ آئی ڈی کے راستے میں داخل ہونے کی ضرورت ہوگی، جو آپ دیکھتے ہیں، مکمل طور پر آسان نہیں ہے۔

جینکنز کے کام میں متحرک پیرامیٹرز بنانا، یا اپنے کام کو صارف دوست بنانے کا طریقہ

جیسا کہ ہونا ہے۔

اب اس کے تمام فوائد پر غور کرنے کے لیے ایک اور قسم کے پیرامیٹرز کو آزماتے ہیں۔
آئیے چوائس پیرامیٹر ٹائپ کے ساتھ پہلا پیرامیٹر بنائیں، دوسرا - ایکٹو چوائسز ری ایکٹیو ریفرنس پیرامیٹر۔ چوائس قسم کے پیرامیٹر میں، ہم دستی طور پر چوائسز فیلڈ میں ان ریپوزٹریز کے نام شامل کریں گے جہاں ہماری مائیکرو سروسز کا کوڈ محفوظ ہے۔

جینکنز کے کام میں متحرک پیرامیٹرز بنانا، یا اپنے کام کو صارف دوست بنانے کا طریقہ

اگر سامعین کو یہ مضمون پسند ہے، تو اگلے مضمون میں میں جینکنز میں کاموں کو ترتیب دینے کے عمل کو بیان کروں گا، کوڈ کے ذریعے وضاحت کا استعمال کرتے ہوئے (کوڈ کے طور پر کنفیگریشن)، یعنی ہمیں دستی طور پر مخزن کے نام درج کرنے اور پیرامیٹرز بنانے کی ضرورت نہیں ہوگی، سب کچھ خود بخود ہوجائے گا (ہمارا کوڈ SCM سے ذخیروں کی فہرست حاصل کرے گا اور اس فہرست کے ساتھ ایک پیرامیٹر بنائے گا)۔

دوسرے پیرامیٹر کی قدریں متحرک طور پر پُر ہوں گی، اس بات پر منحصر ہے کہ پہلا پیرامیٹر کیا قدر لیتا ہے (test1 یا test2)، کیونکہ ہر ذخیرہ کی اپنی کمٹ کی فہرست ہوتی ہے۔

ایکٹو چوائسز ری ایکٹیو ریفرنس پیرامیٹر بھرنے کے لیے درج ذیل فیلڈز ہیں:

  1. نام - پیرامیٹر کا نام۔
  2. اسکرپٹ - کوڈ جو ہر بار جب حوالہ شدہ پیرامیٹر فیلڈ سے پیرامیٹر کی قدر کو تبدیل کیا جائے گا اس پر عمل کیا جائے گا (ہمارے معاملے میں، جب ہم test1 اور test2 کے درمیان انتخاب کرتے ہیں)۔
  3. Description - پیرامیٹر کی مختصر وضاحت۔
  4. انتخاب کی قسم - اسکرپٹ کے ذریعہ واپس کردہ آبجیکٹ کی قسم (ہمارے معاملے میں ہم HTML کوڈ واپس کریں گے)۔
  5. حوالہ شدہ پیرامیٹر - پیرامیٹر کا نام، جب اس کی قدر کو تبدیل کیا جاتا ہے، اسکرپٹ سیکشن سے کوڈ کو عمل میں لایا جائے گا۔

جینکنز کے کام میں متحرک پیرامیٹرز بنانا، یا اپنے کام کو صارف دوست بنانے کا طریقہ

آئیے اس پیرامیٹر میں سب سے اہم فیلڈ کو بھرنے کے لیے براہ راست آگے بڑھیں۔ ہمیں انتخاب کرنے کے لیے دو قسم کے نفاذ کی پیشکش کی جاتی ہے: استعمال کرنا گرووی اسکرپٹ یا Scriptler اسکرپٹ.
ہم پہلے کا انتخاب کرتے ہیں، کیونکہ اسکرپٹلر صرف ایک پلگ ان ہے جو آپ کے پہلے لکھے ہوئے اسکرپٹس کو محفوظ کرتا ہے اور آپ کو دوبارہ کاپی پیسٹ کیے بغیر انہیں دوسرے کاموں میں استعمال کرنے کی اجازت دیتا ہے۔

منتخب ذخیرے سے تمام کمٹ حاصل کرنے کے لیے گرووی کوڈ:

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 واپس آنا چاہیے جو صفحہ پر ظاہر ہوگا۔ پیرامیٹرز کے ساتھ بنائیں جینکنز میں، لہذا ہم بٹ بکٹ سے موصول ہونے والی تمام اقدار کو ایک فہرست میں لپیٹتے ہیں اور انہیں منتخب کرنے کے لیے شامل کرتے ہیں۔

تمام مراحل مکمل کرنے کے بعد ہمیں اتنا خوبصورت صفحہ ملنا چاہیے۔ پیرامیٹرز کے ساتھ بنائیں.

اگر آپ نے test1 مائیکرو سروس کو منتخب کیا ہے:

جینکنز کے کام میں متحرک پیرامیٹرز بنانا، یا اپنے کام کو صارف دوست بنانے کا طریقہ

اگر آپ نے test2 مائیکرو سروس کو منتخب کیا ہے:

جینکنز کے کام میں متحرک پیرامیٹرز بنانا، یا اپنے کام کو صارف دوست بنانے کا طریقہ

اس بات سے اتفاق کریں کہ صارف کے لیے ہر بار یو آر ایل کو کاپی کرنے اور مطلوبہ کمٹ آئی ڈی تلاش کرنے کے بجائے اس طرح آپ کے کام کے ساتھ تعامل کرنا زیادہ آسان ہوگا۔

PS یہ مضمون ایک بہت آسان مثال فراہم کرتا ہے، جو اس شکل میں عملی طور پر کام نہیں آسکتی ہے، کیونکہ اسمبلیوں میں اور بھی بہت سے مختلف پیرامیٹرز ہوتے ہیں، لیکن اس مضمون کا مقصد یہ بتانا تھا کہ ٹول کیسے کام کرتا ہے، کام کرنے کا حل فراہم کرنا نہیں۔

پی ایس ایس جیسا کہ میں نے پہلے لکھا تھا، اگر یہ مضمون مفید ہے، تو اگلا مضمون اس کے بارے میں ہوگا۔ کوڈ کے ذریعے جینکنز کے کاموں کی متحرک ترتیب.

ماخذ: www.habr.com

نیا تبصرہ شامل کریں