آواتار رسول صفری

رسول صفری

وبلاگی برای انتشار حرف هایم!

آموزش استفاده از TravisCI در گیت هاب

TravisCI

در این پست از وبلاگ قصد دارم نحوه استفاده از TravisCI در گیت هاب را همراه با یک مثال عملی توضیح دهم ، من برای وبلاگم از Jekyll که یک سیستم برای ایجاد سایت های استاتیک است استفاده می‌کنم و چند تا از پلاگین هایم به عنوان مثال تاریخ شمسی را گیت هاب (gh-pages) نمیشناسه و برای استفاده از آن ها مجبور بودم که سایتم را روی سیستم خودم بیلد کنم و فایل های بیلد شده را مستقیما push کنم داخل گیت هاب که این کار بسیار خسته کننده بود اما حالا این کار را Travis برای من انجام میده …

اصلا CI چیست؟

CI یا همان Continuous Integration به معنی ادغام مداوم می باشد و فرایندی است که در آن توسعه دهندگان می توانند به طور مستمر کارهای خود را با هم یکپارچه کنند، هر بار که توسعه دهنده ای کدی را به سورس کنترل اضافه کند، توسط یک بیلد اتوماتیک آن کد بررسی خواهد شد این بررسی می تواند شامل بیلد کردن پروژه و یا اجرای تست های تعریف شده برای این پروژه باشد به طور کلی میشه گفت با CI مشکلات یکپارچه سازی به شدت کم میشه و تیم ها قادر خواهند بود به صورت منسجم تری به توسعه نرم افزار بپردازند.

خوب دیگه بریم سراغ نحوه استفاده از TravisCI

این سرویس برای تمامی مخازن عمومی گیت هاب رایگان است اما برای استفاده در مخازن خصوصی باید هزینه پرداخت نمایید.

قبل از هر کاری باید وارد سایت آن شوید و با استفاده از گیت هاب لاگین کنید. پیوند

حال باید از لیست مخازن خود مخزن مورد نظر را فعال نمایید.

اکنون باید وارد گیت هاب شده و وارد تنظیمات مخزن مورد نظر شوید سپس از منوی سمت چپ وارد بخش Intergrations & services شوید و پس از آن بر روی Add service کلیک نمایید ، حال از بخش باز شده Travis CI را انتخاب نمایید.

User همان نام کاربری گیت هاب شماست و domain هم باید خالی گذاشته و تیک Active هم باید فعال باشد و اما توکن ، آنرا باید از سایت Travis کپی و در اینجا paste کنید.

TravisCI Token اسکرین شات مربوط به توکن در TravisCI

خوب الان تنظیمات به پایان رسید و باید فایل مربوط به کانفیگ Travis را مخزن خود ایجاد کنیم. برای اینکار ما به یک فایل با نام .travis.yml نیاز داریم.

  • دقت داشته باشید که نقطه . در ابتدای نام فایل است

حال فایل فوق را به صورت زیر می‌نویسیم:

lang: ruby

rvm:
  - 2.5.1

before_install:
  - gem install bundler
  - gem install jekyll

install:
  - bundle install --path vendor/bundle

script:
  - bundle exec jekyll build -d builded

deploy:
  provider: pages
  skip_cleanup: true
  github_token: $GITHUB_TOKEN # Set in travis-ci.org dashboard
  local_dir: builded
  target_branch: master
  fqdn: rasooll.com
  repo: rasooll/rasooll.com
  on:
    branch: master

در این فایل تنظیمات به ‌Travis گفته ایم که از روبی نسخه 2.5.1 استفاده کند و بعد از آن bundler و jekyll را نصب کند و در ادامه با استفاده از bundle پیشنیاز های مشخص شده داخل GemFile را در شاخه‌ی vendor/bundle نصب کند و در آخر نیز گفته ایم سایتمان را بیلد کرده و در داخل پوشه‌ی builded ذخیره کند، تا اینجا فرآیند بیلد کردن سایت به پایان رسیده است.

حال رسیدیم به بخش دیپلوی کردن سایت این تنظیمات مربوط به gh-pages است اگر می‌خواهید از سرویس دهنده‌ی دیگری استفاده کنید میتوانید به مستندات TravisCI مراجعه کنید. پیوند به مستندات

در تنظیمات بالا شما باید دو مقدار را تغییر دهید ، اولین مورد مقدار repo است که مقابل آن باید آدرس مخزن مربوط به سایت بیلد شده‌ی خود در گیت هاب را وارد نمایید.

  • فرض بر این است که دو مخزن وجود دارد ، یکی برای سورس کد ها و دیگری برای سایت بیلد شده.

مورد دوم که باید تغییر کند مقدار مقابل fqdn است که آن همان آدرس سایت شماست.

خوب شاید اکنون این سوال برای شما پیش آمده باشد که $GITHUB_TOKEN چیست ؟ این سوال کاملا به جا هست این مقدار همان توکن هست که به Travis دسترسی میدهد داخل مخزن سایت بیلد شده‌ی شما Push کند. این توکن را میتوانید از تنظیمات اکانت گیت هاب در بخش Personal access tokens بدست آورید. پینود

این توکن نیازمند دسترسی‌های زیر است:

  • repo
  • read:org
  • user:email
  • write:repo_hook

از آنجایی که این توکن باید خصوصی نگه داشته شود داخل تنظیمات Travis به صورت متغییر نوشته شده است و مقدار آن داخل تنظیمات مخزن داخل سایت Travis و بخش Environment Variables وارد شده است.

کار تنظیمات به پایان رسید ، از این پس وقتی شما داخل مخزن خود Push می‌کنید Travis کار خود را شروع می‌کند.

نوشته شده در پنج‌شنبه 04 مرداد 1397