Omówienie funkcji GitHub Actions

Ukończone

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 zweryfikować, czy kod Bicep spełnia twoje standardy jakości, a następnie zautomatyzować działania wdrażania zasobów na platformie Azure. Proces jest definiowany w definicji przepływu pracy , którą tworzysz.

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, jest przechowywany razem z kodem Bicep w repozytorium Git w folderze o nazwie .github/workflows. Plik YAML to plik tekstowy o strukturze, który strukturą przypomina plik tekstowy o strukturze 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 wdrażałeś swoje pliki Bicep z lokalnego komputera. 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. GitHub Actions używa agentów , które są komputerami skonfigurowanymi do wykonywania kroków wdrożeniowych w przepływie pracy. Każdy runner ma już narzędzia Bicep i Azure używane we wcześniejszych modułach, dzięki czemu potrafi robić to samo, co ty z własnego komputera. Zamiast wykonywać polecenia przez człowieka, usługa GitHub Actions instruuje wykonawcę do uruchomienia kroków, które zdefiniowałeś w pliku YAML definiującym przepływ 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 agentami, więc nie trzeba utrzymywać żadnej infrastruktury obliczeniowej dla agentów. Biegacze są czasami nazywane modułami uruchamiającym hostowanymi w usłudze GitHub lub hostowanymi modułami uruchamiającym , ponieważ są one hostowane w Twoim imieniu. Gdy Twój przepływ pracy działa, automatycznie tworzony jest hostowany uruchamiacz. Po zakończeniu działania przepływu pracy hostowany moduł uruchamiający zostanie automatycznie usunięty. Nie masz bezpośredniego dostępu do hostowanych runnerów, dlatego ważne jest, aby przepływ pracy zawierał wszystkie kroki niezbędne do wdrożenia rozwiązania.

Diagram przedstawiający przepływ pracy uruchamiany na runnerze.

Notatka

Możesz utworzyć niestandardowy moduł uruchamiający o nazwie własnego modułu uruchamiającego. 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.

Wyzwalaczy

Używasz wyzwalacza , aby poinstruować GitHub Actions , kiedy uruchomić przepływ pracy. Możesz wybrać spośród wielu typów wyzwalaczy. Na razie użyjesz wyzwalacza ręcznego, aby poinformować GitHub Actions o rozpoczęciu przepływu pracy. W dalszej części tego modułu dowiesz się więcej o innych typach wyzwalaczy.

Diagram przedstawiający wyzwalacz inicjujący przepływ pracy.

Kroki

Krok reprezentuje jedną operację wykonywaną przez przepływ pracy. Krok przypomina pojedyncze polecenie, które uruchamiasz w Bashu lub PowerShellu. 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:

  • krok uruchamiania: możesz użyć kroku uruchamiania, aby uruchomić jedno polecenie lub sekwencję poleceń w Bashu, PowerShellu lub w wierszu poleceń systemu Windows.
  • kroki akcji: krok akcji to wygodny sposób uzyskiwania dostępu do wielu różnych funkcji bez konieczności 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ść.

Zadania

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ń.

Notatka

Każde zadanie można ustawić tak, aby było uruchamiane w innym module uruchamiającym. Uruchamianie zadań na różnych kompilatorach 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.

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 ustawić przepływ pracy, aby uruchamiał dwa zadania jednocześnie, co przyspiesza jego przebieg.

Diagram przedstawiający przepływ pracy z dwoma krokami w ramach jednego zadania.

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 określa, kiedy wykonać przepływ pracy. W takim przypadku on: [workflow_dispatch] informuje mechanizm GitHub Actions, że chcesz ręcznie wyzwolić przepływ pracy.
  • jobs grupuje wszystkie zadania w przepływie pracy.
  • say-hello jest nazwą pierwszego i jedynego zadania w tym przepływie pracy.
  • runs-on instruuje przepływ pracy, którego runnera użyć podczas uruchamiania zadania. W tym przykładzie przepływ pracy jest uruchamiany w systemie operacyjnym Ubuntu, który pochodzi z puli runnerów hostowanych przez 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 ma wartość name, która jest czytelna dla człowieka. Nazwa zostanie wyświetlona w dziennikach przepływu pracy. Aby utworzyć krok skryptu wielowierszowego, użyj znaku pionowej kreski (|), jak pokazano w przykładzie. Po wykonaniu kroku zobaczysz dane wyjściowe w dzienniku przepływu pracy.

Ważny

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ęciach pliku YAML.