Sobre GitHub Actions para empresas
GitHub Actions é uma plataforma de integração contínua e entrega contínua (CI/CD) que permite automatizar a sua compilação, testar e pipeline de implantação. com GitHub Actions, sua empresa pode automatizar, personalizar e executar seus fluxos de trabalho de desenvolvimento de software como testes e implantações. Para saber mais, confira Sobre GitHub Actions para empresas.
Antes de apresentar GitHub Actions a uma grande empresa, primeiro você precisa planejar sua adoção e tomar decisões sobre como sua empresa usará GitHub Actions para melhor atender às suas necessidades exclusivas.
Governança e conformidade
Você deve criar um plano para reger o uso de GitHub Actions da empresa e cumprir suas obrigações de conformidade.
Determine quais ações poderão ser usados pelos desenvolvedores. Primeiro, decida se você habilitará o acesso às ações fora da instância. Se os usuários da sua empresa precisam de acesso a outras ações a partir de GitHub.com ou GitHub Marketplace, há algumas opções de configuração. Para obter mais informações, confira Sobre como usar ações na sua empresa.
Depois, decida se você permitirá ações de terceiros que não foram criados pelo GitHub. Você pode configurar as ações que têm permissão para execução nos níveis do repositório, da organização e da empresa e optar por permitir apenas as ações criadas pelo GitHub. Se você permitir ações de terceiros, poderá limitar as ações permitidas somente às criadas por criadores verificados ou a uma lista específica de ações.
Para saber mais, confira Gerenciando configurações de GitHub Actions para um repositório, Desabilitando ou limitando GitHub Actions para sua organização e Impor políticas para GitHub Actions em sua empresa.
Considere combinar o OpenID Connect (OIDC) com fluxos de trabalho reutilizáveis para aplicar implantações consistentes no seu repositório, organização ou empresa. Você pode fazer isso definindo condições de confiança nas funções da nuvem com base em fluxos de trabalho reutilizáveis. Para saber mais, confira Usando o OpenID Connect com fluxos de trabalho reutilizáveis.
Você pode acessar informações sobre atividades relacionadas ao GitHub Actions nos logs de auditoria da sua empresa. Se sua empresa precisa exigir a retenção de informações por mais tempo do que os dados do log de auditoria são retidos, planeje como você exportará e armazenará esses datos fora do GitHub. Para saber mais, confira Como transmitir o log de auditoria para sua empresa e Encaminhamento de logs.
Você pode praticar o princípio de menor privilégio administrando funções personalizadas da organização para acessar configurações no pipeline CI/CD de GitHub Actions. Para obter mais informações sobre funções de organização personalizadas, confira Permissões de funções de organização personalizadas.
Segurança
Você deve planejar sua abordagem do fortalecimento da segurança para GitHub Actions.
Fortalecimento da segurança dos fluxos de trabalho individuais e repositórios
Faça um plano para aplicar as práticas recmendadas de segurança para as pessoas que usam as funcionalidades de GitHub Actions na sua empresa. Para obter mais informações sobre essas práticas, consulte Referência de uso seguro.
Também é possível incentivar a reutilização de fluxos de trabalho que já foram avaliados para a segurança. Para obter mais informações, consulte Innersourcing.
Protegendo o acesso a segredos e recursos de implantação
Você deveria planejar onde você armazenará seus segredos. Recomendamos armazenar segredos em GitHub, mas você pode optar por armazenar segredos em um provedor de nuvem.
Em GitHub, você pode armazenar segredos no nível do repositório ou da organização. Os segredos no nível do repositório podem estar limitados a fluxos de trabalho em certos ambientes, como produção ou teste. Para saber mais, confira Usar segredos em ações do GitHub.
Você deve considerar a possibilidade de adicionar uma proteção manual de aprovação para ambientes confidenciais, de modo que os fluxos de trabalho precisem ser aprovados antes de terem acesso aos segredos do ambiente. Para saber mais, confira Gerenciar ambientes para implantação.
Considerações de segurança para ações de terceiros
Há um risco significativo em obter ações a partir de repositórios de terceiros no GitHub. Se você permitir ações de terceiros, você deverá criar diretrizes internas que incentivam a sua equipe a seguir as práticas recomendadas como, por exemplo, fixar ações para o SHA completo do commit. Para saber mais, confira Referência de uso seguro.
Innersourcing
Pense em como sua empresa pode usar funcionalidades de GitHub Actions para gerar automação de recursos internos. O innersourcing é uma maneira de incorporar os benefícios das metodologias open source em seu ciclo de desenvolvimento de software interno. Para obter mais informações, confira Uma introdução ao InnerSource em Recursos do GitHub.
Para compartilhar ações na empresa sem publicá-las publicamente, armazene as ações em um repositório interno e configure o repositório para permitir o acesso aos fluxos de trabalho do GitHub Actions em outros repositórios pertencentes à mesma organização ou a outras organizações da empresa. Para saber mais, confira Compartilhando ações e fluxos de trabalho com sua empresa.
Com os fluxos de trabalho reutilizáveis, a equipe pode chamar um fluxo de trabalho por meio de outro fluxo de trabalho, evitando a duplicação exata. Os fluxos de trabalho reutilizáveis promovem práticas recomendadas, ajudando a sua equipe a usar os fluxos de trabalho bem desenhados e que já foram testados. Para saber mais, confira Reutilizar fluxos de trabalho.
Para fornecer um ponto de partida para os desenvolvedores que desenvolvem novos fluxos de trabalho, você pode usar os modelos de fluxo de trabalho. Isso não só poupa tempo para seus desenvolvedores, mas promove a consistência e as práticas práticas recomendadas na sua empresa. Para saber mais, confira Criar modelos de fluxo de trabalho para sua organização.
Gerenciando recursos
Você deve planejar como você gerenciará os recursos necessários para usar o GitHub Actions.
Requisitos de hardware
É possível que você tenha que atualizar os recursos de CPU e memória para que a sua instância do GitHub Enterprise Server administre a carga do GitHub Actions sem causar perda de desempenho. Para saber mais, confira Introdução ao GitHub Actions do GitHub Enterprise Server.
Executores
Os fluxos de trabalho de GitHub Actions} exigem executores. Você precisará hospedar seus próprios executores instalando o aplicativo de executor auto-hospedado GitHub Actions em seus próprios computadores. Para saber mais, confira Executores auto-hospedados.
Decida se você deseja usar máquinas físicas, máquinas virtuais ou contêineres para seus executores auto-hospedados. As máquinas físicas reterão vestígios de trabalhos anteriores assim como as máquinas virtuais, a menos que você use uma nova imagem para cada trabalho ou limpe as máquinas após a execução de cada trabalho. Se você escolher contêineres, você deverá estar ciente de que a atualização automática do executor irá desligar o container, o que pode gerar falha nos fluxos de trabalho. Você deve encontrar uma solução para isso, impedindo atualizações automáticas ou ignorando o comando para matar o contêiner.
Você também deverá decidir onde adicionar cada executor. Você pode adicionar um executor auto-hospedado a um repositório individual, ou você pode disponibilizar o executor para toda uma organização ou empresa. Adicionar runners aos níveis da organização ou empresa permite compartilhar executores, o que pode reduzir o tamanho da infraestrutura de executores. Você pode usar políticas para limitar o acesso a executores auto-hospedados a nível da organização e da empresa atribuindo grupos de executores a repositórios ou organizações específicas. Para saber mais, confira Adicionar executores auto-hospedados e Gerenciar o acesso a runners auto-hospedados usando grupos. Você também pode usar políticas para impedir que as pessoas usem executores auto-hospedados no nível do repositório. Para saber mais, confira Impor políticas para GitHub Actions em sua empresa.
Você deve considerar usar o dimensionamento automático para aumentar ou diminuir automaticamente o número de executores auto-hospedados disponíveis. Para saber mais, confira Referência de executores auto-hospedados.
Finalmente, você deve considerar o fortalecimento da segurança para os executores auto-hospedados. Para saber mais, confira Referência de uso seguro.
Armazenamento
Os artefatos permitem compartilhar dados entre tarefas em um fluxo de trabalho e armazenar dados assim que o fluxo de trabalho tiver sido concluído. Para obter mais informações, consulte Armazenar e compartilhar dados com artefatos de fluxo de trabalho.
O GitHub Actions também tem um sistema de cache que você pode usar para armazenar dependências em cache a fim de acelerar as execuções de fluxo de trabalho. Para saber mais, confira Referência do cache de dependência.
Você precisa configurar o armazenamento de blobs externo para artefatos de fluxo de trabalho, caches e outros logs de fluxo de trabalho. Escolha qual provedor de armazenamento compatível a sua empresa irá usar. Para saber mais, confira Introdução ao GitHub Actions do GitHub Enterprise Server.
Você pode usar as configurações de política para GitHub Actions para personalizar o armazenamento de artefatos de fluxo de trabalho, caches e retenção de log. Para saber mais, confira Impor políticas para GitHub Actions em sua empresa.
Controlar o uso
Você deve considerar fazer um plano para monitorar o uso de GitHub Actions da sua empresa como, por exemplo, a frequência com que os fluxos de trabalho estão sendo executados, quantas dessas execuções estão passando e falhando, e quais repositórios estão usando quais fluxos de trabalho.
Você pode usar webhooks para assinar informações sobre trabalhos de fluxo de trabalho e execuções de fluxo de trabalho. Para saber mais, confira Sobre webhooks.
Faça um plano de como sua empresa pode passar as informações desses webhooks para um sistema de arquivamento de dados e planejar como você permitirá que suas equipes obtenham os dados necessários do seu sistema de arquivamento.