Automatyczne testy kompilacji GG
-
- Posts: 9713
- Joined: Thu Jun 27, 2019 12:16 pm
- Location: Wrocław
Jeśli ktoś przygotuje dockera, który będzie potrafił kompilować różne warianty GG (czy to na arduino-cli czy na pio - mi bez różnicy), to możemy go podpiąć do serwera wykonującego automatyczne testy. Wtedy po każdym commicie odpalała by się kompilacja wszystkich ustawionych konfiguracji i feedback byłby bardzo szybko.
Kiedy będzie Supla Offline Party / SOP#2025 ?
-
- Posts: 666
- Joined: Mon Feb 06, 2023 8:56 am
mogę spróbować, ale musiał bym wiedzieć dwie rzeczy:klew wrote: Mon Sep 23, 2024 7:36 am Jeśli ktoś przygotuje dockera, który będzie potrafił kompilować różne warianty GG (czy to na arduino-cli czy na pio - mi bez różnicy), to możemy go podpiąć do serwera wykonującego automatyczne testy. Wtedy po każdym commicie odpalała by się kompilacja wszystkich ustawionych konfiguracji i feedback byłby bardzo szybko.
a) jak to się rzeczywiście kompiluje
b) jaki feedback muszę zwrócić aby było to użyteczne
-
- Posts: 9713
- Joined: Thu Jun 27, 2019 12:16 pm
- Location: Wrocław
Nie wiem jak to się kompiluje. Zawsze miałem trudności z kompilacją GG choć kiedyś przez to przebrnąłem, ale nie pamiętam.rafalekkalwak@wp.pl wrote: Mon Sep 23, 2024 7:55 am mogę spróbować, ale musiał bym wiedzieć dwie rzeczy:
a) jak to się rzeczywiście kompiluje
b) jaki feedback muszę zwrócić aby było to użyteczne
PIO nigdy nie używałem, więc tutaj nic nie podpowiem .
Natomiast ogólnie, potrzebny jest docker, który generuje i konfiguruje całe środkowisko.
Np. dla supla-device jest to taki plik: https://github.com/SUPLA/supla-device/b ... Dockerfile
Jest tam docker na ubuntu, do tego pobrane potrzebne narzędzia, zainstalowanie arduino-cli, następnie zainstalowania odpowiednich boardów i bibliotek potrzebnych do kompilacji. Na koniec pobiera się supla-device.
Z takiego dockera można bezpośrednio skompilować przykłady z supla-device.
Do "CI" używamy środowiska Drone (https://www.drone.io/). Przykładowy plik konfiguracyjny drone'a:
https://github.com/SUPLA/supla-device/b ... .drone.yml
Tam jest dużo rzeczy, ale ogólnie kompilacja jakiegoś przykładu z arduino wygląda tak:
Code: Select all
- name: arduino_esp32_compilation_check_part_1
image: devel/arduino-cli
pull: never
commands:
- export SUPLA_DEVICE_PATH=/drone/src
- rm ~/Arduino/libraries/supla-device
- ln -s /drone/src ~/Arduino/libraries/supla-device
- cd examples
- arduino-cli compile --fqbn esp32:esp32:esp32wrover --optimize-for-debug --board-options PartitionScheme=huge_app --export-binaries --warnings all ./Afore/
W linuxie, jeśli jest wszystko ok, to komenda zwraca 0, jeśli coś poszło nie tak, to zwraca wartość różną od 0 - wtedy Drone traktuje to jak błąd i go zgłasza.
Jeśli kompilacja arduino-cli się wywali, to zwraca "nie 0" i jest błąd.
Kiedy będzie Supla Offline Party / SOP#2025 ?
-
- Posts: 666
- Joined: Mon Feb 06, 2023 8:56 am
Few minutes later...
@klew sprawdzisz czy o to chodziło? Jeśli tak to dodam wszystkie konfiguracje
https://github.com/rkalwak/GUI-Generic/ ... cker_build
https://github.com/rkalwak/GUI-Generic/ ... .drone.yml
@klew sprawdzisz czy o to chodziło? Jeśli tak to dodam wszystkie konfiguracje
https://github.com/rkalwak/GUI-Generic/ ... cker_build
https://github.com/rkalwak/GUI-Generic/ ... .drone.yml