Chciałbym zarządzać moim kodem źródłowym Arduino (projektami i bibliotekami) pod kontrolą źródła przy ciągłym testowaniu. Jak mogę automatycznie skompilować kod za pomocą narzędzi do ciągłej integracji, aby mieć pewność, że każda wersja kompiluje się czysto? W najlepszym przypadku powinno być możliwe skonfigurowanie kompilacji dla wielu procesorów, opcjonalne uruchomienie testów jednostkowych i sprawdzenie maksymalnego rozmiaru pliku binarnego.
programming
version-control
Jakob
źródło
źródło
avr-size
?Odpowiedzi:
Najnowsza wersja Arduino ide ma interfejs wiersza poleceń do budowania i przesyłania kodu. Ale możesz oczywiście to zrobić przez makefile i avrdude. Teraz skompilowałeś swój kod, ALE potrzebujesz testowania. Ponieważ symulator jest złożony, niekompletny, ekspansywny i ... Po prostu symulacja, a ponieważ układ scalony jest stosunkowo tani, zbudowanie planszy sprawi, że interakcja HW ORAZ sprawdzenie wyników w najszybszy i najłatwiejszy sposób. Na tej „specjalnej” płycie możesz wgrać coś w rodzaju tłumacza, który bierze test z komputera i wykonuje go, coś podobnego do firmata dla arduino. Przynajmniej tak bym to zbudował. I o ile wiem, nie jest to znane, nawet jeśli jestem pewien, że wiele branż powinno i prawdopodobnie to robi.
źródło
Jako twórca PlatformIO , polecam przyjrzeć się temu. Jest to wieloplatformowy konstruktor kodów i brakujący menedżer bibliotek. Może zbudować ten sam kod dla wielu popularnych wbudowanych platform programistycznych i płyt.
PlatformIO można zintegrować z wieloma popularnymi systemami ciągłej integracji (CI) (lub własnymi). Zobacz dokumentację z przykładami .
Spójrzmy na
.travis.yml
config / template dla Travis CI:Przykład
Integracja dla
USB_Host_Shield_2.0
projektu. Plik.travis.yml
konfiguracyjny:źródło
Jeden przykład konfiguracji ciągłej integracji Jenkins dla projektu Arduino można znaleźć tutaj: Ciągła integracja dla systemów wbudowanych
Przykład pokazuje, jak zbudować i przesłać obraz do Arduino i wykonać testy sieciowe Selenium (testowany system to serwer WWW oparty na Arduino).
źródło
Napisałem ten test jako najbardziej nietrafny framework dla Arduino, ponieważ nie mogłem znaleźć właściwego istniejącego. Chociaż nie napisałem tego dla CI, byłoby dobrze dopasowane do zadania CI, ponieważ nie wymaga sprzętu, ale można go uruchomić na komputerze.
Uruchamianie zadań CI bez sprzętu ma dobre i złe strony, dobre strony
Minusem jest:
źródło
Właśnie stworzyłem odpowiedni rozmiar jako odpowiedź na to pokrewne pytanie o Arduino CI / testowanie jednostek napisane przeze mnie, które w końcu jest wystarczająco dojrzałe, aby zacząć publicznie mówić.
arduino_ci
Ruby gem obsługuje zarówno lokalnego testowania i integracji Travis CI (np ten build pracę dla biblioteki Adafruit fona ).Kilka przykładów tego, jak się integruje:
Mam problem utworzony za zgłoszenie szkic rozmiaru ale żadna praca nie zostało zrobione w tej sprawie. Możliwe też, że kiedyś uda mi się zrównoleglić wersje, ale w tej chwili nie jestem pewien, jak to zrobię. W tej chwili najbardziej czasochłonnym krokiem kompilacji na Travis CI jest pobranie Arduino IDE ... równoległe testowanie nie zaszkodzi, jeśli każde zadanie wymaga wykonania tego kroku.
źródło
Radziłbym użyć wtyczki arduino eclipse o nazwie sloeber sloeber.io, której jestem szefem projektu.
Integruje się z kontrolą wersji i pozwala budować na wielu platformach, ponieważ obsługuje wiele konfiguracji.
Chociaż nie jest to jeszcze idiotyczny dowód, udokumentowałem i zademonstrowałem za pomocą testowania jednostkowego kodu arduino na lokalnym komputerze za pomocą szkieletu testowego Google.
Oto link do bloga zawierający prezentację tego, jak możesz to zrobić. http://blog.baeyens.it/#post25
źródło