Note
No momento, não há suporte para executores hospedados no GitHub no GitHub Enterprise Server. Você pode ver mais informações sobre o suporte futuro planejado no GitHub public roadmap.
O GitHub Actions em GitHub Enterprise Server foi projetado para funcionar em ambientes sem acesso total à Internet. Por padrão, os fluxos de trabalho não podem usar ações de GitHub.com e GitHub Marketplace.
Recomendamos habilitar o acesso automático a todas as ações usando o GitHub Connect para integrar o GitHub Enterprise Server ao GitHub Enterprise Cloud. Confira Habilitar o acesso automático a GitHub.com usando o GitHub Connect.
Se quiser ter um controle mais rigoroso sobre quais ações são permitidas na empresa, você pode seguir este guia para usar nossa ferramenta de código aberto actions-sync
para sincronizar repositórios de ações individuais do GitHub.com para sua empresa.
Quando você atualiza o GitHub Enterprise Server, as ações em pacote são substituídas automaticamente pelas versões padrão do pacote de atualização. Estas podem não ser a versão mais recente disponível. Como melhor prática, se você usar actions-sync
para atualizar as ações, sempre deverá executar actions-sync
novamente após qualquer atualização do GitHub Enterprise Server (principal ou secundária) para garantir que as ações permaneçam atualizadas.
Sobre a ferramenta actions-sync
A ferramenta actions-sync
precisa ser executada em um computador que possa acessar a API do GitHub.com e a API da instância do GitHub Enterprise Server. A máquina não precisa estar conectada a ambos ao mesmo tempo.
Se o computador tiver acesso a ambos os sistemas ao mesmo tempo, você poderá fazer a sincronização com um único comando actions-sync sync
. Se você só puder acessar um sistema por vez, use os comandos actions-sync pull
e push
.
A ferramenta actions-sync
só pode baixar ações de GitHub.com armazenados em repositórios públicos.
Note
A ferramenta actions-sync
destina-se ao uso em sistemas em que o GitHub Connect não está habilitado. Se você executar a ferramenta em um sistema com GitHub Connect habilitado, poderá ver o erro The repository <repo_name> has been retired and cannot be reused
. Isso indica que um fluxo de trabalho usou essa ação diretamente no GitHub.com e o namespace está desativado em sua instância do GitHub Enterprise Server. Confira Habilitar o acesso automático a GitHub.com usando o GitHub Connect.
Pré-requisitos
-
Antes de usar a ferramenta
actions-sync
, você deve garantir que todas as organizações de destino já existam em sua empresa. O exemplo a seguir demonstra como sincronizar ações com uma organização chamadasynced-actions
. Confira Criar uma organização do início. -
Você precisa criar um personal access token na empresa que possa criar e gravar em repositórios nas organizações de destino. Confira Gerenciar seus tokens de acesso pessoal.
-
Se você quiser sincronizar as ações empacotadas na organização
actions
com sua instância do GitHub Enterprise Server, precisará ser proprietário da organizaçãoactions
.Note
Por padrão, os administradores do site não são proprietários da organização
actions
agrupada.Os administradores do site podem usar o comando
ghe-org-admin-promote
no shell administrativo para promover um usuário para ser um proprietário da organização empacotadaactions
. Confira Acesar o shell administrativo (SSH) e Utilitários de linha de comando.ghe-org-admin-promote -u USERNAME -o actions
Exemplo: Usando a ferramenta actions-sync
Este exemplo demonstra o uso da ferramenta actions-sync
para sincronizar uma ação individual do GitHub.com com uma instância corporativa.
Note
Este exemplo usa o comando actions-sync sync
, que exige acesso simultâneo à API do GitHub.com e à API da instância empresarial do seu computador. Se você só puder acessar um sistema por vez, use os comandos actions-sync pull
e push
. Veja o LEIA-ME do actions-sync
.
-
Baixe e extraia a versão
actions-sync
mais recente para o sistema operacional do computador. -
Crie um diretório para armazenar arquivos em cache para a ferramenta.
-
No terminal, altere para o diretório
bin
no diretório da versão que você acabou de extrair. Por exemplo:cd PATH/TO/gh_DATETIME_OS_ARCHITECTURE/bin
-
Executar o comando
actions-sync sync
:./actions-sync sync \ --cache-dir "cache" \ --destination-token "aabbccddeeffgg" \ --destination-url "https://my-ghes-instance" \ --repo-name "actions/stale:synced-actions/actions-stale"
O comando acima usa os seguintes argumentos:
-
--cache-dir
: o diretório de cache no computador que executa o comando. -
--destination-token
: um personal access token da instância corporativa de destino. -
--destination-url
: a URL da instância corporativa de destino. -
--repo-name
: o repositório de ação a ser sincronizado. Ele usa o formato deowner/repository:destination_owner/destination_repository
.- O exemplo acima sincroniza o repositório
actions/stale
com o repositóriosynced-actions/actions-stale
na instância da empresa de destino. Você deve criar a organização nomeadasynced-actions
em sua empresa antes de executar o comando acima. - Se você omitir
:destination_owner/destination_repository
, a ferramenta usará o nome original do proprietário e do repositório da sua empresa. Antes de executar o comando, você deve criar uma nova organização em sua empresa que corresponda ao nome da ação do proprietário. Considere usar uma organização central para armazenar as ações sincronizadas na sua empresa, uma vez que isso significa que você não precisará criar várias novas organizações se sincronizar ações de diferentes proprietários. - Você pode sincronizar várias ações substituindo o parâmetro
--repo-name
por--repo-name-list
ou--repo-name-list-file
. Veja o LEIA-ME doactions-sync
.
- O exemplo acima sincroniza o repositório
-
-
Depois que o repositório de ação for criado na sua empresa, as pessoas da sua empresa poderão usar o repositório de destino para fazer referência à ação nos fluxos de trabalho. Para o exemplo da ação mostrado acima:
uses: synced-actions/actions-stale@v1