Darmowe Continuous Integration z obsługą Javy, OpenCL na GPU, kompilatorem C++, Node.js itd

Odpowiedz Nowy wątek
2017-10-29 17:41

Rejestracja: 15 lat temu

Ostatnio: 6 godzin temu

1

Robię sobie projekt https://github.com/tarsa/SortAlgoBox który wykorzystuje szereg technologii i zastanawiam się czy w ogóle jest jakieś darmowe (lub tanie) CI które byłoby w stanie odpalić wszystkie testy z tego projektu. Zna ktoś jakieś? Niech podpowie.

Projekt wykorzystuje:

  • kompilator Scali, bo jest napisany głównie w Scali,
  • JVM do odpalenia głównego kodu,
  • OpenCL na CPU i GPU,
  • kompilator C++ do kompilacji generowanych dynamicznie zestawów plików .cpp i .hpp
  • następnie skompilowane binarki odpala z poziomu procesu Javowego i się z nimi komunikuje
  • (w niedalekiej przyszłości) Node.js do odpalania testów skompilowanych Scalą.js do JavaScriptu

Szukałem trochę i znalazłem niby opcje do obsługi większości z tych wymagań oprócz OpenCL na GPU. Jeśli do CI można podrzucić dowolne binarki to można podrzucić JVMa, implementację OpenCL na CPU, kompilator GCC i Node.js - wszystko to wymaga tylko CPU. Największym problemem jest głównie obsługa OpenCL na GPU i to w taki sposób by pozostałe funkcjonalności też działały.


"Programs must be written for people to read, and only incidentally for machines to execute." - Abelson & Sussman, SICP, preface to the first edition
"Ci, co najbardziej pragną planować życie społeczne, gdyby im na to pozwolić, staliby się w najwyższym stopniu niebezpieczni i nietolerancyjni wobec planów życiowych innych ludzi. Często, tchnącego dobrocią i oddanego jakiejś sprawie idealistę, dzieli od fanatyka tylko mały krok."
Demokracja jest fajna, dopóki wygrywa twoja ulubiona partia.

Pozostało 580 znaków

2017-11-11 21:47

Rejestracja: 5 lat temu

Ostatnio: 1 rok temu

0

Dopiero uczę się tworzenia pipelines CI/CD.

Z tego co widzę projekt wykorzystuje SBT. Czyli z linii komend systemu operacyjnego powinno dać się uruchomić testy napisane w różnych technologiach pod warunkiem, że:

  • system operacyjny pozwala
  • hardware pozwala

Powinno to działać analogicznie jak takie mavenowe verify.

Takiego zwykłego darmowego Jenkins można nauczyć uruchamiać dowolne skrypty: https://jenkins.io/doc/book/pipeline/

Jak dziala z poziomu systemu operacyjnego przez SBT dlaczego by miało nie działać z Jenkins pipeline? Chyba, że problemem jest załatwienie maszyny z GPU na której można zainstalować dowolny system CI.

Mam na myśli napisanie skryptu w formie Jenkinsfile: https://jenkins.io/doc/book/pipeline/jenkinsfile/

edytowany 3x, ostatnio: margor90, 2017-11-11 22:06

Pozostało 580 znaków

2017-11-11 22:14

Rejestracja: 15 lat temu

Ostatnio: 6 godzin temu

0

Z tego co widzę projekt wykorzystuje SBT.

Tak, wykorzystuje SBT. Odpalenie kompletu testów to wykonanie polecenia sbt test w katalogu z projektem, pod warunkiem że na komputerze zainstalowane są: JDK, SBT, OpenCL dla CPU i GPU, GCC.

Chyba, że problemem jest załatwienie maszyny z GPU na której można zainstalować dowolny system CI.

Generalnie tak. Nawet do Scali.js znalazłem przykładową konfigurację do TravisCI ( https://github.com/japgolly/s[...]react/blob/master/.travis.yml - jest instalacja i konfiguracja Node.js tak by można było odpalać testy jednostkowe w Scali.js ). Nie znalazłem jednak żadnej platformy CI, gdzie mógłbym odpalić komplet testów (włącznie z kompilacją programów przez GCC i odpalaniem programów w OpenCL na GPU, ale wszystko jest napisane w pierwszym poście, więc nie będę się powtarzał).


"Programs must be written for people to read, and only incidentally for machines to execute." - Abelson & Sussman, SICP, preface to the first edition
"Ci, co najbardziej pragną planować życie społeczne, gdyby im na to pozwolić, staliby się w najwyższym stopniu niebezpieczni i nietolerancyjni wobec planów życiowych innych ludzi. Często, tchnącego dobrocią i oddanego jakiejś sprawie idealistę, dzieli od fanatyka tylko mały krok."
Demokracja jest fajna, dopóki wygrywa twoja ulubiona partia.
W przypadku takiej wymagania chyba najprościej jest samemu postawić serwer z GPU i nie zdawać się na usługi w cloud w szczególności do OpenCL. - margor90 2017-11-11 22:31

Pozostało 580 znaków

2017-11-12 21:49
Moderator

Rejestracja: 12 lat temu

Ostatnio: 4 godziny temu

0

Jeśli ma być darmowy hostowany (zakładam, że projekt w takim wypadku FLOSS), to nie wiem czy się coś znajdzie. GPU będzie problemem. Z tego co znalazłem to może TravisCI ma jakieś wsparcie.

Jeśli chodzi o self-hosted to zakładam, że zarówno Jenkins jak i GitLab CI wspierają to.


Pozostało 580 znaków

Odpowiedz

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0