Gerenciar ações e fluxos de trabalho

Concluído

Aqui, você vai explorar as diferentes ferramentas e estratégias disponíveis no GitHub Enterprise Cloud e GitHub Enterprise Server para compartilhar ações e fluxos de trabalho do GitHub e gerenciar seu uso na empresa.

O conteúdo é estruturado por todo o nível no qual as ferramentas apresentadas estão disponíveis: nível corporativo ou nível organizacional.

No nível corporativo

Configurar uma política de uso do GitHub Actions

Os fluxos de trabalho do GitHub Actions geralmente contêm ações, as quais são conjuntos de comandos autônomos a serem executados dentro do fluxo de trabalho. Ao criar um fluxo de trabalho, você pode criar suas ações para usar ou pode referenciar ações da comunidade pública disponíveis no GitHub Marketplace. Por esse motivo, é essencial configurar uma política de uso para fluxos de trabalho e ações em sua empresa com o intuito de impedir que os usuários usem ações mal-intencionadas de terceiros.

Você tem várias opções no Enterprise Cloud para configurar uma política, bem como no Enterprise Server se o GitHub Connect estiver habilitado nas configurações corporativas.

Para configurar um GitHub Actions, use a política para sua empresa, vá para sua conta corporativa e depois para Políticas > Ações na barra lateral. As opções a seguir deverão ser exibidas.

Captura de tela da tela Ações com as opções padrão selecionadas.

O menu suspenso na parte superior rotulada como Habilitar para todas as organizações permite que você decida quais organizações em sua empresa podem usar o GitHub Actions (todas elas, algumas delas ou nenhuma delas); já as três opções abaixo permitem que você defina o nível de restrição do GitHub Actions nessas organizações.

Se você quiser habilitar apenas ações específicas para serem usadas em sua empresa, selecione Permitir empresa e selecione não empresarial, ações e fluxos de trabalho reutilizáveis ​​e escolha a opção correspondente ao seu caso de uso.

Captura de tela da tela Ações com a opção Permitir ações selecionadas.

Sincronizar manualmente ações públicas do Enterprise Server

A maioria das ações criadas pelo GitHub é agrupada automaticamente com o Enterprise Server e é capturadas em um determinado momento do GitHub Marketplace. Inclui actions/checkout, actions/upload-artifact, actions/download-artifact, actions/labeler e várias ações actions/setup-, entre outras. Para conhecer todas as ações oficiais incluídas em sua instância corporativa, navegue até a organização de ações em sua instância: https://HOSTNAME/actions.

Conforme mencionado na seção Configurar uma política de uso do GitHub Actions, é possível configurar o Enterprise Server para acessar automaticamente as ações públicas disponíveis no GitHub Marketplace e configurar uma política de uso para elas. No entanto, se você quiser um controle mais rigoroso sobre as ações públicas que devem ser disponibilizadas em sua empresa, poderá baixar e sincronizar manualmente as ações em sua instância corporativa usando a ferramenta actions-sync.

No nível da organização

Documentar padrões corporativos

A criação de um fluxo de trabalho do GitHub Actions geralmente envolve a gravação de vários arquivos e a criação de vários repositórios para especificar o fluxo de trabalho em si. A criação também inclui as ações, os contêineres e/ou os executores a serem usados no fluxo de trabalho. Dependendo do número de usuários em sua instância do Enterprise Cloud ou do Enterprise Server, as coisas poderão ficar confusas muito rapidamente se você não tiver padrões corporativos em funcionamento para criar fluxos de trabalho do GitHub Actions.

Como uma melhor prática, recomendamos documentar o seguinte em uma wiki do GitHub ou como um arquivo markdown em um repositório acessível a todos dentro de uma organização:

  • Repositórios para armazenamento
  • Convenções de nomenclatura de arquivos/pastas
  • Local dos componentes compartilhados
  • Planos para manutenção contínua
  • Diretrizes de contribuição

Criar modelos de fluxo de trabalho

Os modelos de fluxo de trabalho são uma ótima maneira de garantir que a automação seja reusada e mantida em sua empresa. Tanto no Enterprise Cloud quanto no Enterprise Server, os usuários com acesso de gravação ao repositório .github de uma organização podem criar modelos de fluxo de trabalho que estarão disponíveis para uso pelos membros da outra organização com o mesmo acesso de gravação. Os modelos de fluxo de trabalho podem ser usados para criar novos fluxos de trabalho nos repositórios públicos e privados da organização.

A criação de um modelo de fluxo de trabalho é feita em duas etapas:

  1. Criar um fluxo de trabalho yml.

  2. Criar um arquivo de metadados json que descreva como o modelo deve ser apresentado aos usuários quando eles estiverem criando um fluxo de trabalho.

    Observação

    O arquivo de metadados deve ter o mesmo nome que o arquivo de fluxo de trabalho. Ele deve ser anexado com .properties.json, em vez de com a extensão .yml. Por exemplo, um arquivo chamado octo-organization-ci.properties.json contém os metadados para o arquivo de fluxo de trabalho chamado octo-organization-ci.yml.

Ambos os arquivos devem ser colocados em um repositório .github público e em um diretório chamado workflow-templates. Talvez seja preciso criá-los caso ainda não existam em sua organização.

A seguir, temos um exemplo de um arquivo de fluxo de trabalho básico:

name: Octo Organization CI

on:
  push:
    branches: [ $default-branch ]
  pull_request:
    branches: [ $default-branch ]

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v2

      - name: Run a one-line script
        run: echo Hello from Octo Organization

Observe que o arquivo anterior usa um espaço reservado $default-branch. Quando um fluxo de trabalho for criado usando seu modelo, esse espaço reservado será substituído automaticamente pelo nome do branch padrão do repositório.

A seguir, está o arquivo de metadados que você criaria para o arquivo de fluxo de trabalho:

{
    "name": "Octo Organization Workflow",
    "description": "Octo Organization CI workflow template.",
    "iconName": "example-icon",
    "categories": [
        "Go"
    ],
    "filePatterns": [
        "package.json$",
        "^Dockerfile",
        ".*\\.md$"
    ]
}

Os arquivos de metadados usam os seguintes parâmetros:

Parâmetro Descrição Obrigatório
name Nome do modelo de fluxo de trabalho exibido na lista de modelos disponíveis. Sim
description Descrição do modelo de fluxo de trabalho exibido na lista de modelos disponíveis. Sim
iconName Define um ícone para a entrada do fluxo de trabalho na lista de modelos. Deve ser um ícone SVG com o mesmo nome e deve ser armazenado no diretório workflow-templates. Por exemplo, um arquivo SVG chamado example-icon.svg é referenciado como example-icon. No
categories Define a categoria de linguagem do fluxo de trabalho. Quando os modelos disponíveis são visualizados por um usuário, aqueles que corresponderem à mesma linguagem serão apresentados com mais destaque. Não
filePatterns Permite que o modelo seja usado caso o repositório do usuário tenha um arquivo em seu diretório raiz que corresponde a uma expressão regular definida. Não

Depois que um modelo de fluxo de trabalho é criado, os usuários em sua organização podem encontrá-lo em Ações > Novo fluxo de trabalho > Fluxos de trabalho criados por _your_organization_name.

Exemplo de modelo de fluxo de trabalho.