Buduj automatyzację - Build automation
Rozwój oprogramowania |
---|
Automatyzacja kompilacji to proces automatyzacji tworzenia kompilacji oprogramowania i powiązanych procesów, w tym: kompilacji kodu źródłowego komputera do kodu binarnego , pakowania kodu binarnego i uruchamiania testów automatycznych .
Przegląd
Historycznie rzecz biorąc, automatyzacja kompilacji była przeprowadzana za pomocą plików makefile . Obecnie istnieją dwie ogólne kategorie narzędzi:
- Narzędzie do automatyzacji kompilacji
- Obejmuje to narzędzia takie jak Make , Rake , CMake , MSBuild , Ant , Maven lub Gradle (Java) itp. Ich głównym celem jest generowanie artefaktów kompilacji poprzez działania takie jak kompilowanie i łączenie kodu źródłowego.
- Buduj serwery automatyzacji
- Są to ogólne narzędzia internetowe, które wykonują narzędzia automatyzacji kompilacji zgodnie z harmonogramem lub wyzwalaniem; ciągła integracja serwer jest serwerem typu build-automatyki.
W zależności od poziomu automatyzacji możliwa jest następująca klasyfikacja:
- Makefile - poziom
- Narzędzia oparte na marce
- Narzędzia inne niż Make
- Narzędzia do tworzenia skryptów (lub Makefile)
- Narzędzia do ciągłej integracji
- Narzędzia do zarządzania konfiguracją
- Narzędzia do tworzenia meta lub menedżery pakietów
- Inny
Listę oprogramowania dla każdego można znaleźć na liście oprogramowania do automatyzacji kompilacji .
Narzędzia do budowania automatyzacji
Narzędzia do automatyzacji budowania umożliwiają automatyzację prostych, powtarzalnych zadań. Podczas korzystania z narzędzia obliczy, w jaki sposób osiągnąć cel, wykonując zadania we właściwej, określonej kolejności i uruchamiając każde zadanie. Dwa sposoby, w jakie różnią się narzędzia do budowania, są zorientowane na zadania i zorientowane na produkt. Narzędzia zorientowane zadaniowo opisują zależność sieci w kategoriach określonego zadania, a narzędzia zorientowane na produkt opisują rzeczy w kategoriach produktów, które generują.
Buduj serwery automatyzacji
Chociaż serwery kompilacji istniały na długo przed serwerami ciągłej integracji, są one generalnie synonimami serwerów ciągłej integracji, jednak serwer kompilacji może również zostać włączony do narzędzia ARA lub narzędzia ALM .
Typy serwerów
- Automatyzacja na żądanie, na przykład uruchamianie skryptu przez użytkownika w wierszu poleceń
- Zaplanowana automatyzacja, taka jak serwer ciągłej integracji z nocną kompilacją
- Wyzwalana automatyzacja, taka jak serwer ciągłej integracji, który uruchamia kompilację przy każdym zatwierdzeniu do systemu kontroli wersji .
Rozproszona automatyzacja kompilacji
Automatyzacja jest osiągana poprzez wykorzystanie farmy kompilacji dla kompilacji rozproszonej lub wykonania kroku narzędziowego. Proces kompilacji rozproszonej musi mieć inteligencję maszynową, aby zrozumieć zależności kodu źródłowego w celu wykonania kompilacji rozproszonej.
Związek z ciągłą dostawą i ciągłą integracją
Automatyzacja kompilacji jest uważana za pierwszy krok w kierunku wdrożenia kultury ciągłego dostarczania i DevOps . Automatyzacja tworzenia w połączeniu z ciągłą integracją , wdrażaniem , automatyzacją wydawania aplikacji i wieloma innymi procesami pomaga organizacji w tworzeniu najlepszych praktyk w zakresie dostarczania oprogramowania.
Zalety
Zalety automatyzacji kompilacji w projektach tworzenia oprogramowania obejmują
- Niezbędny warunek wstępny dla ciągłej integracji i ciągłego testowania
- Popraw jakość produktu
- Przyspiesz kompilację i przetwarzanie linków
- Wyeliminuj zbędne zadania
- Zminimalizuj „złe kompilacje”
- Eliminacja zależności od kluczowego personelu
- Mieć historię kompilacji i wydań, aby badać problemy
- Oszczędzaj czas i pieniądze - z powodów wymienionych powyżej.
Zobacz też
- Automatyzacja wydania aplikacji (ARA)
- Ciągła automatyzacja konfiguracji (CCA)
- Ciągła integracja (CI)
- Ciągłe dostarczanie (CD)
- Ciągłe testowanie
- DevOps
- Lista oprogramowania do automatyzacji kompilacji
- Inżynieria rodziny produktów
- Inżynieria wydania (RE)
- Zarządzanie konfiguracją oprogramowania (SCM)
- Testów jednostkowych