# Implantando seu site automaticamente

Automatize sua implantação de código com GitHub Actions e GitHub Pages publique atualizações em um site dinâmico a cada push para o branch principal.

Sua funcionalidade foi incorporada, então agora você pode compartilhá-la. Neste tutorial, você configurará a implantação automática para que cada envio para `main` publique seu projeto de software em um site em produção.

> \[!NOTE]
> A URL do seu site GitHub Pages depende de qual versão de GitHub você usa.
>
> * Em GitHub.com, seu site foi publicado em `YOUR-USERNAME.github.io/REPOSITORY`.
> * Se você usar GitHub com residência de dados no GHE.com, seu site será publicado em `pages.SUBDOMAIN.ghe.com/YOUR-USERNAME/REPOSITORY`, em que `SUBDOMAIN` é o subdomínio da sua empresa.
> * Em GitHub Enterprise Server, seu site é publicado em `pages.HOSTNAME/YOUR-USERNAME/REPOSITORY`, em que `HOSTNAME` é o nome do host da sua instância GitHub Enterprise Server.

## Pré-requisitos

* Um `stargazers-log` repositório com sua funcionalidade mesclada. Se você ainda não o mesclou, veja [Revisando suas alterações propostas](/pt/enterprise-server@3.17/get-started/start-your-journey/reviewing-your-proposed-changes).

## Habilitando o GitHub Pages

Configure GitHub Pages para hospedar seu site e use GitHub Actions para compilá-lo e publicá-lo.

1. No GitHub, navegue até o repositório `stargazers-log`.
2. No nome do repositório, clique em **Configurações**.
3. Na barra lateral, na seção "Código e automação", clique em **Páginas**.
4. Em "Compilação e implantação", na lista suspensa **Origem**, selecione **GitHub Actions**.

Deixe as outras configurações em seus padrões. Em seguida, você criará **seu próprio fluxo de trabalho** para criar e implantar seu site automaticamente.

## Criando um fluxo de trabalho de implantação

Um fluxo de trabalho é um conjunto de etapas automatizadas que GitHub Actions executa para você. Adicione um que cria e implanta seu site sempre que você faz push para `main`.

1. No repositório, crie um arquivo chamado `.github/workflows/deploy.yml`.
   1. Na página principal do repositório `stargazers-log` acima da lista de arquivos, clique **<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-plus" aria-label="plus" role="img"><path d="M7.75 2a.75.75 0 0 1 .75.75V7h4.25a.75.75 0 0 1 0 1.5H8.5v4.25a.75.75 0 0 1-1.5 0V8.5H2.75a.75.75 0 0 1 0-1.5H7V2.75A.75.75 0 0 1 7.75 2Z"></path></svg>** e clique **<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-plus" aria-label="plus" role="img"><path d="M7.75 2a.75.75 0 0 1 .75.75V7h4.25a.75.75 0 0 1 0 1.5H8.5v4.25a.75.75 0 0 1-1.5 0V8.5H2.75a.75.75 0 0 1 0-1.5H7V2.75A.75.75 0 0 1 7.75 2Z"></path></svg> em Criar novo arquivo**.
   2. No campo de nome do arquivo, digite `.github/workflows/deploy.yml`.

2. Adicione o conteúdo do fluxo de trabalho a seguir.

   ```yaml copy
   name: Deploy to GitHub Pages

   on:
     push:
       branches:
         - main

   permissions:
     contents: read
     pages: write
     id-token: write

   jobs:
     deploy:
       runs-on: ubuntu-latest
       environment:
         name: github-pages
         url: ${{ steps.deployment.outputs.page_url }}
       steps:
         - name: Checkout
           uses: actions/checkout@v6
         - name: Setup Pages
           uses: actions/configure-pages@v5
         - name: Upload artifact
           uses: actions/upload-pages-artifact@v2
           with:
             path: '.'
         - name: Deploy to GitHub Pages
           id: deployment
           uses: actions/deploy-pages@v2
   ```

3. Confirme o arquivo diretamente no `main` branch.

## Noções básicas sobre o fluxo de trabalho

Cada parte do fluxo de trabalho tem um trabalho a ser feito:

* **`on`** instrui GitHub Actions a executar o fluxo de trabalho a cada push para `main`.
* **`permissions`** conceda ao fluxo de trabalho o acesso necessário para publicar em GitHub Pages.
* **`environment`** conecta a tarefa ao seu site GitHub Pages e expõe a URL publicada como `${{ steps.deployment.outputs.page_url }}`.
* **`steps`** confira seu código, prepare GitHub Pages, carregue seus arquivos como um artefato e implante-os em seu site dinâmico.

## Visualizando seu site ao vivo

Depois de confirmar o fluxo de trabalho, GitHub Actions execute-o automaticamente.

1. No repositório, clique na guia **Ações** para ver a execução do fluxo de trabalho.
2. Clique na execução do fluxo de trabalho mais recente para ver um resumo dos detalhes do trabalho.
3. Quando a execução estiver concluída, abra seu site publicado em `https://pages.HOSTNAME/YOUR-USERNAME/stargazers-log/`. Substitua `YOUR-USERNAME` pelo seu nome de usuário e substitua `HOSTNAME` pelo seu GitHub Enterprise Servernome do host.
   * Por exemplo, se o nome de usuário da sua conta GitHub for `octocat`, seu site estará em `https://pages.HOSTNAME/octocat/stargazers-log/`.

De agora em diante, a cada push para `main`, seu site é reimplantado com suas alterações mais recentes.

## O que você criou

Nesta série, você criou um projeto de software completo e praticou o GitHub fluxo de trabalho:

| Stage                           | O que você aprendeu                              |
| ------------------------------- | ------------------------------------------------ |
| Criando seu projeto de software | Repositórios, arquivos README                    |
| Planejando seu trabalho         | Problemas, projetos (quadros de projeto)         |
| Conectando-se localmente        |                                                  |
| GitHub DesktopClonagem          |                                                  |
| Gravando e armazenando código   | Branches, commits, solicitações de pull, Copilot |
| Revisão de alterações           | Análises de solicitação de pull, Copilot         |
| Implantação automática          |                                                  |
| GitHub Actions, GitHub Pages    |                                                  |

## Próximas Etapas 

* Amplie seu entendimento sobre Git e GitHub. Para obter mais informações, consulte [Recursos de aprendizagem do Git e do GitHub](/pt/enterprise-server@3.17/get-started/start-your-journey/git-and-github-learning-resources).
* Explore o Bate-papo do Copilot para aprender mais rápido e receber ajuda enquanto programa. Para obter mais informações, consulte [Sobre GitHub Copilot Chat](/pt/enterprise-cloud@latest/copilot/concepts/chat) na GitHub Enterprise Cloud documentação.
* Vá mais fundo com a IA e saiba como os agentes podem agir como um parceiro prático de codificação, transformando ideias em pequenas etapas acionáveis, gerando exemplos e tratando trabalho repetitivo. Para obter mais informações, consulte [Conceitos para agentes de GitHub Copilot](/pt/enterprise-cloud@latest/copilot/concepts/agents) na GitHub Enterprise Cloud documentação.
* Saiba mais sobre como automatizar seus projetos de software com GitHub Actions fluxos de trabalho. Para obter mais informações, consulte [Noções básicas sobre GitHub Actions](/pt/enterprise-server@3.17/actions/get-started/understand-github-actions).
* Adicione um domínio personalizado ou explore mais maneiras de publicar seu site com GitHub Pages. Para obter mais informações, consulte [Introdução ao GitHub Pages](/pt/enterprise-server@3.17/pages/getting-started-with-github-pages).