Distribuera en Hugo-webbplats till Azure Static Web Apps

Den här artikeln visar hur du skapar och distribuerar en Hugo-webbapp till Azure Static Web Apps. Slutresultatet är en ny Azure Static Web App med tillhörande GitHub Actions som ger dig kontroll över hur appen skapas och publiceras.

I den här självstudien lär du dig att:

  • Skapa en Hugo-app
  • Konfigurera en Azure Static Web Apps
  • Distribuera Hugo-appen till Azure

Om du inte har en Azure-prenumeration skapar du ett kostnadsfritt Azure-konto innan du börjar.

Förutsättningar

Skapa en Hugo-app

Skapa en Hugo-app med hjälp av Cli (Hugo Command Line Interface):

  1. Följ installationsguiden för Hugo i operativsystemet.

  2. Öppna en terminal

  3. Kör Hugo CLI för att skapa en ny app.

    hugo new site static-app
    
  4. Gå till den nyligen skapade appen.

    cd static-app
    
  5. Initiera en Git-lagringsplats.

    git init
    
  6. Kontrollera att din gren heter main.

    git branch -M main
    
  7. Lägg sedan till ett tema på webbplatsen genom att installera ett tema som en git-undermodul och sedan ange det i Hugo-konfigurationsfilen.

    git submodule add https://github.com/budparr/gohugo-theme-ananke.git themes/ananke
    echo 'theme = "ananke"' >> config.toml
    
  8. Genomför ändringarna.

    git add -A
    git commit -m "initial commit"
    

Skicka ditt program till GitHub

Du behöver en lagringsplats på GitHub för att ansluta till Azure Static Web Apps. Följande steg visar hur du skapar en lagringsplats för din webbplats.

  1. Skapa en tom GitHub-lagringsplats (skapa inte en README) från https://github.com/new med namnet hugo-static-app.

  2. Lägg till GitHub-lagringsplatsen som en fjärranslutning till din lokala lagringsplats. Se till att lägga till ditt GitHub-användarnamn i stället för <YOUR_USER_NAME> platshållaren i följande kommando.

    git remote add origin https://github.com/<YOUR_USER_NAME>/hugo-static-app
    
  3. Push-överför din lokala lagringsplats till GitHub.

    git push --set-upstream origin main
    

Distribuera din webbapp

Följande steg visar hur du skapar en ny statisk webbplatsapp och distribuerar den till en produktionsmiljö.

Skapa programmet

  1. Gå till Azure Portal

  2. Välj Skapa en resurs

  3. Sök efter Statiska webbappar

  4. Välj Statiska webbappar

  5. Välj Skapa

  6. På fliken Grundläggande anger du följande värden.

    Property Värde
    Abonnemang Ditt Azure-prenumerationsnamn.
    Resursgrupp my-hugo-group
    Namn hugo-static-app
    Plantyp Kostnadsfri
    Region för Azure Functions API och mellanlagringsmiljöer Välj en region som är närmast dig.
    Source GitHub
  7. Välj Logga in med GitHub och autentisera med GitHub.

  8. Ange följande GitHub-värden.

    Property Värde
    Organisation Välj önskad GitHub-organisation.
    Lagringsplats Välj hugo-static-app.
    Gren Välj huvud.

    Kommentar

    Om du inte ser några lagringsplatser kan du behöva auktorisera Azure Static Web Apps på GitHub. Bläddra till din GitHub-lagringsplats och gå till Inställningar > Program > auktoriserade OAuth-appar, välj Azure Static Web Apps och välj sedan Bevilja. För organisationens lagringsplatser måste du vara ägare till organisationen för att bevilja behörigheterna.

  9. I avsnittet Bygginformation väljer du Hugo i listrutan Build Presets (Skapa förinställningar) och behåller standardvärdena.

Granska och skapa

  1. Välj Granska + Skapa för att kontrollera att informationen är korrekt.

  2. Välj Skapa för att starta skapandet av apptjänstens statiska webbapp och etablera en GitHub Actions för distribution.

  3. När distributionen är klar väljer du Gå till resurs.

  4. På resursskärmen väljer du URL-länken för att öppna ditt distribuerade program. Du kan behöva vänta en minut eller två tills GitHub Actions har slutförts.

    Deployed application

Anpassad Hugo-version

När du genererar en statisk webbapp genereras en arbetsflödesfil som innehåller publiceringskonfigurationsinställningarna för programmet. Du kan ange en specifik Hugo-version i arbetsflödesfilen genom att ange ett värde för HUGO_VERSION i env avsnittet. Följande exempelkonfiguration visar hur du ställer in Hugo på en viss version.

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

Använda Git Info-funktionen i ditt Hugo-program

Om ditt Hugo-program använder Git Info-funktionen använder standardarbetsflödesfilensom skapats för den statiska webbappen GitHub-åtgärden i kassan för att hämta en grund version av Git-lagringsplatsen med standarddjupet 1. I det här scenariot ser Hugo att alla dina innehållsfiler kommer från en enda incheckning, så de har samma författare, tidsstämpel för senaste ändring och andra .GitInfo variabler.

Uppdatera arbetsflödesfilen för att hämta din fullständiga Git-historik genom att lägga till en ny parameter under actions/checkout steget för att ange fetch-depth till 0 (ingen gräns):

      - uses: actions/checkout@v3
        with:
          submodules: true
          fetch-depth: 0

Om du hämtar hela historiken ökar byggtiden för ditt GitHub Actions-arbetsflöde, men dina .Lastmod variabler och .GitInfo variabler är korrekta och tillgängliga för var och en av dina innehållsfiler.

Rensa resurser

Om du inte kommer att fortsätta att använda det här programmet kan du ta bort Azure Static Web App-resursen genom följande steg:

  1. Öppna Azure-portalen
  2. I det övre sökfältet söker du efter ditt program efter det namn som du angav tidigare
  3. Klicka på appen
  4. Klicka på knappen Ta bort
  5. Klicka på Ja för att bekräfta borttagningsåtgärden

Nästa steg