it-swarm.dev

تحريك إعادة بناء Travis-CI دون دفع التزام؟

باستخدام Travis-CI ، هل من الممكن إطلاق إعادة بناء دون دفع التزام جديد لـ GitHub؟

حالة الاستخدام: فشل إنشاء بسبب خارجي. المصدر هو في الواقع الصحيح. سيكون بناء موافق وتمرير إذا ببساطة إعادة تشغيل.

على سبيل المثال ، فشل apt-get بسبب تعطل خادم الحزمة ، ولكن الخادم احتياطي مرة أخرى. ومع ذلك ، يتم تعليق حالة البناء عند "فشل" حتى يتم دفع التزام جديد.

هل هناك طريقة ما لدفع Nudge Travis-CI للقيام ببناء آخر ، بخلاف دفع الالتزام "الوهمي"؟

370
Greg Hendershott
  • إذا كان لديك حق الوصول للكتابة إلى الريبو : على شاشة تفاصيل البناء ، هناك زرمع تلميح الأدوات "إعادة تشغيل البناء".

    ملاحظة: امتدادات المتصفح مثل Ghostery قد تمنع ظهور زر إعادة التشغيل. حاول تعطيل الامتداد أو Travis CI.

    Note2: إذا تغير تكوين .travis.yml في المنبع ، فسيؤدي النقر فوق زر إعادة الإنشاء إلى تشغيل ترافيس مع التكوين القديم. لتطبيق التغييرات الأولية لتكوين ترافيس ، يتعين على المرء أن يضيف التزامًا إلى PR أو إغلاقه/إعادة فتحه.

  • إذا قمت بإرسال طلب سحب : يمكنك إغلاق PR ثم فتحه مرة أخرى . هذا سوف يؤدي إلى بناء جديد.

ButtonPicutre

417
jbtule

إذا قمت بفتح Settings tab للمستودع على GitHub ، انقر فوق التكامل والخدمات ، ابحث عن Travis CI وانقر فوق تحرير ، يجب أن تشاهد اختبار الخدمة زر. هذا سوف يؤدي إلى بناء.

201
Aaron Hill

أعلم أنك قلتها دون دفع التزام ، ولكن الأمر مفيد ، إذا كنت تعمل في فرع آخر غير الرئيسي ، هو ارتكاب التزام فارغ.

git commit --allow-empty -m "Trigger"

يمكنك rebase في النهاية وإزالة الاسكواش/إزالة الالتزامات الفارغة ويعمل عبر جميع السنانير git :)

71
jasonmit

تسجيل الدخول إلى ترافيس وانتقل إلى صفحة البناء. سترى زر "إعادة تشغيل البناء" في الزاوية العلوية اليمنى ، بجانب رمز الترس:

screengrab

ملاحظة: يجب أن يكون لديك حق وصول للكتابة إلى ريبو جيثب المرتبط لكي يعمل هذا.

23
Juan

لقد وجدت طريقة أخرى لفرض إعادة بناء CI وغيرها من المشغلات:

  1. شغّل git commit --amend --no-edit دون أي تغييرات. سيؤدي هذا إلى إعادة إنشاء الالتزام الأخير في الفرع الحالي.
  2. git Push --force-with-lease Origin pr-branch.
22
Vlad Frolov

إذا كان لديك مشروع جديد على GitHub والذي يحتوي على .travis.yml ، ولكن لم يتم اختباره مطلقًا ، فيمكنك إجراء الاختبارات دون الالتزام بهذه الطريقة:

  1. تمكين الاختبار في مجموعات Travis CI
  2. فتح صفحة المشروع على جيثب
  3. الإعدادات المفتوحة -> webhooks والخدمات
  4. ابحث عن Travis CI في الخدمات واضغط على زر تحرير  
  5. اضغط على "خدمة الاختبار"  
20
lampslave

يمكنك القيام بذلك باستخدام Travis CLI . كما الموضح في الوثائق ، قم أولاً بتثبيت أداة CLI ، ثم:

travis login --org --auto
travis token

يمكنك الاحتفاظ بهذا الرمز المميز في متغير بيئة TRAVIS_TOKEN ، طالما أن الملف الذي تحتفظ به فيه لا يخضع للتحكم في الإصدار في مكان عام.

أستخدم هذه الوظيفة لإرسال المشغلات:

function travis_trigger() {
     local org=$1 && shift
     local repo=$1 && shift
     local branch=${1:-master} && shift

     body="{
             \"request\": {
               \"branch\": \"${branch}\"
              }
           }"

     curl -s -X POST \
          -H "Content-Type: application/json" \
          -H "Accept: application/json" \
          -H "Travis-API-Version: 3" \
          -H "Authorization: token $TRAVIS_TOKEN" \
          -d "$body" \
          "https://api.travis-ci.org/repo/${org}%2F${repo}/requests"
 }
13
Sam Brightman

يقدم Travis الآن طريقة لإطلاق بنية "مخصصة" من واجهة مستخدم الويب الخاصة بهم. ابحث عن زر القائمة "مزيد من الخيارات" على الجانب الأيمن بالقرب من أعلى صفحة المشروع.

 More Options → Trigger Build

سيتم بعد ذلك تزويدك بمربع حوار يمكنك من خلاله اختيار الفرع وتخصيص التكوين:

 Custom Build Dialog Box

في الوقت الذي أكتب فيه ، أصبح هذا الإصدار تجريبيًا ، ويبدو أنه عربات التي تجرها الدواب قليلاً (لكني أتوقع أنهم سيحلون المشكلات قريبًا).

8
iconoclast

إذا قمت بتثبيت Travis CI Client يمكنك استخدام travis restart <job#> لإعادة تشغيل بنية يدويًا من وحدة التحكم. يمكنك العثور على الوظيفة الأخيرة # للفرع باستخدام travis show <branch>

travis show master
travis restart 48 #use Job number without .1
travis logs master

Travis CI Client

UPDATE: للأسف يبدو أن هذا لا يبدأ بناء جديد باستخدام أحدث التزام ، ولكن بدلاً من ذلك فقط إعادة تشغيل بناء سابق باستخدام الحالة السابقة للريبو.

8
Greg Bray

يجب أن أذكر هنا أن لدينا الآن وسيلة لإطلاق بنية جديدة على الويب. انظر https://blog.travis-ci.com/2017-08-24-trigger-custom-build لمزيد من التفاصيل.

TL ؛ DR انقر على "مزيد من الخيارات" ، واختر "إنشاء الزناد".

4
banzaiman

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

3
viperguynaz

لقد قمت للتو بتشغيل الاختبارات على طلب السحب لإعادة تشغيله من خلال النقر فوق "فرع التحديث" هنا:  github check tests component

1
Frazer Kirkman

إليك ما نجح في إطلاق عملية إعادة بناء على PR افتتحها Dependabot ، لكنه فشل بسبب أخطاء في .travis.yml:

  1. إغلاق العلاقات العامة
  2. انتظر Dependabot للتعليق ("حسنًا ، لن أخطرك مرة أخرى بهذا الإصدار ، لكنني سأتصل عندما يتوفر إصدار جديد."). سوف تزيل فرعها.
  3. استعادة فرع Dependabot إزالتها (شيء مثل dependabot/cargo/tempfile-3.0.4).
  4. افتح العلاقات العامة مرة أخرى
0
grooveplex