Implantar um site Hugo nos Aplicativos Web Estáticos do Azure

Este artigo demonstra como criar e implantar um aplicativo Web Hugo nos Aplicativos Web Estáticos do Azure. O resultado final é um novo Aplicativo Web Estático do Azure com Ações do GitHub associadas que lhe dão controle sobre como o aplicativo é criado e publicado.

Neste tutorial, irá aprender a:

  • Criar uma aplicação Hugo
  • Configurar um Azure Static Web Apps
  • Implantar o aplicativo Hugo no Azure

Se não tiver uma subscrição do Azure, crie uma conta gratuita do Azure antes de começar.

Pré-requisitos

Criar uma App Hugo

Crie um aplicativo Hugo usando a Interface de Linha de Comando (CLI) Hugo:

  1. Siga o guia de instalação do Hugo no seu SO.

  2. Abra um terminal

  3. Execute a CLI do Hugo para criar um novo aplicativo.

    hugo new site static-app
    
  4. Vá para o aplicativo recém-criado.

    cd static-app
    
  5. Inicialize um repositório Git.

    git init
    
  6. Certifique-se de que a sua sucursal tem o nome main.

    git branch -M main
    
  7. Em seguida, adicione um tema ao site instalando um tema como um submódulo git e, em seguida, especificando-o no arquivo de configuração Hugo.

    git submodule add https://github.com/budparr/gohugo-theme-ananke.git themes/ananke
    echo 'theme = "ananke"' >> config.toml
    
  8. Consolide as alterações.

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

Envie seu aplicativo para o GitHub

Você precisa de um repositório no GitHub para se conectar aos Aplicativos Web Estáticos do Azure. As etapas a seguir mostram como criar um repositório para seu site.

  1. Crie um repositório GitHub em branco (não crie um LEIA-ME) a partir do https://github.com/new nome hugo-static-app.

  2. Adicione o repositório GitHub como um remoto ao seu repositório local. Certifique-se de adicionar seu nome de usuário do GitHub no lugar do <YOUR_USER_NAME> espaço reservado no comando a seguir.

    git remote add origin https://github.com/<YOUR_USER_NAME>/hugo-static-app
    
  3. Empurre seu repositório local para o GitHub.

    git push --set-upstream origin main
    

Implantar seu aplicativo Web

As etapas a seguir mostram como criar um novo aplicativo de site estático e implantá-lo em um ambiente de produção.

Criar a aplicação

  1. Aceda ao Portal do Azure

  2. Selecione Criar um recurso

  3. Procure Aplicações Web Estáticas

  4. Selecionar aplicativos Web estáticos

  5. Selecione Criar

  6. Na guia Noções básicas, insira os seguintes valores.

    Property valor
    Subscrição Seu nome de assinatura do Azure.
    Grupo de recursos meu-hugo-grupo
    Nome hugo-static-app
    Tipo de plano Gratuito
    Região para API do Azure Functions e ambientes de preparo Selecione a região mais próxima de si.
    Source GitHub
  7. Selecione Entrar com o GitHub e autentique-se com o GitHub.

  8. Insira os seguintes valores do GitHub.

    Property valor
    Organização Selecione sua organização desejada no GitHub.
    Repositório Selecione hugo-static-app.
    Ramo Selecione principal.

    Nota

    Se você não vir nenhum repositório, talvez seja necessário autorizar os Aplicativos Web Estáticos do Azure no GitHub. Navegue até o repositório do GitHub e vá para Configurações de Aplicativos > OAuth Autorizados, selecione Aplicativos Web Estáticos do Azure e selecione Conceder>. Para repositórios de organização, você deve ser um proprietário da organização para conceder as permissões.

  9. Na seção Detalhes da compilação, selecione Hugo na lista suspensa Predefinições de compilação e mantenha os valores padrão.

Rever e criar

  1. Selecione Rever + Criar para verificar se os detalhes estão corretos.

  2. Selecione Criar para iniciar a criação do Aplicativo Web Estático do Serviço de Aplicativo e provisionar uma Ação do GitHub para implantação.

  3. Quando a implantação for concluída, selecione Ir para o recurso.

  4. Na tela de recurso, selecione o link de URL para abrir seu aplicativo implantado. Talvez seja necessário aguardar um ou dois minutos para que as Ações do GitHub sejam concluídas.

    Deployed application

Versão personalizada do Hugo

Quando você gera um aplicativo Web estático, um arquivo de fluxo de trabalho é gerado que contém as definições de configuração de publicação para o aplicativo. Você pode designar uma versão específica do Hugo no arquivo de fluxo de trabalho fornecendo um valor para HUGO_VERSION na env seção . O exemplo de configuração a seguir demonstra como definir Hugo para uma versão específica.

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

Use o recurso Git Info em seu aplicativo Hugo

Se seu aplicativo Hugo usa o recurso Git Info, o arquivo de fluxo de trabalho padrão criado para o Static Web App usa a ação GitHub de checkout para buscar uma versão superficial do repositório Git, com uma profundidade padrão de 1. Nesse cenário, Hugo vê todos os seus arquivos de conteúdo como provenientes de uma única confirmação, portanto, eles têm o mesmo autor, carimbo de data/hora da última modificação e outras .GitInfo variáveis.

Atualize seu arquivo de fluxo de trabalho para buscar seu histórico completo do Git adicionando um novo parâmetro na actions/checkout etapa para definir o fetch-depth como 0 (sem limite):

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

Obter o histórico completo aumenta o tempo de construção do seu fluxo de trabalho de Ações do GitHub, mas suas .Lastmod variáveis e .GitInfo são precisas e estão disponíveis para cada um dos seus arquivos de conteúdo.

Clean up resources (Limpar recursos)

Se não pretender continuar a utilizar esta aplicação, pode eliminar o recurso Azure Static Web App através dos seguintes passos:

  1. Abra o portal do Azure
  2. Na barra de pesquisa superior, procure a sua aplicação pelo nome que forneceu anteriormente
  3. Clique no aplicativo
  4. Clique no botão Excluir
  5. Clique em Sim para confirmar a ação de exclusão

Próximos passos