بناء تطبيق بيئة اردوينو باستخدام CI github

صورة

بعد قليل من العمل في التعامل مع CI / CD (gitlab ce) ، صادفت مؤخرًا إجراءات على github ، وقررت تجربة نوع الوحش هذا.

لم يكن من المثير للاهتمام إنشاء JS أو بعض الحلول الأخرى ، لذلك قررت اختبار مجموعة رسم Arduino لـ esp8266 ، ونتيجة لذلك ، تم إعداد ثنائي مجمَّع جاهز للتنزيل مباشرةً إلى متحكم دقيق دون الحاجة إلى تثبيت IDD محلي من Arduino.

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

لم أبدأ في إنشاء صورة لرسو السفن لكل هذا ، فهذا من شأنه أن يعقد عملية تنظيم ci / cd ، ومرة ​​أخرى ، لست بحاجة إلى إنشاء صورة لكل مكتبة.

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

رمز البرنامج النصي للعمل نفسه:

on: [push] jobs: build: runs-on: ubuntu-18.04 steps: - uses: actions/checkout@v1 - name: install arduino cli run: curl -fsSL https://raw.githubusercontent.com/arduino/arduino-cli/master/install.sh | sh - name: MakeSketch run: ./bin/arduino-cli sketch new MyFirstSketch - name: create dir run: mkdir -p /home/runner/.arduino15/packages - name: lib init run: sudo ./bin/arduino-cli core update-index --additional-urls http://arduino.esp8266.com/stable/package_esp8266com_index.json - name: install esp8266 run: sudo ./bin/arduino-cli core install esp8266:esp8266 --additional-urls http://arduino.esp8266.com/stable/package_esp8266com_index.json - name: install python3 run: sudo apt-get install -yq python3 - name: compile run: sudo ./bin/arduino-cli compile --fqbn esp8266:esp8266:d1 MyFirstSketch - uses: actions/upload-artifact@v1 with: name: esp8266-d1-mini-4m.bin path: MyFirstSketch/MyFirstSketch.esp8266.esp8266.d1.bin - uses: ncipollo/release-action@v1 with: artifacts: "MyFirstSketch/MyFirstSketch.esp8266.esp8266.d1.bin" tag: "release" token: ${{ secrets.GITHUB_TOKEN }} 

في الحقيقة -

  • على نظام نظيف مع أوبونتو 18.04 نقوم بتثبيت arduino-cli
  • إضافة دعم esp8266
  • تجميع كود اردوينو المستضاف في المستودع ،
  • نقوم بإنشاء إصدار نضيف فيه ثنائي المترجمة

صورة

الإجراءات على github مجانية لمشاريع المصادر المفتوحة ، أما بالنسبة للمستودعات المغلقة ، فهي متاحة الآن أيضًا ، لكن يبدو أنها ستصبح غير قابلة للوصول بعد فترة من الوقت.

أنا لا أدعي للمتطرفين ، بعض الأشياء يمكن أن تكون أسهل ، ولكن ، على أي حال ، أنها تعمل.

Source: https://habr.com/ru/post/ar479718/


All Articles