Omówienie funkcji GitHub Actions
Kroki procesu wdrażania można zautomatyzować przy użyciu przepływu pracy. Za każdym razem, gdy wprowadzisz zmianę w kodzie i zatwierdź zmianę w repozytorium Git, przepływ pracy uruchamia wstępnie zdefiniowany proces. Przepływ pracy może sprawdzić, czy kod Bicep spełnia twoje standardy jakości, a następnie zautomatyzować akcje wdrażania zasobów na platformie Azure. Proces jest definiowany w utworzonej definicji przepływu pracy.
Funkcja GitHub Actions to funkcja usługi GitHub. Usługa GitHub hostuje również repozytoria Git używane do przechowywania i udostępniania kodu współpracownikom. Gdy przechowujesz kod Bicep w usłudze GitHub, funkcja GitHub Actions może uzyskać dostęp do kodu w celu zautomatyzowania procesów wdrażania. W tej lekcji dowiesz się więcej o funkcji GitHub Actions.
Co to jest przepływ pracy?
Przepływ pracy to konfigurowalny powtarzalny proces zdefiniowany w pliku używanym do testowania i wdrażania kodu. Przepływ pracy składa się ze wszystkich kroków w odpowiedniej kolejności, które należy wykonać.
Podczas pracy z funkcją GitHub Actions należy zdefiniować konfigurację przepływu pracy w pliku YAML. Ponieważ plik YAML przepływu pracy jest plikiem kodu, plik jest przechowywany z kodem Bicep w repozytorium Git w folderze o nazwie .github/workflows
. Plik YAML to plik tekstowy ze strukturą podobny do pliku tekstowego ze strukturą Bicep. Plik YAML można utworzyć i edytować za pomocą dowolnego edytora tekstów. W tym module użyjesz programu Visual Studio Code jako edytora. Interfejs internetowy usługi GitHub udostępnia narzędzia umożliwiające wyświetlanie i edytowanie pliku YAML przepływu pracy, współpracę nad definicją przepływu pracy oraz zarządzanie różnymi wersjami pliku przepływu pracy przy użyciu zatwierdzeń i gałęzi.
Biegaczy
Do tej pory pliki Bicep zostały wdrożone z komputera lokalnego. Po napisaniu szablonu Bicep wdrożysz go na platformie Azure przy użyciu interfejsu wiersza polecenia platformy Azure lub programu Azure PowerShell. Te narzędzia używają zasobów komputera do przesyłania szablonu na platformę Azure. Używają twojej tożsamości osobistej do uwierzytelniania na platformie Azure i do sprawdzania, czy masz uprawnienia do wdrażania zasobów.
Przepływ pracy wymaga również dostępu do komputera lub procesora GPU z poprawnym systemem operacyjnym i platformą sprzętową, aby umożliwić wykonywanie akcji wdrażania. Funkcja GitHub Actions używa modułów uruchamiających, które są komputerami skonfigurowanymi do uruchamiania kroków wdrażania dla przepływu pracy. Każdy moduł uruchamiający ma już narzędzia Bicep i Platformy Azure używane we wcześniejszych modułach, dzięki czemu może wykonywać te same czynności z poziomu własnego komputera. Zamiast wykonywać polecenia przez człowieka, usługa GitHub Actions instruuje moduł uruchamiający kroki zdefiniowane w pliku YAML przepływu pracy.
Funkcja GitHub Actions udostępnia wiele typów modułów uruchamiaczy dla różnych systemów operacyjnych, takich jak Linux lub Windows, oraz różne zestawy narzędzi. Usługa GitHub zarządza tymi modułami uruchamiającym, więc nie trzeba utrzymywać żadnej infrastruktury obliczeniowej dla modułów uruchamiaczy. Moduły uruchamiającego są czasami nazywane modułami uruchamiającym hostowane w usłudze GitHub lub hostowanymi modułami uruchamiającym, ponieważ są hostowane w Twoim imieniu. Po uruchomieniu przepływu pracy hostowany moduł uruchamiający jest tworzony automatycznie. Po zakończeniu działania przepływu pracy hostowany moduł uruchamiający zostanie automatycznie usunięty. Nie można uzyskać bezpośredniego dostępu do hostowanych modułów uruchamiających, dlatego ważne jest, aby przepływ pracy zawierał wszystkie kroki niezbędne do wdrożenia rozwiązania.
Uwaga
Możesz utworzyć niestandardowy moduł uruchamiający, który jest nazywany własnym modułem uruchamiającym. Możesz utworzyć własny moduł uruchamiający, jeśli masz określone oprogramowanie, które należy uruchomić w ramach przepływu pracy, lub jeśli musisz dokładnie kontrolować sposób konfigurowania modułu uruchamiającego. W tym module nie omawiamy modułów uruchamianych samodzielnie, ale udostępniamy link do dodatkowych informacji w sekcji Podsumowanie.
Wyzwalacze
Wyzwalacz służy do instruowania funkcji GitHub Actions, kiedy należy uruchomić przepływ pracy. Możesz wybrać spośród wielu typów wyzwalaczy. Na razie użyjesz wyzwalacza ręcznego, aby poinformować funkcję GitHub Actions o rozpoczęciu uruchamiania przepływu pracy. W dalszej części tego modułu dowiesz się więcej o innych typach wyzwalaczy.
Kroki
Krok reprezentuje jedną operację wykonywaną przez przepływ pracy. Krok jest podobny do pojedynczego polecenia uruchamianego w powłoce Bash lub PowerShell. W przypadku większości wdrożeń należy wykonać kilka kroków w sekwencji. Należy zdefiniować sekwencję i wszystkie szczegóły każdego kroku w pliku YAML przepływu pracy.
Funkcja GitHub Actions oferuje dwa typy kroków:
- Kroki uruchamiania: możesz użyć kroku uruchamiania, aby uruchomić pojedyncze polecenie lub sekwencję poleceń w powłoce poleceń Bash, PowerShell lub powłoce poleceń systemu Windows.
- Kroki akcji: Krok akcji to wygodny sposób uzyskiwania dostępu do wielu różnych możliwości bez pisania instrukcji skryptu. Na przykład istnieje wbudowane zadanie wdrażania plików Bicep na platformie Azure. Każdy może napisać akcję i udostępnić ją innym użytkownikom. Dostępny jest duży zestaw zadań komercyjnych i open source.
Niektóre osoby wolą używać instrukcji skryptu zamiast akcji, ponieważ oferują większą kontrolę nad wykonywanymi operacjami. Inne osoby wolą używać akcji, aby nie musieli pisać skryptów i zarządzać nimi. W tym module użyjemy kombinacji obu podejść.
Stanowiska
W funkcji GitHub Actions zadanie reprezentuje uporządkowany zestaw kroków. Zawsze masz co najmniej jedno zadanie w przepływie pracy i często występuje więcej niż jedno zadanie podczas tworzenia złożonych wdrożeń.
Uwaga
Każde zadanie można ustawić tak, aby było uruchamiane w innym module uruchamiającym. Uruchamianie zadań na różnych modułach uruchamiających jest przydatne podczas tworzenia i wdrażania rozwiązań, które muszą używać różnych systemów operacyjnych w różnych częściach przepływu pracy zadania.
Załóżmy na przykład, że tworzysz aplikację dla systemu iOS i usługę zaplecza aplikacji. Może istnieć jedno zadanie uruchamiane w module uruchamiającym system macOS w celu skompilowania aplikacji systemu iOS i innego zadania uruchamianego w module uruchamiającym system Ubuntu lub Windows w celu skompilowania zaplecza. Możesz nawet poinformować przepływ pracy, aby uruchamiał dwa zadania jednocześnie, co przyspiesza wykonywanie przepływu pracy.
Przykład podstawowego przepływu pracy
Teraz, gdy znasz podstawowe pojęcia dotyczące funkcji GitHub Actions, przyjrzyjmy się prostej definicji przepływu pracy w języku YAML:
name: learn-github-actions
on: [workflow_dispatch]
jobs:
say-hello:
runs-on: ubuntu-latest
steps:
- name: 'Run a one-line command'
run: echo "hello from GitHub Actions"
- name: 'Run a multi-line command'
run: |
echo "We'll add more steps soon."
echo "For example, we'll add our Bicep deployment step."
Przyjrzyjmy się szczegółowo każdej części pliku:
name
to nazwa przepływu pracy. Nazwa jest wyświetlana w interfejsie internetowym usługi GitHub.on
informuje o tym, kiedy należy wykonać przepływ pracy. W takim przypadku informuje funkcję GitHub Actions,on: [workflow_dispatch]
że chcesz ręcznie wyzwolić przepływ pracy.jobs
grupuje wszystkie zadania w przepływie pracy.say-hello
to nazwa pierwszego i jedynego zadania w tym przepływie pracy.runs-on
instruuje przepływ pracy, którego moduł uruchamiający, gdy uruchamia zadanie. W tym przykładzie przepływ pracy jest uruchamiany w systemie operacyjnym Ubuntu, który pochodzi z puli modułów uruchamiających hostowane w usłudze GitHub.steps
Wyświetla sekwencję kroków do uruchomienia w zadaniu. Przykładowy kod YAML zawiera dwa kroki. Oba kroki uruchamiają prosty skrypt, aby powtórzyć tekst. Każdy krok maname
wartość, która jest czytelna dla człowieka. Nazwa zostanie wyświetlona w dziennikach przepływu pracy. Aby utworzyć krok skryptu wielowierszowego, użyj znaku potoku (|
), jak pokazano w przykładzie. Po wykonaniu kroku zobaczysz dane wyjściowe w dzienniku przepływu pracy.
Ważne
W plikach YAML wcięcie jest ważne. Przyjrzyj się przykładowi YAML. Niektóre wiersze w języku YAML są wcięcione przez dwa lub cztery spacje. Jeśli plik nie zostanie poprawnie wcięt, funkcja GitHub Actions nie będzie mogła go zinterpretować. Program Visual Studio Code ułatwia znajdowanie i naprawianie błędów w wcięcie pliku YAML.