Membangun aplikasi lingkungan arduino menggunakan CI github

gambar

Setelah sedikit bekerja berurusan dengan CI / CD (gitlab ce), saya baru-baru ini menemukan tindakan pada github, dan memutuskan untuk mencoba jenis binatang apa ini.

Itu tidak terlalu menarik untuk merakit JS atau beberapa solusi lain, jadi saya memutuskan untuk menguji perakitan sketsa Arduino untuk esp8266, untuk mendapatkan biner yang dikompilasi sebagai hasilnya, siap untuk diunduh langsung ke mikrokontroler tanpa perlu menginstal IDE Arduino lokal.

Tindakan, atau saluran pipa
Urutan perintah dan tindakan yang dimulai setelah peristiwa tertentu - misalnya, mendorong ke cabang repositori git, yaitu, itu akan diluncurkan setelah mengubah file. Anda dapat memodifikasi file secara langsung dengan editor github, dan proyek akan secara otomatis membangun dan mengkompilasi. Pipeline tidak hanya digunakan untuk kompilasi, tetapi juga untuk berbagai pengujian kode.

Saya tidak mulai membuat gambar buruh pelabuhan untuk semua ini, ini akan mempersulit proses pengorganisasian ci / cd, dan sekali lagi, saya tidak perlu membuat gambar untuk setiap perpustakaan.

Bagaimana ini bisa bermanfaat? Misalkan ada semacam proyek sumber terbuka, untuk versi pengontrol yang berbeda dengan jumlah memori yang berbeda, dan dibutuhkan banyak waktu untuk menyusun kode untuk semua platform. Dalam aksi, Anda dapat mengkonfigurasi platform untuk perakitan yang diperlukan - dan dengan setiap perubahan kode dalam repositori untuk setiap versi platform akan ada firmware siap pakai.

Kode skrip tindakan itu sendiri:

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 }} 

Sebenarnya -

  • Pada sistem yang bersih dengan ubuntu 18.04 kita menginstal arduino-cli
  • Tambahkan dukungan esp8266
  • Kompilasi kode arduino yang dihosting di repositori,
  • Kami membuat rilis di mana kami menambahkan biner yang dikompilasi

gambar

Tindakan pada github gratis untuk proyek-proyek sumber terbuka, untuk repositori tertutup mereka sekarang juga tersedia, tetapi sepertinya mereka tidak akan dapat diakses setelah beberapa saat.

Saya tidak berpura-pura menjadi bhikkhu, beberapa hal dapat dilakukan dengan lebih mudah, tetapi, bagaimanapun, itu berhasil.

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


All Articles