اعتبارًا من أبريل 2022 ، لم يعد هذا المستودع يستخدم أو الحفاظ على هذا المستودع.
هذا Janky ، خادم تكامل مستمر مبني على قمة Jenkins ، ويسيطر عليه Hubot ، ومصمم لـ Github.
بنيت على قمة جنكينز. تم اختتام الطاقة ، وكمية هائلة من المكونات الإضافية والمجتمع الكبير لخادم CI الشهير في تجربة رائعة.
تسيطر عليها hubot. تتعرض العمليات اليومية كأوامر Hubot بسيطة يمكن للفريق بأكمله استخدامه.
مصمم لجيثب. يقوم Janky بإنشاء خطافات الويب المناسبة لك ، ويقوم تطبيق الويب بتقييد الوصول إلى أعضاء منظمة GitHub الخاصة بك.
ابدأ بإعداد وظيفة Jenkins الجديدة وخطاف الويب Github لمستودع: [ORG]/[REPO]
hubot ci setup github/janky
يمكن تشغيل أمر setup بأمان مرارًا وتكرارًا. لن يفعل أي شيء إلا إذا كان بحاجة إلى ذلك. يستغرق وسيطة name الاختيارية: [ORG]/[REPO] [NAME]
hubot ci setup github/janky janky-ruby1.9.2
يتطلب أيضًا وسيطة template اختياري: [ORG]/[REPO] [NAME] [TEMPLATE]
hubot ci setup github/janky janky-ruby1.9.2 ruby-build
يتم بناء جميع الفروع تلقائيا على الدفع. تعطيل بناء السيارات مع:
hubot ci toggle [REPO]
ملاحظة : إذا تم تعيين name ، فستحتاج إلى استخدامه.
hubot ci toggle [NAME]
قم بتشغيل الأمر مرة أخرى لإعادة تمكينه. إجبار بنية الفرع الرئيسي:
hubot ci build [REPO]
ملاحظة : إذا تم تعيين name ، فستحتاج إلى استخدامه.
hubot ci build [NAME]
لفرع معين: [REPO]/[BRANCH]
hubot ci build janky/libgit2
بنيات مختلفة ليست ذات صلة بغرفة الدردشة نفسها ، لذلك يتيح لك Janky اختيار المكان الذي يتم إرسال الإخطارات إليه. احصل أولاً على قائمة من الغرف المتاحة:
hubot ci rooms
ثم اختر واحدة:
hubot ci set room janky The Serious Room
احصل على حالة البناء:
hubot ci status janky
فرع محدد: [REPO]/[BRANCH]
hubot ci status janky/libgit2
كل البناء:
hubot ci status
أخيرًا ، احصل على مرجع سريع للأوامر المتاحة مع:
hubot ci?
يتطلب Janky الوصول إلى خادم Jenkins. ينصح الإصدار 1.580 . ارجع إلى وثائق Jenkins للحصول على تعليمات التثبيت وتثبيت الإصدار 1.4 الإشعار.
تذكر أن تضع عنوان URL Jenkins في http://your-jenkins-server.com/configure . سيظل Janky يحفز البناء ولكنه لن يقوم بتحديث حالة البناء بدون هذه المجموعة.
تم تصميم Janky ليتم نشره في Heroku.
احصل على جميع الملفات اللازمة من GIST:
$ git clone git://gist.github.com/1497335 janky
ثم ادفعه إلى تطبيق Heroku جديد:
$ cd janky
$ heroku create --stack cedar
$ bundle install
$ git add Gemfile.lock
$ git commit Gemfile.lock -m "lock bundle"
$ git push heroku master
بعد تكوين التطبيق (انظر أدناه) ، قم بإنشاء قاعدة البيانات:
$ heroku run rake db:migrate
ملاحظة: مطلوب Ruby Version 2.0.0+ لتشغيل Janky.
نوصي بشدة بنسخ قاعدة بيانات Janky الخاصة بك قبل الترقية.
تتمثل العملية العامة في ترقية الأحجار الكريمة ، ثم تشغيل الترحيل. إليك كيفية قيامك بذلك على مربع محلي يمكنك الوصول إليه (ستختلف هذه العملية بالنسبة لـ Heroku):
cd [PATH-TO-JANKY]
gem update janky
rake db:migrate
تم تكوين Janky باستخدام متغيرات البيئة. استخدم الأمر heroku config :
$ heroku config:add VARIABLE=value
الإعدادات المطلوبة:
JANKY_BASE_URL : عنوان URL للتطبيق مع مائلة زائدة. مثال: http://mf-doom-42.herokuapp.com/ .JANKY_BUILDER_DEFAULT : عنوان URL لخادم Jenkins مع مائلة زائدة. مثال: http://jenkins.example.com/ . للحصول على مصادقة أساسية ، قم بتضمين بيانات الاعتماد في عنوان URL: http://user:[email protected]/ . باستخدام Github Oauth مع Jenkins غير مدعوم من قبل Janky.JANKY_CONFIG_DIR : دليل حيث يتم تخزين قوالب تكوين البناء. عادةً ما يتم تعيينه على /app/config على Heroku.JANKY_HUBOT_USER : تسجيل الدخول المستخدم لحماية API Hubot.JANKY_HUBOT_PASSWORD : كلمة مرور لـ Hubot API.JANKY_GITHUB_USER : تسجيل الدخول لمستخدم Github يستخدم للوصول إلى واجهة برمجة التطبيقات. يتطلب امتيازات إدارية لإعداد خطافات الخدمة.JANKY_GITHUB_PASSWORD : كلمة المرور لمستخدم GitHub.JANKY_GITHUB_HOOK_SECRET : السر يستخدم للتوقيع على طلبات الخطاف من GitHub.JANKY_CHAT_DEFAULT_ROOM : غرفة الدردشة حيث يتم إرسال الإخطارات افتراضيًا.إعدادات قاعدة البيانات الاختيارية:
DATABASE_URL : عنوان URL لاتصال قاعدة البيانات. مثال: postgres://user:password@host:port/db_name .JANKY_DATABASE_SOCKET : مسار إلى مقبس قاعدة البيانات. مثال: /var/run/mysql5/mysqld.sock .يتطلب استخدام Janky مع Github Enterprise إعدادًا إضافيًا واحد:
JANKY_GITHUB_API_URL : URL الكامل API للمثال ، مع مقطع شرطة مائلة. مثال: https://github.example.com/api/v3/ .https://github.com/blog/1227-commit-status-api
لتحديث طلبات السحب باستخدام حالة الإنشاء ، قم بإنشاء رمز OAUTH عبر واجهة برمجة تطبيقات GitHub:
curl -u username:password
-d '{ "scopes": [ "repo:status" ], "note": "janky" }'
https://api.github.com/authorizations
ثم اضبط JANKY_GITHUB_STATUS_TOKEN . اختياريا ، يمكنك أيضًا تعيين JANKY_GITHUB_STATUS_CONTEXT لإرسال سياق إلى واجهة برمجة تطبيقات github افتراضيًا
يجب أن يكون username وكلمة password في المثال أعلاه هو نفس القيم المنصوص عليها في JANKY_GITHUB_USER و JANKY_GITHUB_PASSWORD على التوالي.
الإعدادات المطلوبة:
JANKY_CHAT=hipchatJANKY_CHAT_HIPCHAT_TOKEN : رمز المصادقة (يجب أن يكون هذا الرمز المميز رمزًا للمسؤول ، وليس رمزًا للإخطار.)JANKY_CHAT_HIPCHAT_FROM : الاسم سيتم إرسال الرسائل من. الافتراضات إلى CI .JANKY_HUBOT_USER اسم مستخدم XMPP/jabber بالتنسيق xxxxx_xxxxx بدلاً من البريد الإلكترونيJANKY_CHAT_DEFAULT_ROOM اسم الغرفة بدلاً من تنسيق XMPP ، على سبيل المثال: Engineers بدلاً من xxxx_xxxxx.تثبيت:
require "janky/chat_service/hipchat" إلى ملف config/environment.rb قبل خط Janky.setup(ENV) .echo 'gem "hipchat", "~>0.4"' >> Gemfilebundlegit commit -am "install hipchat"الإعدادات المطلوبة:
JANKY_CHAT=slackJANKY_CHAT_SLACK_TEAM : اسم فريق SlackJANKY_CHAT_SLACK_TOKEN : رمز المصادقة للمستخدم الذي يرسل إشعارات الإنشاء.JANKY_CHAT_SLACK_USERNAME : الاسم سيتم إرسال الرسائل من. الافتراضات إلى CI .JANKY_CHAT_SLACK_ICON_URL : url إلى صورة لاستخدامها كأيقونة لهذه الرسالة.تثبيت:
require "janky/chat_service/slack" إلى ملف config/environment.rb قبل خط Janky.setup(ENV) .echo 'gem "slack.rb"' >> Gemfilebundlegit commit -am "install slack"يرسل الإخطارات إلى Hubot عبر نص Janky.
الإعدادات المطلوبة:
JANKY_CHAT=hubotJANKY_CHAT_HUBOT_URL : url إلى مثيل Hubot الخاص بك.JANKY_CHAT_HUBOT_ROOMS : قائمة الغرف التي يمكن ضبطها عبر ci set room ."#room, #another-room""34343:room, 23223:another-room""room, another-room"تثبيت:
require "janky/chat_service/hubot" إلى ملف config/environment.rb قبل خط Janky.setup(ENV) . لتقييد الوصول إلى أعضاء منظمة GitHub ، قم بتسجيل تطبيق Oauth جديد على Github مع ضبط رد الاتصال على $JANKY_BASE_URL/auth/github/callback ثم قم بتعيين بعض الإعدادات الإضافية:
JANKY_SESSION_SECRET : سر جلسة عشوائية سرية. تم إنشاؤها عادة بواسطة أداة مثل pwgen .JANKY_AUTH_CLIENT_ID : معرف العميل لتطبيق Oauth.JANKY_AUTH_CLIENT_SECRET : سر العميل لتطبيق Oauth.JANKY_AUTH_ORGANIZATION : اسم المنظمة. مثال: "جيثب".JANKY_AUTH_TEAM_ID : معرف فريق اختياري لإعطاء Auth ل. مثال: "1234". قم بتثبيت البرنامج النصي Janky في Hubot الخاص بك ، ثم قم بتعيين متغير بيئة HUBOT_JANKY_URL . مثال: http://user:[email protected]/_hubot/ ، مع استبدال المستخدم وكلمة المرور بـ JANKY_HUBOT_USER و JANKY_HUBOT_PASSWORD على التوالي.
يجب أن يكفي أمر الإنشاء الافتراضي لمعظم تطبيقات Ruby:
$ bundle install --path vendor/gems --binstubs
$ bundle exec rake
لمزيد من التحكم ، يمكنك إضافة script/cibuild في جذر مستودعك لجينكينز للتنفيذ بدلاً من ذلك.
للتحكم الكلي ، يمكن أن ترتبط ملفات Jenkins config.xml بأكملها ببناء Janky. بالنظر إلى بناء يسمى windows واسم قالب psake ، سيحاول Janky config/jobs/psake.xml.erb لاستخدام قالب ، config/jobs/windows.xml.erb لتجربة اسم المهمة إذا لم يخرج القالب ، قبل العودة أخيرًا إلى التكوين الافتراضي ، config/jobs/default.xml.erb . بعد تحديث أو إضافة تكوين مخصص ، قم بتشغيل hubot ci setup مرة أخرى لتحديث خادم Jenkins.
مطلوب Docker و Docker-Corms للاختراق في هذا المشروع.
احصل على بيئتك وتشغيلها:
script/bootstrap
قم بإنشاء قواعد البيانات والجداول وبيانات البذور:
script/setup
بدء الخادم:
docker-compose run --service-ports app script/server
افتح التطبيق:
open http://localhost:9393/
قم بتشغيل مجموعة الاختبار:
docker-compose run --rm app script/test
شوكة مستودع Janky على github وأرسل طلب سحب. لاحظ أنه سيتم رفض أي تغييرات على السلوك دون اختبارات. إذا كنت تضيف ميزات جديدة مهمة ، فيرجى إضافة كل من الاختبار والوثائق.
حقوق الطبع والنشر © 2011-2014 ، Github ، Inc. راجع ملف COPYING لحقوق الترخيص والقيود (MIT).