Lista oprogramowania do automatyzacji kompilacji - List of build automation software

Automatyzacja build polega włączony lub automatyzację procesu kompilacji komputerowego kodu źródłowego w kodzie binarnym . Poniżej znajduje się lista godnych uwagi narzędzi związanych z automatyzacją procesów budowania.

Make-based

  • GNU make , szeroko stosowana implementacja make z dużym zestawem rozszerzeń
  • make , klasyczne narzędzie do budowania systemu Unix
  • mk , pierwotnie opracowany dla wersji 10 Unix i Plan 9 i przeniesiony do systemu Unix jako część plan9port
  • MPW Make , opracowany dla klasycznego systemu Mac OS i podobny, ale niekompatybilny z Unix make; nowoczesny macOS (OS X) zawiera zarówno GNU make, jak i BSD make; dostępne w ramach programu Macintosh Programmer's Workshop jako bezpłatne, nieobsługiwane pobieranie od Apple
  • nmake
  • PVCS -make, zasadniczo podąża za koncepcją make, ale z zauważalnym zestawem unikalnych cech składni

Niezgodny

  • Apache Ant , popularny do tworzenia platform Java i używa formatu pliku XML
  • Apache Buildr , system kompilacji open-source, oparty na Rake , daje pełną moc skryptów w Ruby z integralną obsługą większości umiejętności wymaganych w systemie kompilacji
  • Apache Maven , narzędzie platformy Java do zarządzania zależnościami i zautomatyzowanego tworzenia oprogramowania
  • ASDF LISP system budowania do budowania projektów LISP
  • AAP , narzędzie do budowania oparte na Pythonie
  • Bazel , część Blaze (własne narzędzie Google do budowania) napisane w Javie, używające Starlark (składnia pliku BUILD) do budowania projektów w Javie, C, C++, Go, Python, Objective-C i innych
  • BitBake , narzędzie oparte na Pythonie ze szczególnym naciskiem na dystrybucje i pakiety do wbudowanej kompilacji krzyżowej Linuksa
  • Boot , narzędzie do budowania Java i zarządzania zależnościami napisane w Clojure
  • boost.build Dla projektów C++, wieloplatformowych, w oparciu o Perforce Jam
  • Buck , system kompilacji opracowany i używany przez Facebooka, napisany w Javie, używający Starlark (składnia pliku BUILD) jako Bazel
  • Buildout , oparty na języku Python system budowania do tworzenia, składania i wdrażania aplikacji z wielu części
  • Cabal , wspólna architektura do budowania aplikacji i bibliotek w języku programowania Haskell
  • Dub , oficjalny pakiet i budować kierownik D Języka
  • FinalBuilder dla programistów Windows. FinalBuilder udostępnia graficzne IDE do tworzenia i uruchamiania projektów kompilacji w jednej aplikacji. Ostateczny kreator zawiera również możliwość wykonania testów jednostkowych, wdrażania projektów internetowych lub instalowania i testowania aplikacji.
  • Flowtracer
  • Gradle , operacja budowania i automatyzacja systemu open source z Apache Groovy opartym na języku konkretnej domeny (DSL), łączący cechy Apache Ant i Apache Maven z dodatkowych funkcji, takich jak niezawodne bieżących budowie
  • Grunt , narzędzie do budowania front-end web development
  • Gulp , kolejne narzędzie do kompilacji dla front-end
  • IncrediBuild
  • Leiningen , narzędzie zapewniające powszechnie wykonywane zadania w projektach Clojure, w tym automatyzację kompilacji
  • Mix , narzędzie do budowania Eliksiru
  • MSBuild , aparat kompilacji firmy Microsoft
  • NAnt , narzędzie podobne do Ant dla .NET Framework
  • Ninja , mały system kompilacji skoncentrowany na szybkości przy użyciu skryptów kompilacji generowanych przez systemy kompilacji wyższego poziomu
  • Perforce Jam , narzędzie do budowania stworzone przez Perforce , inspirowane Make
  • Phing , system budowania projektów PHP, oparty na Apache Ant
  • Psake , język specyficzny dla domeny i narzędzie do automatyzacji kompilacji napisane w PowerShell
  • System budowania Qt
  • Rake , narzędzie do budowania oparte na Ruby
  • sbt , narzędzie do budowania oparte na DSL opartej na Scali
  • SCons , oparty na języku Python, ze zintegrowaną funkcjonalnością podobną do autoconf / automake
  • Stack , narzędzie do budowania projektów Haskell , zarządzania ich zależnościami (kompilatory i biblioteki) oraz do testowania i benchmarkingu.
  • tup , system kompilacji oparty na grafach , który wykorzystuje monitorowanie modyfikacji plików w celu zapewnienia prawie optymalnych czasów kompilacji z automatycznym wykrywaniem zależności.
  • Visual Build , oprogramowanie graficznego interfejsu użytkownika do tworzenia oprogramowania
  • Waf , oparte na języku Python narzędzie do konfigurowania, kompilowania i instalowania aplikacji. Jest zamiennikiem dla innych narzędzi takich jak Autotools , Scons , CMake czy Ant
  • Wake , narzędzie do orkiestracji kompilacji i język od SiFive.

Generowanie skryptów kompilacji

Te narzędzia generatora nie budują bezpośrednio, ale raczej generują pliki, które mają być używane przez natywne narzędzie do budowania (jak te wymienione w poprzednich dwóch sekcjach).

  • BuildAMation , wieloplatformowe narzędzie, używające deklaratywnej składni w skryptach C#, które buduje kod C/C++ w terminalu przy użyciu wielu wątków lub generuje pliki projektu dla Microsoft Visual Studio, Xcode lub MakeFiles.
  • CMake generuje pliki dla różnych narzędzi do kompilacji, takich jak make , ninja , Apple Xcode i Microsoft Visual Studio . CMake jest również bezpośrednio używany przez niektóre IDE jako Qt Creator , KDevelop i GNOME Builder .
  • GN to generator kompilacji, który wie, jak generować pliki kompilacji ninja .
  • GNU Build System (aka autotools), zbiór narzędzi do przenośnych kompilacji. Należą do nich w szczególności Autoconf i Automake , wieloplatformowe narzędzia, które razem generują odpowiednie zlokalizowane pliki makefile.
  • GYP (Generuj swoje projekty) - Stworzony dla Chromium ; to kolejne narzędzie generujące pliki dla natywnego środowiska build
  • robię
  • Meson , system kompilacji zoptymalizowany pod kątem wydajności i użyteczności, oparty jest na ninja w systemie Linux, Visual Studio w systemie Windows i Xcode w systemie macOS. Meson jest również bezpośrednio używany przez GNOME Builder .
  • Oprogramowanie OpenMake Meister
  • Premake , oparte na Lua narzędzie do tworzenia plików makefile, plików Visual Studio, projektów Xcode i nie tylko
  • qmake

Ciągła integracja

  • AnthillPro , automatyzacja kompilacji z obsługą potoku do automatyzacji wdrażania i testowania. Wiele platform, wiele języków
  • Apache Continuum - przerwane
  • Azure devops (dawniej TFS i VSTS), można Azure -hosted usługi lub self-hosted serwer możliwości budowania
  • Bamboo , oprogramowanie do ciągłej integracji
  • Bitbucket Pipelines and Deployments, ciągła integracja z hostowanymi repozytoriami Bitbucket
  • Buildbot , oparte na języku Python narzędzie do ciągłej integracji oprogramowania, które automatyzuje cykl kompilacji/testowania
  • Buildkite , platforma do uruchamiania szybkich, bezpiecznych i skalowalnych potoków ciągłej integracji we własnej infrastrukturze.
  • CircleCI , hostowana usługa ciągłej integracji dla projektów GitHub i Bitbucket.
  • CodePipeline , w pełni zarządzana usługa ciągłego dostarczania, która pomaga zautomatyzować potoki wydań w celu uzyskania szybkich i niezawodnych aktualizacji aplikacji i infrastruktury.
  • CruiseControl , dla Java i .NET
  • Przejdź na ciągłą dostawę , open source, wieloplatformowy
  • GitLab ( GitLab Runner ), ciągła integracja i serwer git
  • GitHub ( GitHub Actions ), bezpłatna usługa ciągłej integracji dla projektów open-source i serwera git
  • Hudson , rozszerzalny silnik ciągłej integracji
  • Jenkins , rozszerzalny silnik o ciągłej integracji, rozwidlony od Hudson
  • Spinnaker , usługa ciągłego dostarczania w wielu chmurach typu open source od Netflix i Google
  • TeamCity
  • Travis CI , hostowana usługa ciągłej integracji

Zarządzanie konfiguracją

Meta-kompilacja

Narzędzie do meta-kompilacji może tworzyć wiele różnych projektów przy użyciu podzbioru istniejących narzędzi do budowania. Ponieważ zazwyczaj zawierają one listę pakietów do zbudowania, często nazywane są także menedżerami pakietów .

  • Pkgsrc , menedżer pakietów NetBSD i innych systemów operacyjnych.
  • Portage , menedżer pakietów dystrybucji Gentoo Linux
  • Nix , funkcjonalny menedżer pakietów dla systemów Linux i macOS skupiający się na odtwarzalnych kompilacjach , używany w dystrybucji NixOS Linux.
  • Guix , funkcjonalny menedżer pakietów oparty na Nix, używany w dystrybucji GuixSD Linux.
  • Kolektywna wiedza , wieloplatformowy menedżer pakietów do przebudowy środowiska oprogramowania dla przepływów pracy badawczej
  • Homebrew , menedżer pakietów dla macOS

Inni

  • checkinstall , checkinstall to program, który monitoruje procedurę instalacji i tworzy standardowy pakiet dla twojej dystrybucji.
  • Open Build Service , hostowana usługa pomagająca budować pakiety dla różnych dystrybucji Linuksa

Przegląd licencjonowania

Nazwa narzędzia Język opisu Licencja
AAP Przepis GNU GPL
Mrówka XML Licencja Apache 2.0
MrowiskoPro Wraps Make, Ant, Maven, MsBuild, Nant itp. dla kontrolowanych procesów budowania, wdrażania i testowania. Wycofane
Bambus ciągła integracja Wersja próbna
Bazel BUILD/Starlark, DSL w stylu Pythona Licencja Apache 2.0
BuildAMation C# dla skryptów kompilacji, XML dla zależności wysokiego poziomu Nowa licencja BSD
Konstruktor Rubin Licencja Apache 2.0
Uruchomić Clojure Licencja Publiczna Eclipse
Kapistrano XML Licencja MIT
CMake używa pliku CMakeLists.txt Nowa licencja BSD
Zbiorowe ramy wiedzy Skrypty Python z JSON API i meta-opisem JSON Nowa licencja BSD
Kontinuum ? Licencja Apache 2.0
Tempomat XML Licencja w stylu BSD
Zdubbingować JSON , SDL Licencja MIT
FinalBuilder graficzne IDE z obsługą Ant/NAnt, MSBuild, JScript, VBScript, IronPython , PowerShell Wersja próbna
Gradle DSL oparte na Groovy; DSL na bazie Kotlina Licencja Apache 2.0
Jenkins ciągła integracja Licencja MIT
Homebrew Rubin Uproszczona licencja BSD
Leiningen Clojure Licencja Publiczna Eclipse
robić używa Makefile Tak samo jak system operacyjny w pakiecie
Maven Model obiektu projektu Licencja Apache 2.0
System budowy mezonów niestandardowe DSL Licencja Apache 2.0
Młyn Scala Licencja MIT
Marka MPW ? Oprogramowanie bezpłatne
MSBuild XML Licencja MIT
Nant XML GNU GPL
nmake używa Makefile Oprogramowanie bezpłatne
Usługa otwartej budowy używa różnych formatów opisów pakietów i obrazów (spec, dsc, ARCH, kiwi) GNU GPL
Perforce Jam używa Jamfile Wycofane
Phing XML GNU LGPL
Grabie Rubin Licencja MIT
sbt (proste narzędzie do budowania) DSL oparte na Scali Nowa licencja BSD
Scons Pyton Licencja MIT
Team Foundation Server MSBuild, Windows Presentation Foundation, JSON - interfejsy REST, programistyczne (może generować definicje za pomocą kodu) Wersja próbna
Tweaker (narzędzie do budowania) Dowolny (domyślnie Ant, bash, batch, C, Erlang, Java, SQL i VBScript, z zewnętrznym interfejsem dla rozszerzeń) GNU GPLv3
Wizualna kompilacja XML Wersja próbna
Waf Pyton Nowa licencja BSD

Bibliografia

Zewnętrzne linki