سؤال

أحاول تكوين Hudson حتى أتمكن من نشر إنشاء (ملف .WAR) تلقائيًا إلى Tomcat. ثم سيتم استخدام البناء الذي تم نشره حديثًا من قبل شخص ما لاختبار التطبيق.

لقد حاولت استخدام المكون الإضافي Deploy لنشر ملف .WAR تلقائيًا ، وهذا يعمل. ومع ذلك ، سيتم تشغيل الوظيفة التي تبني ملف .WAR بعد كل تغيير SCM (كلما ارتكبت رمز). باستخدام البرنامج المساعد Deploy ، سيتم نشر ملف .WAR إلى Tomcat في كل مرة يتم فيها إنشاء البناء. نظرًا لأن الرمز يتم ربطه بشكل متكرر ، فإن هذا يعني أنه سيتم إعادة تشغيل تطبيق الويب بشكل متكرر ، وسيؤدي ذلك إلى مقاطعة عملية الاختبار.

إنني أقدر حقيقة أن هدسون يدير اختبارات الوحدة الخاصة بي ويقوم ببناء بانتظام ، لذلك لا أريد تغيير المشغلات لهذه الوظيفة.

أنا أبحث عن طريقة يمكنني من خلالها أن أقرر نشرها من داخل هدسون. حاولت إنشاء وظيفة منفصلة من شأنها أن تنشر .WAR عن الوظيفة الأولى ، لكن هذا لم ينجح. هل لدى أي شخص أي خبرة في وضع شيء مثل هذا؟

هل كانت مفيدة؟

المحلول

كيفية الحصول على القطع الأثرية

انظر إلى القسم "كيفية التراجع أو إعادة نشر بناء سابق" على ال نشر صفحة البرنامج المساعد. يصف الفكرة الأساسية. يستخدم نسخ المكون الإضافي قطعة أثرية لنسخ القطع الأثرية من وظيفة البناء إلى وظيفتك الحالية (وظيفة النشر). من هناك تفعل الشيء نفسه الذي قمت به في خطوة البناء الخاصة بك.

كيفية تشغيل النشر

لا يمكن تشغيل مهمة البناء بعد بدء النشر بحيث يتم تشغيل البناء أولاً من وظيفة النشر. لذلك هناك خيارات قليلة:

  • تشغيل يدوي البناء. يحتاج المستخدم الذي يبدأ النشر إلى تحديد مجموعة محددة لمهمة الإنشاء.
  • النشر المجدول هذا يمكن أن يكون جزءا من المهام الليلية. يتم تشغيل الوظيفة على فاصل معين (مثل كل ليلة أو في كل عطلة نهاية أسبوع). نظرًا لأنها مؤتمتة ، يجب أن تلتقط مهمة النشر آخر بناء ناجح (لا تحتاج إلى وظيفة محددة في ذلك الوقت). ليس لديك فرصة لتمرير رقم التشغيل.
  • تحصل وظيفة النشر يتم تشغيله في كل مرة ينتهي فيها البناء (لا تتناسب مع متطلباتك ، ولكن المدرجة لإكمال القائمة)
  • بعض الزناد الآخر (الباطني). هذا يمكن أن يكون العديد من التفكير مختلف على سبيل المثال التي تم تشغيلها عن بُعد عن طريق استدعاء عنوان URL للبناء. يمكن أن تأتي المكالمة من أحد نظام Systen التذاكر أو نظام إدارة مختبر الاختبار أو أي نظام آخر تريده. يمكنك أيضًا تشغيل النشر ، من خلال تغييرات محددة في نظام التحكم في المصدر ، مثل تغيير رقم الإصدار (على سبيل المثال ، تميزت بكلمة رئيسية في رسالة الالتزام). يمكن تنفيذ هذا الزناد داخل أو خارج هدسون. هناك مشغلات أخرى متاحة أيضا. يتضمن ذلك على سبيل المثال لا الحصر تغيير صفحة HTML ، التغيير في جزء مراقب من نظام الملفات ، رسالة IM ، البريد الإلكتروني. يتم تنفيذ الثلاثة الأولى من خلال البرنامج المساعد Hudson. ألقِ نظرة على قائمة البرنامج الإضافي ، لمعرفة ما هو كل شيء قابلة للإثارة أو في كلتا الحالتين ، تحتاج إلى التأكد من أن محفوظات الوظائف البناء جميع القطع الأثرية اللازمة للنشر.

نصائح أخرى

لدي العديد من وظائف هدسون لكل مشاريع:

  1. وظيفة رئيسية تبني المشروع وتدير الاختبارات. إذا نجحت ، فإنه يطلق الوظائف التالية:
  2. وظيفة مقاييس التعليمات البرمجية (PMD ، FindBugs ، Cobertura ، CheckStyle ، أيضًا جيفادوك) و
  3. وظيفة النشر التي تبني المشروع باستخدام mvn package -DskipTests وتنشر الحرب على تومكات

أجد أن فصل هذه الأشياء جعل الأمور أسهل ، فقط المهمة الأولى التي تستمع لتغييرات SCM.

ومع ذلك ، هناك طريقة أخرى تتمثل في السماح للمهمة الثالثة أيضًا بالاستماع إلى SCM (ولكن مع فاصل زمني أطول ، ربما ساعة).

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top