Continuous Integration

یکپارچگی پیوسته (CI) نیاز برنامه نویسانی می باشد که بر روی یک مخزن کد مشترک چند مرتبه روزانه کد را ادغام می کنند. هر ادغام (checkin یا commit push) پس از آن توسط یک ساختار خودکار تأیید می شود، که به تیم اجازه می دهد تا مشکلات را در اوایل تشخیص دهد.
یکی از بهترین ابزارهایی که در زمینه CI وجود دارد وب اپلیکیشن Jenkins می باشد. Jenkins صدها پلاگین برای پشتیبانی از ساخت، راه اندازی و اتوماسیون هر پروژه فراهم می کند.
در این مقاله عملیات خودکار Build و پابلیش یک وب اپلیکیشن که بر روی TFSنگهداری می شود ، شرح داده خواد شد که در نتیجه بعد از هر بار تغییر سورس کد و CheckIn تغییرات انجام شده بصورت خودکار بر روی سرور Remote پابلیش شود.

Jenkins:
از Jenkins می توان برای اجرای دستورات طبقه بندی و مرتب شده جهت تست ، تولید ، و تحویل یا پابلیش  نرم افزار استفاده کرد.
2093

Job در Jenkins یکی از اصلی ترین بخش های این نرم افزار است. در صفحه اصلی و از پنل سمت چپ (تصویر بالا) از New Item برای تعریف وتنظیم Job ها استفاده می کنیم.

Job شامل عملیاتی است که می خواهیم روی پروژه یا پروژه ها اجرا شود. Job ها معمولا همان کارهایی هستند که قرار است برای تولید نسخه ، پابلیش،تست کدهای اصلی مان انجام دهیم. مثلا یک Job میتواند شامل عملیاتی باشد که به ازای هر بار Check in یک نسخه از پروژ ایجادنماید. جهت برقراری ارتباط با TFS  پلاگین مورد نیاز را نصب و برای انجام سایر عملیات روی پروژه ، یک job تعریف کنید.

تعریف Job :

1-   در ابتدای کار جهت تعریف یک Job از پنل سمت چپ صفحه اصلی بر روی new item کلیک کنید.

2-   یک نام برای item‌ جدید انتخاب کرده و گزینه free style project را انتخاب کنید و برروی ok کلیک کنید.

3- لیست Job های موجود در Jenkins در صفحه اصلی نمایش داده می شوند.

نصب پلاگین TFS :

 جهت برقراری ارتباط بین Jenkins و TFS ابتدا در مسیر زیر

Manage Jenkins > Manage Plugins > Team Foundation Server
پلاگین Team Foundation Server را نصب کنید.
2106

برقراری ارتباط با TFS :

1-   در صفحه اصلی Job ایجاد شده را کلیک و سپس در قسمت پنل سمت چپ گزینه Configure را انتخاب کنید.

2-   در صفحه جدید و در قسمت Source Code Management گزینه Team Foundation Version Control (TFVC) را انتخاب کنید و تنظیمات مربوط به repository خود را وارد کنید.

3-   در فیلد های Username و User Password ، نام کاربری و رمز عبور معتبر TFS خود را وارد کنید.

2105

4-   برای مطلع شدن Jenkins از آخرین تغییرات بر روی سورس کد ، نیاز به تعریف یک Service hook در سرور TFS می باشد.

5-   برای تعریف Service Hooks وارد نسخه آنلاین TFS شوید و از لیست پروژه های موجود در TFS پروژه مورد نظر را کلیک کنید، در صفحه بعد دکمه Setting و سپس Service Hooks را انتخاب کنید.

 

2102

6-   بعد از کلیک بر روی Service Hooks اقدام به ساختن یک Subscription کنید. از لیست باز شده Jenkins را انتخاب کنید.

 

2104

7-   در مرحله بعد Username و Password ورود به Jenkins همچنین آدرس Jenkins را وارد و در این مرحله ساخت Subscription به پایان می رسد.

تعریف WorkSpace :

1-   از صفحه اصلی وارد job شده و روی Configure کلید نمایید .

2-   در تب Source Management دکمه Advanced را کلید و مقدار فیلد   Workspace Name را مشخص کنید.به عبارت دیگر Workspace Name یعنی مسیری که Jenkins پروژه را از TFS دریافت و در آن قرار می دهد.

2107

Build :

 پس از برقراری ارتباط بین Jenkins و TFS ، تنظیمات اولیه برای Build شدن اپلیکیشن نوشته شده با دات نت را انجام می دهیم.

1-   در صفحه اصلی از پنل سمت چپ گزینه Manage Jenkins را انتخاب کنید.

2093

در مسیر زیر در فیلد Path To MSBuild  آدرس MS Build سازگار با ویژوال استودیو را وارد کنید.

Manage Jenkins > Global Tool Configuration > MSBuild Installations

2097

 
Publish:

1-   ساخت فایل تنظیمات Publish

برای پابلیش محصولات ویژوال استودیو نیاز به نصب پلاگین بر روی Jenkins نمی باشد.  MsBuild می تواند با استفاده از یک فایل تنظیمات پابلیش (Publish Profile) ، پس از Build و تولید نسخه،عملیات پابلیش را نیز اجرا کند.
جهت ساختن یک Publish Profile سورس را در محیط ویژوال استودیو باز و در فرم پابلیش پارامتر Publish method را روی مقدار File System و Target location را در مسیر Workspaceتنظیم کنید.

2100

پس از اتمام تنظیمات دکمه Save را کلیک و از منوی Actions >Rename یک نام دلخواه برای فایل تولید شده در نظر بگیرید.

2101

پروژه خود را CheckIn تا فایل تنظیمات پابلیش به سرور منتقل و توسط Jenkins قابل دسترس باشد.

2-   Build And Publish

به صفحه اصلی بازگشته و Job مورد نظر را انتخاب سپس Configure را کلیک و برای تنظیمات Build وارد تب Build شوید و از لیست MSBuild Version پروفایل MsBuild15 را که در مرحله قبل ساخته بوده اید را انتخاب نمایید.

2096

در فیلد Command line Argument پارامترهای زیر را وارد نمایید

/p:DeployOnBuild=true
/p:PublishProfile=MyPublishProfile             <<<<   فایل تنظیمات پابلیش     
/p:Configuration=Release

در این مرحله پس از هر تغییر در سورس پروژه و CheckIn آخرین تغییرات توسط Jenkins در مسیر Workspace دریافت، Build و Publish خواهد شد.

انتقال نسخه پابلیش شده به سرور Remote

به مسیر زیر رفته و مشخصات سرور FTP را وارد کنید

Jenkins > configuration > FTP repository hosts

و در فیلد Profile Name یک نام دلخواه برای این تنظیمات انتخاب کنید.

2094

از مسیر نصب پلاگینها پلاگین FTP Publisher Plugin را نصب و Jenkins را Restart کنید.

Jenkins > Plugin Manager >

به صفحه اصلی بازگشته و Job را انتخاب و در تنظیمات Job  روی تب Post-Build Actions  کلیک نمایید.
بر روی دکمه Add Post-Build Action کلیک و از لیست باز شده گزینه Publish Artifacts To Ftp   را انتخاب نمایید

2099  

برای فیلد FTP site تنظیماتFTP که در مرحله قبل ساخته اید را انتخاب نمایید وبر روی دکمه Add کلیک نمایید و  مقدار فیلد Source  از کادر باز شده را همان مسیری که در فایل تنظیمات پابلیش مشخص کرده اید قرار دهید.

2098

در فیلد Source مسیری که در فایل تنظیمات پابلیش مشخص کرده اید را وارد کنید.
در این گام به هدف مورد نظرمان که Build و پابلیش خودکار پروژه بر روی سرور Remote بود رسیده ایم.در صورتیکه قسمتی از کد را تغییر و Checkin نمایید تغییرات را بر روی نسخه پابلیش شده مشاهده خواهید کرد
در صفحه اصلی job در پنل Build History تاریخ و وضعیت نسخه های تولید و پابلیش شده را میتوانید مشاهده کنید. با کلیک بر روی هر مورد وارد جزییات نسخه تولید شده می شوید و در قسمت Console Output می توانید نتیجه (Log) Build ، پابلیش و یا انتقال فایلها بر روی سرور Remote را بررسی نمایید.این Log خروجی MsBuild می باشد.

 

منبع: وبسایت Jenkins

 


تاریخ ایجاد
۲۴ دی ۱۳۹۷  سید امیر تقوی
آخرین بروزرسانی
۲۴ دی ۱۳۹۷ 
تعداد کلیک
۴۰۲

فهرست نظرها و ارسال نظر جدید

برای نظر دادن ابتدا باید به سیستم وارد شوید. برای ورود به سیستم روی کلید زیر کلیک کنید.