Wdrażanie witryny Hugo w usłudze Azure Static Web Apps
W tym artykule pokazano, jak utworzyć i wdrożyć aplikację internetową Hugo w usłudze Azure Static Web Apps. Końcowy wynik to nowa statyczna aplikacja internetowa platformy Azure ze skojarzonymi funkcjami GitHub Actions, która zapewnia kontrolę nad sposobem tworzenia i publikowania aplikacji.
Z tego samouczka dowiesz się, jak wykonywać następujące czynności:
- Tworzenie aplikacji Hugo
- Konfigurowanie usługi Azure Static Web Apps
- Wdrażanie aplikacji Hugo na platformie Azure
Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto platformy Azure.
Wymagania wstępne
- Konto platformy Azure z aktywną subskrypcją. Jeśli go nie masz, możesz bezpłatnie utworzyć konto.
- Konto usługi GitHub. Jeśli go nie masz, możesz bezpłatnie utworzyć konto.
- Zainstalowano instalatora usługi Git. Jeśli go nie masz, możesz zainstalować narzędzie Git.
Tworzenie aplikacji Hugo
Tworzenie aplikacji Hugo przy użyciu interfejsu wiersza polecenia hugo:
Postępuj zgodnie z przewodnikiem instalacji platformy Hugo w systemie operacyjnym.
Otwieranie terminalu
Uruchom interfejs wiersza polecenia Platformy Hugo, aby utworzyć nową aplikację.
hugo new site static-app
Przejdź do nowo utworzonej aplikacji.
cd static-app
Inicjowanie repozytorium Git.
git init
Upewnij się, że gałąź ma nazwę
main
.git branch -M main
Następnie dodaj motyw do witryny, instalując motyw jako moduł podrzędny git, a następnie określając go w pliku konfiguracji Hugo.
git submodule add https://github.com/budparr/gohugo-theme-ananke.git themes/ananke echo 'theme = "ananke"' >> config.toml
Zatwierdź zmiany.
git add -A git commit -m "initial commit"
Wypychanie aplikacji do usługi GitHub
Aby nawiązać połączenie z usługą Azure Static Web Apps, potrzebujesz repozytorium w usłudze GitHub. W poniższych krokach pokazano, jak utworzyć repozytorium dla witryny.
Utwórz puste repozytorium GitHub (nie twórz pliku README) na podstawie https://github.com/new nazwy hugo-static-app.
Dodaj repozytorium GitHub jako repozytorium zdalne do lokalnego repozytorium. Pamiętaj, aby dodać nazwę użytkownika usługi GitHub zamiast symbolu zastępczego
<YOUR_USER_NAME>
w poniższym poleceniu.git remote add origin https://github.com/<YOUR_USER_NAME>/hugo-static-app
Wypchnij lokalne repozytorium do usługi GitHub.
git push --set-upstream origin main
Wdrażanie aplikacji internetowej
W poniższych krokach pokazano, jak utworzyć nową aplikację witryny statycznej i wdrożyć ją w środowisku produkcyjnym.
Tworzenie aplikacji
Przejdź do witryny Azure Portal.
Wybieranie pozycji Utwórz zasób
Wyszukaj usługę Static Web Apps
Wybieranie pozycji Static Web Apps
Wybierz pozycję Utwórz
Na karcie Podstawy wprowadź następujące wartości.
Właściwości Wartość Subskrypcja Nazwa subskrypcji platformy Azure. Grupa zasobów: my-hugo-group Nazwa/nazwisko hugo-static-app Typ planu Bezpłatna Region dla interfejsu API usługi Azure Functions i środowisk przejściowych Wybierz region najbliżej Ciebie. Source GitHub Wybierz pozycję Zaloguj się przy użyciu usługi GitHub i uwierzytelnij się przy użyciu usługi GitHub.
Wprowadź następujące wartości usługi GitHub.
Właściwości Wartość Organizacja Wybierz żądaną organizację usługi GitHub. Repozytorium Wybierz pozycję hugo-static-app. Gałąź Wybierz pozycję main. Uwaga
Jeśli nie widzisz żadnych repozytoriów, może być konieczne autoryzowanie usługi Azure Static Web Apps w usłudze GitHub. Przejdź do repozytorium GitHub i przejdź do pozycji aplikacje Ustawienia > Autoryzowane aplikacje> OAuth, wybierz pozycję Azure Static Web Apps, a następnie wybierz pozycję Udziel. W przypadku repozytoriów organizacji musisz być właścicielem organizacji, aby udzielić uprawnień.
W sekcji Szczegóły kompilacji wybierz pozycję Hugo z listy rozwijanej Ustawienia wstępne kompilacji i zachowaj wartości domyślne.
Przegląd i tworzenie
Wybierz pozycję Przejrzyj i utwórz , aby sprawdzić, czy wszystkie szczegóły są poprawne.
Wybierz pozycję Utwórz , aby rozpocząć tworzenie statycznej aplikacji internetowej usługi App Service i aprowizować funkcję GitHub Actions na potrzeby wdrożenia.
Po zakończeniu wdrażania wybierz pozycję Przejdź do zasobu.
Na ekranie zasobu wybierz link URL , aby otworzyć wdrożona aplikację. Może być konieczne odczekanie minuty lub dwóch na ukończenie funkcji GitHub Actions.
Niestandardowa wersja hugo
Podczas generowania statycznej aplikacji internetowej jest generowany plik przepływu pracy zawierający ustawienia konfiguracji publikowania dla aplikacji. Określoną wersję Hugo można wyznaczyć w pliku przepływu pracy, podając wartość w HUGO_VERSION
env
sekcji . Poniższa przykładowa konfiguracja pokazuje, jak ustawić hugo na określoną wersję.
jobs:
build_and_deploy_job:
if: github.event_name == 'push' || (github.event_name == 'pull_request' && github.event.action != 'closed')
runs-on: ubuntu-latest
name: Build and Deploy Job
steps:
- uses: actions/checkout@v3
with:
submodules: true
- name: Build And Deploy
id: builddeploy
uses: Azure/static-web-apps-deploy@v1
with:
azure_static_web_apps_api_token: ${{ secrets.AZURE_STATIC_WEB_APPS_API_TOKEN }}
repo_token: ${{ secrets.GITHUB_TOKEN }} # Used for GitHub integrations (i.e. PR comments)
action: "upload"
###### Repository/Build Configurations - These values can be configured to match you app requirements. ######
# For more information regarding Static Web App workflow configurations, please visit: https://aka.ms/swaworkflowconfig
app_location: "/" # App source code path
api_location: "api" # Api source code path - optional
output_location: "public" # Built app content directory - optional
###### End of Repository/Build Configurations ######
env:
HUGO_VERSION: 0.58.0
Korzystanie z funkcji Git Info w aplikacji Hugo
Jeśli aplikacja Hugo korzysta z funkcji Git Info, domyślny plik przepływu pracy utworzony dla statycznej aplikacji internetowej używa akcji wyewidencjonowania usługi GitHub w celu pobrania płytkiej wersji repozytorium Git z domyślną głębokością 1. W tym scenariuszu Hugo widzi wszystkie pliki zawartości pochodzące z jednego zatwierdzenia, dlatego mają ten sam autor, znacznik czasu ostatniej modyfikacji i inne .GitInfo
zmienne.
Zaktualizuj plik przepływu pracy, aby pobrać pełną historię usługi Git, dodając nowy parametr w actions/checkout
kroku, aby ustawić wartość na 0
(bez limitufetch-depth
):
- uses: actions/checkout@v3
with:
submodules: true
fetch-depth: 0
Pobieranie pełnej historii zwiększa czas kompilacji przepływu pracy funkcji GitHub Actions, ale .Lastmod
zmienne i .GitInfo
są dokładne i dostępne dla każdego z plików zawartości.
Czyszczenie zasobów
Jeśli nie zamierzasz nadal korzystać z tej aplikacji, możesz usunąć zasób statycznej aplikacji internetowej platformy Azure, wykonując następujące kroki:
- Otwórz witrynę Azure Portal .
- Na górnym pasku wyszukiwania wyszukaj aplikację według podanej wcześniej nazwy
- Kliknij aplikację
- Kliknij przycisk Usuń
- Kliknij przycisk Tak , aby potwierdzić akcję usuwania