JavaRush /جاوا بلاگ /Random-SD /مسلسل انضمام
Nikita Koliadin
سطح
Днепр

مسلسل انضمام

گروپ ۾ شايع ٿيل
سلام، ساٿيو! توهان جي ڪمپيوٽر کي مسلسل هڪ پروجيڪٽ تعمير ڪرڻ تي مجبور ڪرڻ کان ٿڪل آهيو؟ پوء هي مضمون توهان لاء آهي! مسلسل انضمام - 1هن آرٽيڪل ۾ مان ڪوشش ڪندس ته مختصر ۽ واضح طور تي مواد کي مسلسل انٽيگريشن (هتان کان پوءِ صرف CI) جي حوالي سان پيش ڪرڻ جي، آئون اهڙن سادو سوالن جا جواب ڏيندس جيئن: ”ڇا آهي؟“، ”ڇو؟ ۽ ڇو؟" ۽ مان هڪ مثال ڏيندس ٽيسٽ پروجيڪٽ جو. هي آرٽيڪل هڪ تجربيڪار صارف لاءِ آهي جيڪو گهٽ ۾ گهٽ واقف آهي Build System: Maven , knows how to use Git and knows how to push projects to GitHub ؛

"مسلسل انضمام ڇا آهي؟"

اچو ته ڏسون وڪي اسان کي هن سوال بابت ڇا ٻڌائي ٿو : مسلسل انٽيگريشن (CI, English Continuous Integration) هڪ سافٽ ويئر ڊولپمينٽ مشق آهي جنهن ۾ ڪم ڪندڙ ڪاپين کي هڪ عام مکيه ڊولپمينٽ برانچ ۾ ضم ڪرڻ تي مشتمل هوندو آهي ڏينهن ۾ ڪيترائي ڀيرا ۽ پروجيڪٽ جي شروعاتي خودڪار تعميرات کي انجام ڏيڻ. انضمام جي مسئلن جي امڪاني خرابين ۽ حل جو پتو لڳائڻ. خوفناڪ، آهي نه؟ اچو ته هن اصطلاح کي آسان لفظن ۾ بيان ڪرڻ جي ڪوشش ڪريون: مسلسل انضمام هڪ سسٽم آهي جيڪو سافٽ ويئر جي تعمير ۽ خودڪار ٽيسٽنگ لاءِ مخصوص مشينن تي مخصوص ڪنفيگريشن سان گڏ ڪيڏيون ۽ غير مطابقتون معلوم ڪرڻ لاءِ. ٺيڪ، ڪو مسئلو ناهي، اسان ان کي ڪڍي ڇڏيو، پر هيٺ ڏنل منطقي سوال پيدا ٿئي ٿو:

اسان کي CI جي ضرورت ڇو آهي؟

اچو ته صرف تصور ڪريو ته توهان هڪ وڏو منصوبو لکي رهيا آهيو، ۽ ڪارڪردگي کي شامل ڪرڻ/تبديل ڪرڻ جي ضرورت آهي. توھان ڪاميابيءَ سان ان کي لکو، ٽيسٽ لکو، ان کي لانچ ڪيو، ۽ سڀ ڪجھ ٺيڪ ٿي لڳي، پر نه. اهڙيون حالتون آهن جڏهن هڪ ڪارڪردگي ۾ تبديلي هڪ ٻئي تي اثر انداز ٿئي ٿي، ٻي ٽئين تي، ۽ ائين ئي، جيستائين ڪو بگ سلپ ٿئي ٿو ۽ هڪ غلطي ٿئي ٿي. ها، توهان اهو چئي سگهو ٿا ته اهو گهڻو ڪري هڪ ناقص ٺهيل منصوبو آهي، ۽ توهان شايد صحيح آهيو، پر جيڪڏهن اهو نه آهي، ۽ اهي ڪنيڪشن واقعي اتي هجڻ گهرجن؟ ۽ ڇا جيڪڏهن توهان لکي رهيا آهيو ۽ هڪ پروجيڪٽ ٺاهي رهيا آهيو هڪ کان وڌيڪ ڀيرا، جيڪو اڪثر صورت ۾ هوندو آهي؟ توھان پنھنجي نئين لکيل ڪارڪردگي تي ٽيسٽ ورتا، ۽ انھن ھڪڙو مثبت نتيجو ڏنو. توهان هڪ تڪڙو عزم ڪيو، پوءِ ڪنهن هنڌ ڌڪ هنيو ۽ اڳ ۾ ئي سوچي رهيا آهيو ته توهان گهر ۾ سگريٽ ڪيئن پيئندا جڏهن مهانگي ويسڪي پيئندا، پر نه. افسوس، توهان جو ساٿي، يا باس، ڪوئي به فرق نٿو پوي، اهو چوي ٿو ته توهان جي ڪم جي ڪري سڄي تعمير تباهه ٿي وئي. توهان حيرانگي سان چوندا آهيو ته توهان هڪ پروگرامر آهيو، توهان هر شيء کي آزمائي ڇڏيو آهي. پر اڪثر ڪري اتي ڪو به وقت نه هوندو آهي ته مسلسل پوري پروجيڪٽ کي جانچڻ لاءِ، ۽ توهان صرف پنهنجي ڪوڊ جو ٽڪرو آزمايو جنهن ۾ توهان تبديليون ڪيون، نه ته پوري اسيمبليءَ کي. هي آهي جتي CI اسان جي مدد لاء اچي ٿو. ڪنهن به وسيلن ڏانهن هر ڌڪ سان، سي آءِ توهان جي پروجيڪٽ کي شروع کان ٺاهيندو، سڀ ٽيسٽ هلائيندو، ۽ صرف ان صورت ۾ جڏهن سڀ ٽيسٽ پاس ٿي وڃن ۽ پروجيڪٽ ٺهيل آهي، تعمير کي پاسنگ اسٽيٽس ملندي . ٻي صورت ۾ توهان کي واپسي ڪرڻ جو موقعو هوندو ۽ ڏسو ته ڇا غلط ٿيو. تنهن ڪري، اهو سوال پڇڻ جو وقت آهي "ڇو هي ۽ ٻي صورت ۾ نه؟" ۽ سافٽ ويئر تي عمل درآمد تي هڪ نظر وٺو. مثال جيئن مون اڳ ۾ ئي چيو آهي، مضمون انهن لاءِ آهي جيڪي واقف آهن Maven ۽ Git. تنهن ڪري، مان اميد ڪندس ته توهان کي خبر آهي ته آء سي آء، وغيره قائم ڪرڻ کان سواء ڪيئن ۽ ڇا ڪريان.
  1. پهرين، اچو ته هڪ سادي Maven ٽيسٽ پروجيڪٽ ٺاهيو ۽ ان ۾ هڪ ڪلاس ٺاهيو جيڪو پرنٽ ڪري "هيلو ورلڊ!" ۽ ڪجھ سادو آپريشن ڪري ٿو، ۽ اچو ته ھن ڪلاس لاءِ آسان ترين ٽيسٽ لکون.

    نتيجي طور، اسان کي هڪ ابتدائي منصوبي جي جوڙجڪ هجڻ گهرجي:

    مسلسل انضمام - 2

    سڀئي ذريعا منهنجي GitHub تي هوندا. اهو مسئلو ناهي ته توهان پنهنجي مکيه ۾ ڇا لکندا آهيو ۽ اتي ڪهڙا امتحان هوندا.

  2. اسان اسان جي پروجيڪٽ کي GitHub ڏانهن وڌايو.

  3. هاڻي اچي ٿو مزيدار حصو. CI کان، مون چونڊيو Travis CI ان جي دستيابي ۽ اعتبار جي ڪري. ٽريس استعمال ڪري ٿو GitHub کي ميزباني ڪرڻ لاءِ ان جو سورس ڪوڊ.

    تنهن ڪري، وڃو Travis CI ويب سائيٽ ۽ GitHub ذريعي لاگ ان ڪريو. پروفائل ۾ اسان اسان جي منصوبي سان ڳنڍيندا آھيون:

    مسلسل انضمام - 3

    هر شئي هر زور سان اسيمبليءَ لاءِ تيار آهي، پر سوال اهو آهي ته ڪيئن گڏ ڪجي؟

  4. اسان پنهنجي محبوب IDEA ڏانهن واپس وڃو ۽ هڪ .travis.yml فائل ٺاهي

    هي فائل ٽريس تعمير جي ترتيب لاء ذميوار آهي. اچو ته سڀ کان وڌيڪ مشهور سيٽنگون ڏسو:

    هي اهو آهي جيڪو هڪ عام ٽريس ترتيب وانگر ڏسڻ گهرجي:

    # https://docs.travis-ci.com/user/languages/java/
    language: java
    jdk: oraclejdk9
    
    # Improve Build Speed https://dzone.com/articles/travis-ci-tutorial-java-projects
    cache:
      directories:
      - $HOME/.m2
    
    # Notifications https://docs.travis-ci.com/user/notifications/
    notifications:
      email:
        recipients:
          - qThegamEp@gmail.com
        on_success: always # default: change
        on_failure: always # default: always

    مون تبصرا شامل ڪيا آهن، لنڪ سان، وضاحت لاءِ.

  5. اسان ٻيهر زور ڏيو GitHub ۽ کوليو Travis ويب سائيٽ ، منصوبي کي چونڊيو ۽ تعمير جي نگراني ڪريو. نتيجي طور، اسان هڪ ڪامياب تعمير بابت نوٽيفڪيشن حاصل ڪندا آهيون:

    مسلسل انضمام - 4 مسلسل انضمام - 5

    انهي سائيٽ تي پڻ اسان پنهنجي منصوبي جي ڪامياب اسيمبليء سان هڪ بيج ڏسي سگهون ٿا، جيڪو اسان پنهنجي README.md ۾ داخل ڪري سگهون ٿا:

    مسلسل انضمام - 6
مفيد لنڪس: متن ۾ غلطيون ۽ غلطيون ٿي سگهن ٿيون. توهان جي توجه لاء مهرباني!
تبصرا
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION