Ćwiczenie — tworzenie przepływu pracy dla żądania ściągnięcia
Zespół deweloperów witryny internetowej poprosił Cię o zaktualizowanie witryny internetowej do uruchomienia w systemie operacyjnym Linux. W tym ćwiczeniu dodasz przepływ pracy weryfikacji, który jest uruchamiany automatycznie po otwarciu lub zaktualizowaniu żądania ściągnięcia. Następnie utworzysz żądanie ściągnięcia dla zmiany systemu operacyjnego witryny internetowej.
Podczas tego procesu wykonasz następujące czynności:
- Utwórz przepływ pracy na potrzeby weryfikacji żądania ściągnięcia.
- Dodaj linting Bicep do przepływu pracy.
- Utwórz żądanie ściągnięcia i obejrzyj przebieg przepływu pracy.
- Napraw wszelkie błędy identyfikowane przez przepływ pracy weryfikacji żądania ściągnięcia.
- Uruchom ponownie przepływ pracy, a następnie scal i zamknij żądanie ściągnięcia.
Tworzenie przepływu pracy do uruchamiania po utworzeniu i zaktualizowaniu żądań ściągnięcia
W programie Visual Studio Code utwórz nowy plik o nazwie pr-validation.yml w folderze .github/workflows .
Dodaj następujący kod do pliku:
name: pr-validation on: pull_request
Ten kod gwarantuje, że przepływ pracy jest wykonywany za każdym razem, gdy żądanie ściągnięcia zostanie utworzone lub zaktualizowane.
Uwaga
Pracujesz bezpośrednio z gałęzią główną repozytorium. Zwykle tego nie zrobisz, ale w tym ćwiczeniu będziesz pracować z głównymi elementami, aby uprościć kroki. We własnych projektach ważne jest skonfigurowanie reguł ochrony gałęzi w celu ochrony głównej gałęzi.
Dodawanie zadania lint do przepływu pracy
Za każdym razem, gdy otworzysz lub edytujesz żądanie ściągnięcia, chcesz uruchomić krok lintingu dla plików Bicep. W repozytorium istnieje przepływ pracy wielokrotnego użytku , który można wywołać z tego przepływu pracy.
Na końcu istniejącej zawartości pliku, aby ponownie użyć przepływu pracy lint zdefiniowanego w repozytorium, dodaj następujące wiersze:
jobs: lint: uses: ./.github/workflows/lint.yml
Repozytorium zawiera plik bicepconfig.json , który konfiguruje linter do emitowania błędów zamiast ostrzeżeń, więc wszelkie błędy podczas zadania lint spowodują niepowodzenie przepływu pracy.
Zapisz zmiany.
Zatwierdź i wypchnij zmiany do głównej gałęzi repozytorium Git, uruchamiając następujące polecenia w terminalu programu Visual Studio Code:
git add . git commit -m "Add first version of pull request validation workflow" git push
Aktualizowanie pliku Bicep
Następnie zmodyfikuj plik Bicep witryny internetowej, aby zaktualizować system operacyjny witryny internetowej do systemu Linux.
W terminalu programu Visual Studio Code utwórz nową gałąź dla zmian, uruchamiając następujące polecenie:
git checkout -b feature/linux-app
Otwórz plik main.bicep w folderze deploy.
W górnej części pliku poniżej definicji zmiennych zdefiniuj nową zmienną, która ma być używana przez strukturę aplikacji:
// Define the names for resources. var appServiceAppName = 'toy-website-linux-${resourceNameSuffix}' var appServicePlanName = 'toy-website-linux' var storageAccountName = 'mystorage${resourceNameSuffix}' var appServiceAppLinuxFrameworkVersion = 'node|14-lts'
To ustawienie informuje aplikacja systemu Azure Service, że aplikacja zostanie skompilowana przy użyciu wersji 14 platformy Node.js.
Zaktualizuj definicję
appServicePlan
zasobu.kind
Dodaj właściwość ireserved
właściwość wproperties
obiekcie :resource appServicePlan 'Microsoft.Web/serverfarms@2022-03-01' = { name: appServicePlanName location: location sku: environmentConfigurationMap[environmentType].appServicePlan.sku kind: 'linux' properties: { reserved: true } }
Zaktualizuj definicję zasobu,
appServiceApp
aby ustawić strukturę aplikacji:resource appServiceApp 'Microsoft.Web/sites@2022-03-01' = { name: appServiceAppName location: location properties: { serverFarmId: appServicePlan.id httpsOnly: true siteConfig: { linuxFxVersion: 'node|14-lts' } } }
Uwaga
Możesz zauważyć, że Bicep ostrzega, że nie używasz zmiennej
appServiceAppLinuxFrameworkVersion
. W tym miejscu celowo powodujesz błąd linter, aby zobaczyć, jak wygląda w żądaniu ściągnięcia usługi GitHub.Zapisz zmiany.
Zatwierdź i wypchnij zmiany do repozytorium Git, uruchamiając następujące polecenia w terminalu programu Visual Studio Code:
git add . git commit -m "Update operating system to Linux" git push origin feature/linux-app
Tworzenie żądania ściągnięcia
Po skonfigurowaniu przepływu pracy i zaktualizowaniu pliku Bicep możesz utworzyć żądanie ściągnięcia.
W przeglądarce wybierz pozycję Kod.
Wybierz 2 gałęzie , aby otworzyć listę gałęzi w repozytorium GitHub.
Porównanie i żądanie ściągnięcia jest wyświetlane przez krótki czas, gdy wypychasz zmiany do gałęzi, która nie ma jeszcze otwartego żądania ściągnięcia. Jest to skrót do strony Otwieranie żądania ściągnięcia.
Obok gałęzi feature/linux-app wybierz pozycję Nowe żądanie ściągnięcia. Może być konieczne wybranie ikony Więcej (...), aby wyświetlić opcję Nowe żądanie ściągnięcia.
Wybierz pozycję Utwórz żądanie ściągnięcia.
Zostanie wyświetlona strona szczegółów żądania ściągnięcia.
Wyświetl sekcję Kontrole szczegółów żądania ściągnięcia.
Po chwili zwróć uwagę, że jest wyzwalane automatyczne sprawdzanie. Sprawdzanie uruchamia przepływ pracy weryfikacji żądania ściągnięcia.
Uruchomienie przepływu pracy może zająć trochę czasu. Odśwież okno przeglądarki do momentu wyświetlenia kontroli stanu.
Po zakończeniu sprawdzania widać, że nie powiodło się.
Uwaga
Usługa GitHub umożliwia scalenie żądania ściągnięcia, mimo że sprawdzanie stanu nie powiodło się. W rzeczywistym rozwiązaniu należy skonfigurować regułę ochrony gałęzi, aby zapobiec scaleniu żądania ściągnięcia do momentu pomyślnego sprawdzenia stanu.
Naprawianie błędów walidacji żądania ściągnięcia
W okienku sprawdzania stanu wybierz pozycję Szczegóły , aby sprawdzić dziennik przepływu pracy.
Dziennik zawiera ten komunikat z lintera Bicep:
Error no-unused-vars: Variable "appServiceAppLinuxFrameworkVersion" is declared but never used.
W programie Visual Studio Code otwórz plik deploy/main.bicep .
W wierszu 20 istnieje zmienna o nazwie
appServiceAppLinuxFrameworkVersion
. Zmienna nie jest używana. Następnie naprawisz ten błąd.appServiceApp
W definicji zasobu zaktualizujlinuxFxVersion
właściwość , aby użyć zmiennej, zamiast ustawiać właściwość na wartość zakodowaną na sztywno:resource appServiceApp 'Microsoft.Web/sites@2022-03-01' = { name: appServiceAppName location: location properties: { serverFarmId: appServicePlan.id httpsOnly: true siteConfig: { linuxFxVersion: appServiceAppLinuxFrameworkVersion } } }
W terminalu programu Visual Studio Code zatwierdź zmiany i wypchnij je do repozytorium.
git add . git commit -m "Fix Bicep file" git push origin feature/linux-app
Monitorowanie i scalanie żądania ściągnięcia
Otwórz ponownie przeglądarkę na stronie szczegółów żądania ściągnięcia.
Walidacja żądania ściągnięcia zostanie uruchomiona ponownie. Jeśli sprawdzanie stanu nie jest uruchomione, odśwież stronę.
Poczekaj na zakończenie sprawdzania. Tym razem to się powiedzie. W pliku Bicep nie ma żadnych błędów składni ani linter, więc możesz scalić żądanie ściągnięcia.
Wybierz pozycję Scal żądanie ściągnięcia, aby zamknąć żądanie ściągnięcia i scalić zmiany w gałęzi głównej.
Wybierz pozycję Potwierdź scalanie.