Implantando com GitHub Actions

Aprenda a controlar imolantações com funcionalidades como ambientes e simultaneidade.

Observação: Executores hospedados em GitHub não são atualmente compatíveis com GitHub Enterprise Server. Você pode ver mais informações sobre suporte futuro planejado no Itinerário público do GitHub.

Introdução

GitHub Actions oferece funcionalidades que permitem que você controle implantações. Você pode:

  • Acionar fluxos de trabalho com uma série de eventos.
  • Configurar ambientes para definir regras antes que um trabalho possa prosseguir e limitar o acesso a segredos.
  • Usar a simultaneidade para controlar o número de implantações em execução por vês.

Para obter mais informações sobre a implantação contínua, consulte "Sobre a implantação contínua".

Pré-requisitos

Você deve estar familiarizado com a sintaxe de GitHub Actions. Para obter mais informações, consulte "Aprenda GitHub Actions".

Acionando a sua implantação

Você pode usar uma série de eventos para acionar seu fluxo de trabalho de implantação. Alguns dos mais comuns são: pull_request, push e workflow_despatch.

Por exemplo, um fluxo de trabalho com os seguintes gatilhos é executado sempre que:

  • Há um push para o branch principal.
  • Um pull request direcionado ao branch principal está aberto, sincronizado ou reaberto.
  • Alguém a aciona manualmente.
on:
  push:
    branches:
      - main
  pull_request:
    branches:
      - main
  workflow_dispatch:

Para obter mais informações, consulte "Eventos que acionam fluxos de trabalho".

Usar ambientes

Os ambientes são usados para descrever um alvo geral de implantação como produção, preparo ou desenvolvimento. Quando um fluxo de trabalho de GitHub Actions é implantado em um ambiente, o ambiente é exibido na página principal do repositório. Você pode usar ambientes para exigir aprovação para um trabalho para prosseguir, restringir quais branches podem acionar um fluxo de trabalho ou limitar o acesso a segredos. Para obter mais informações sobre criar ambientes, consulte "Usando ambientes para implantação".

Usando simultaneidade

A moeda garante que apenas um único trabalho ou fluxo de trabalho que usa o mesmo grupo de concorrência seja executado de cada vez. Você pode usar a concorrência para que um ambiente tenha, no máximo, uma implantação em andamento e uma implantação pendente por vez.

Observação: simultaneidade e ambiente não estão conectados. O valor da simultaneidade pode ser qualquer regra; não precisa ser o nome de um ambiente. Além disso, se outro fluxo de trabalho usar o mesmo ambiente, mas não especificar a equivalência, esse fluxo de trabalho não estará sujeito a nenhuma regra de simultaneidade.

Por exemplo, quando o fluxo de trabalho a seguir é executado, ele será pausado com o status pendente se algum trabalho ou fluxo de trabalho que usa a simultaneidade de produção estiver em andamento. Ele também cancelará qualquer trabalho ou fluxo de trabalho que usar o grupo de simultaneidade de produção e tiver o status pendente. Isto significa que haverá o máximo de uma execução e um trabalho pendente ou fluxo de trabalho no qual usa o grupo de concorrência de produção.

name: Deployment

concurrency: production

on:
  push:
    branches:
      - main

jobs:
  deployment:
    runs-on: ubuntu-latest
    environment: production
    steps:
      - name: deploy
        # ...deployment-specific steps

Você também pode especificar simultaneidade no nível do trabalho. Isso permitirá que outras tarefas no fluxo de trabalho prossigam mesmo se o trabalho simultâneo estará pendente.

name: Deployment

on:
  push:
    branches:
      - main

jobs:
  deployment:
    runs-on: ubuntu-latest
    environment: production
    concurrency: production
    steps:
      - name: deploy
        # ...deployment-specific steps

Você também pode usar o cancel-in-progress para cancelar qualquer trabalho ou fluxo de trabalho atualmente em execução no mesmo grupo de concorrência.

name: Deployment

concurrency: 
  group: production
  cancel-in-progress: true

on:
  push:
    branches:
      - main

jobs:
  deployment:
    runs-on: ubuntu-latest
    environment: production
    steps:
      - name: deploy
        # ...deployment-specific steps

Visualizar histórico de implantação

Quando um fluxo de trabalho de GitHub Actions é implantado em um ambiente, o ambiente é exibido na página principal do repositório. Para obter mais informações sobre a visualização de implantações em ambientes, consulte "Visualizando histórico de implantação".

Monitoramento de fluxo de trabalho

Cada execução de fluxo de trabalho gera um gráfico em tempo real que ilustra o progresso da execução. Você pode usar este gráfico para monitorar e depurar implantações. Para obter mais informações, "Usando o gráfico de visualização".

Você também pode visualizar os registros de cada execução do fluxo de trabalho e o histórico de execuções do fluxo de trabalho. Para obter mais informações, consulte "Visualizar histórico de execução de fluxo de trabalho".

Rastreando implantações por meio de aplicativos

Você também pode criar um aplicativo que usa webhooks de status de implantação e implantação para rastrear implantações. Quando um trabalho de fluxo de trabalho faz referência a execuções de um ambiente, ele cria um objeto de implantação com a propriedade ambiente definida para o nome do seu ambiente. À medida que o fluxo de trabalho avança, ele também cria objetos de estado de implantação com a propriedade ambiente definida para o nome do seu ambiente. A propriedade environment_url definida como URL para o ambiente (se especificado no fluxo de trabalho), e a propriedade estado definida como estado do trabalho. Para obter mais informações, consulte "Apps" e "Eventos e cargas do Webhook."

Escolhendo um corredor

Você pode executar seu fluxo de trabalho de implantação em executores hospedados em GitHub ou em executores auto-hospedados. O tráfego dos executores hospedados em GitHub pode vir de uma ampla gama de endereços de rede. Se você estiver fazendo a implantação em um ambiente interno e sua empresa restringir o tráfego externo em redes privadas, os fluxos de trabalho de GitHub Actions em execução em executores hospedados em GitHub podem não ser comunicados com seus serviços ou recursos internos. Para superar isso, você pode hospedar seus próprios executores. Para obter mais informações, consulte "Sobre executores auto-hospedados" e "Sobre executores hospedados no GitHub."

Exibindo um selo de status

Você pode usar um selo de status para exibir o status do seu fluxo de trabalho de implantação. Um selo de status mostra se um fluxo de trabalho está falhando ou passando. Um lugar comum para adicionar um selo de status é o arquivo README.md do seu repositório, mas você pode adicioná-lo a qualquer página da web que desejar. Por padrão, os selos exibem o status do seu branch-padrão. Também é possível exibir o status de uma execução de fluxo de trabalho para um branch ou evento específico usando os parâmetros de consulta do branch e evento na URL.

exemplo de selo de status

Para obter mais informações, consulte "Adicionando um selo de status do fluxo de trabalho".

Próximas etapas

Este artigo mostrou as funcionalidades de GitHub Actions que você pode adicionar aos seus fluxos de trabalho de implantação.

GitHub Enterprise Server oferece modelos de CD para vários serviços populares, como o Azure Web App. Para aprender como começar a usar um modelo de fluxo de trabalho, consulte "Usando modelos de fluxo de trabalho" ou pesquise a lista completa dos modelos de fluxo de implantação. Você também pode conferir nossos guias mais detalhados de fluxos de trabalho específicos para implantação como, por exemplo, "Efetuando a implantação no Azure App Service".

Muitos prestadores de serviço também oferecem ações em GitHub Marketplace para implantar no seu serviço. Para a lista completa, consulte GitHub Marketplace.

Esse documento ajudou você?

Política de Privacidade

Ajude-nos a tornar esses documentos ótimos!

Todos os documentos do GitHub são de código aberto. Você percebeu que algo que está errado ou não está claro? Envie um pull request.

Faça uma contribuição

Ou, aprenda como contribuir.