Eksplorowanie modułów uruchamiaczy
Moduły uruchamiające usługę GitHub to zasoby obliczeniowe, które wykonują przepływy pracy funkcji GitHub Actions. Każdy moduł uruchamiający może uruchamiać pojedyncze zadanie naraz. Umożliwiają deweloperom wykonywanie zadań kompilacji, testowania i wdrażania bezpośrednio z repozytoriów GitHub. Istnieją dwa główne typy modułów uruchamiającego usługę GitHub:
- Moduły uruchamiającego hostowane w usłudze GitHub są zwirtualizowane lub konteneryzowane zasoby obliczeniowe udostępniane i zarządzane przez usługę GitHub.
- Własne moduły uruchamiające są fizycznymi, zwirtualizowanymi lub konteneryzowanymi zasobami obliczeniowymi, które użytkownicy i organizacje usługi GitHub aprowizują i zarządzają sobą.
Każdy typ ma pewne unikatowe cechy, funkcje wielu różnych możliwości i gwarantuje kilka różnych zagadnień.
Należy pamiętać, że usługa GitHub zdecydowanie zaleca używanie własnych modułów uruchamiających w publicznych repozytoriach. W ten sposób wprowadzono znaczne zagrożenie bezpieczeństwa, ponieważ potencjalnie umożliwia każdemu uruchamianie kodu w środowisku prywatnym organizacji.
Moduły uruchamiane w usłudze GitHub
Moduły uruchamiające hostowane w usłudze GitHub oferują wygodne rozwiązanie do wykonywania przepływów pracy w funkcji GitHub Actions, eliminując konieczność administrowania podstawowymi składnikami sprzętu i oprogramowania. Są one przeznaczone do automatycznego skalowania na podstawie zapotrzebowania, zapewniając optymalną wydajność w okresach szczytowego użycia. Usługa GitHub udostępnia kilka wstępnie skonfigurowanych środowisk dla modułów uruchamiających hostowane w usłudze GitHub, obejmujące różne konfiguracje oprogramowania i systemy operacyjne, w tym Ubuntu Linux, Microsoft Windows i macOS.
Moduły uruchamiane w usłudze GitHub obejmują domyślne wbudowane narzędzia systemu operacyjnego. Na przykład moduły uruchamiane w systemach Ubuntu i macOS obejmują grep, znajdź i które. Aby zidentyfikować wszystkie inne narzędzia wstępnie zainstalowane na modułach uruchamiaczy, użytkownicy mogą przejrzeć rachunek za oprogramowanie materiałów (SBOM) dla każdej kompilacji obrazów modułu uruchamiającego systemy Windows i Ubuntu. Alternatywnie użytkownicy mogą przejrzeć podsekcję Obraz modułu uruchamiającego w sekcji Konfigurowanie zadania w dziennikach przepływu pracy. Link po wpisie Dołączone oprogramowanie zawiera opis wszystkich wstępnie zainstalowanych narzędzi w module uruchamiającym przepływ pracy. Istnieje również możliwość zainstalowania dodatkowego oprogramowania w modułach uruchamiających hostowane w usłudze GitHub przez utworzenie zadania, które instaluje pakiety w ramach istniejącego przepływu pracy.
Moduły uruchamiane w usłudze GitHub w infrastrukturze chmury usługi GitHub, wykorzystując maszyny wirtualne lub kontenery do wykonywania przepływów pracy. Każde wykonanie przepływu pracy jest izolowane we własnym środowisku, zapewniając bezpieczeństwo i powtarzalność. Moduły uruchamiające hostowane w usłudze GitHub bezproblemowo integrują się z funkcją GitHub Actions, umożliwiając użytkownikom bezpośrednie odwołowanie się do nich w ramach przepływów pracy hostowanych w repozytoriach GitHub.
Istnieją pewne limity użycia funkcji GitHub Actions w przypadku korzystania z modułów uruchamiającego hostowane w usłudze GitHub. W szczególności każde zadanie w przepływie pracy ma maksymalnie 6 godzin czasu wykonywania. Jeśli zadanie osiągnie ten limit, zadanie zostanie zakończone i zakończy się niepowodzeniem. Każde uruchomienie przepływu pracy jest ograniczone do 35 dni. Jeśli przebieg przepływu pracy osiągnie ten limit, jego przebieg zostanie anulowany. Ten okres obejmuje czas trwania wykonywania oraz czas spędzony na oczekiwaniu i zatwierdzeniu.
Wymagania wstępne
Przed zaimplementowaniem modułów uruchamianych w usłudze GitHub użytkownicy muszą mieć repozytorium GitHub, w którym mogą definiować przepływy pracy przy użyciu funkcji GitHub Actions. Moduły uruchamiane są dla wszystkich użytkowników usługi GitHub z dostępem do funkcji GitHub Actions.
Implementacja
W przeciwieństwie do własnych modułów uruchamiający, hostowane w usłudze GitHub są automatycznie aprowidowane w ramach indywidualnego wykonywania przepływu pracy. Użytkownicy definiują przepływy pracy jako pliki w formacie YAML przechowywane w katalogu .github/workflows w repozytoriach GitHub. W ramach konfiguracji przepływu pracy użytkownicy określają żądane środowisko modułu uruchamiającego, w tym zależności systemu operacyjnego i oprogramowania. Moduły uruchamiające z zgodnymi specyfikacjami są konfigurowane na żądanie za każdym razem, gdy przepływ pracy zostanie wyzwolony, przy użyciu jednego modułu uruchamiającego na zadanie. Wyzwalacze mogą być wyzwalacze ręczne lub automatyczne na podstawie takich zdarzeń jak wypychania kodu, żądania ściągnięcia lub zdarzenia wysyłania repozytorium.
Moduły uruchamiający hostowane w usłudze GitHub uwierzytelniają się w usłudze GitHub przy użyciu tokenów lub poświadczeń dostarczonych przez funkcję GitHub Actions. Polegają one na wbudowanej łączności w celu komunikowania się z platformą GitHub i pobierania artefaktów przepływu pracy.
Konserwacja
Usługa GitHub zarządza aktualizacjami i konserwacją modułów uruchamiających hostowane w usłudze GitHub, zapewniając aktualność najnowszych wersji oprogramowania i poprawek zabezpieczeń. Narzędzia programowe zawarte w modułach uruchamiaczy są aktualizowane co tydzień. Działania modułu uruchamiającego są monitorowane i rejestrowane, ułatwiają śledzenie wykonywania przepływów pracy i rozwiązywanie problemów.
Licencjonowanie i koszt
Moduły uruchamiający hostowane w usłudze GitHub są uwzględniane w cenach funkcji GitHub Actions z rozliczeniami opartymi na użyciu przez minuty przepływu pracy poza warstwą Bezpłatna. Użytkownicy korzystają z zautomatyzowanego i ekonomicznego skalowania, ponieważ usługa GitHub automatycznie aprowizuje i cofa przydział modułów uruchamiających na podstawie zapotrzebowania.
Moduły uruchamiane samodzielnie
W porównaniu z modułami uruchamiającym hostowane w usłudze GitHub własne zapewniają większą kontrolę i opcje dostosowywania, a środowiska wykonawcze mogą obsłużyć szerszy zakres wymagań. Można je wdrożyć lokalnie lub w chmurze, w zależności od takich kryteriów, jak łączność sieciowa, koszt i dostępność zasobów.
Własne moduły uruchamiacze są aprowizowane i zarządzane przez użytkowników, zapewniając im pełną kontrolę nad środowiskiem wykonywania. Są one w pełni konfigurowalne, w tym specyfikacje sprzętu, konfiguracje oprogramowania i ustawienia sieciowe. Ułatwiają one również integrację z istniejącą infrastrukturą i narzędziami, minimalizując możliwość problemów ze zgodnością i współdziałaniem.
W przeciwieństwie do modułów uruchamianych w usłudze GitHub nie ma ograniczeń czasu potrzebnych do ukończenia poszczególnych zadań i przebiegów przepływu pracy.
Wymagania wstępne
Użytkownicy muszą skonfigurować i skonfigurować własne moduły uruchamiające moduły uruchamiające w wybranej infrastrukturze, w tym instalowanie oprogramowania modułu uruchamiającego i wszelkie dodatkowe zależności oprogramowania. Kod źródłowy dla własnych modułów uruchamiaczy jest dostępny jako projekt open source w witrynie GitHub pod adresem https://github.com/actions/runner. Każdy własny moduł uruchamiający działa jako agent, który komunikuje się z funkcją GitHub Actions w celu wykonywania przepływów pracy.
Moduły uruchamiane samodzielnie wymagają wychodzącej łączności sieciowej, poświadczeń uwierzytelniania i autoryzacji w celu uzyskania dostępu do platformy GitHub oraz pobierania artefaktów przepływu pracy. W zależności od lokalizacji modułów uruchamiaczy może być konieczne skonfigurowanie reguł zapory w celu spełnienia tych wymagań.
Implementacja
Podobnie jak w przypadku modułów uruchamiających hostowane w usłudze GitHub implementacja obejmuje definiowanie przepływów pracy w formacie YAML i przechowywanie ich w katalogu .github/workflows w repozytoriach GitHub. Jednak aby przepływy pracy korzystały z własnych modułów uruchamiaczy, użytkownicy muszą najpierw je zarejestrować, podając wymagane tokeny uwierzytelniania lub poświadczenia. W ramach rejestracji użytkownicy określają takie cechy jak nazwa modułu uruchamiającego, etykiety i parametry środowiska wykonywania.
Rejestracja może odbywać się na różnych poziomach w przedsiębiorstwie:
- Poziom repozytorium (pojedyncze repozytorium)
- Poziom organizacyjny (wiele repozytoriów w organizacji)
- Na poziomie przedsiębiorstwa (wiele organizacji w przedsiębiorstwie)
Konserwacja
Użytkownicy są odpowiedzialni za aktualizowanie i konserwowanie własnych modułów uruchamiających, w tym instalowanie aktualizacji oprogramowania i poprawek zabezpieczeń. Konserwacja obejmuje również monitorowanie kondycji i wydajności modułu uruchamiającego, a także rozwiązywanie wszelkich problemów występujących w całym środowisku uruchomieniowym modułu uruchamiającego.
Licencjonowanie i koszty
Moduły uruchamiane samodzielnie nie powodują naliczania dodatkowych opłat licencyjnych poza cennikiem funkcji GitHub Actions i powiązanych kosztów infrastruktury, w tym zasobów obliczeniowych, magazynu i sieci. Optymalizowanie alokacji zasobów i wykorzystania staje się odpowiedzialnością użytkownika.