Observação: O suporte de GitHub Actions em GitHub Enterprise Server 2.22 é beta pública limitada. Para revisar os requisitos de armazenamento externo e solicitar acesso ao beta, consulte "Habilitar GitHub Actions e configurar o armazenamento".
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.
O GitHub Actions em GitHub Enterprise Server é projetado para funcionar em ambientes sem acesso à Internet. Por padrão, os fluxos de trabalho não podem usar ações de GitHub.com e GitHub Marketplace.
Para tornar as ações específicas de GitHub.com disponíveis para uso em fluxos de trabalho, você pode usar a ferramenta de código aberto actions-sync do GitHub para sincronizar repositórios de ações de GitHub.com para a instância corporativa. Para outras formas de acessar as ações de GitHub.com, consulte "Sobre o uso de ações de GitHub.com no GitHub Enterprise Server".
Sobre a ferramenta actions-sync
A ferramenta actions-sync deve ser executada em uma máquina que pode acessar a API de GitHub.com e sua API da instância do GitHub Enterprise Server. A máquina não precisa estar conectada a ambos ao mesmo tempo.
Se sua máquina tiver acesso aos dois sistemas ao mesmo tempo, você poderá fazer a sincronização com um único comando de actions-sync. Se você só puder acessar um sistema de cada vez, pode usar os comandos actions-sync pull e push.
A ferramenta actions-sync só pode fazer download de ações de GitHub.com armazenadas em repositórios públicos.
Pré-requisitos
- Antes de usar a ferramenta
actions-sync, você deve garantir que todas as organizações de destino existam na instância corporativa. O exemplo a seguir demonstra como sincronizar ações com uma organização denominadasynced-actionsem uma instância corporativa. Para obter mais informações, consulte "Criar uma nova organização do zero". - Você deve criar um token de acesso pessoal (PAT) na instância corporativa que pode criar e gravar em repositórios nas organizações de destino. Para mais informação, consulte "Criando um token de acesso pessoal."
Exemplo: Usando a ferramenta de actions-sync
Este exemplo demonstra o uso da ferramenta de actions-sync para sincronizar uma ação individual do GitHub.com com uma instância corporativa.
Observação: Este exemplo usa o comando actions-sync, que exige acesso simultâneo à API do GitHub.com e à API da instância do GitHub Enterprise Server a partir da sua máquina. Se você só puder acessar um sistema de cada vez, pode usar os comandos actions-sync pull e push. Para obter mais informações, consulte o LEIAME de actions-sync.
-
Faça o download e extraia as últimas versões
actions-syncpara o sistema operacional da sua máquina. -
Crie um diretório para armazenar arquivos de cache para a ferramenta.
-
Execute o comando
actions-sync sync:./actions-sync sync \ --cache-dir "cache" \ --destination-token "aabbccddeeffgg" \ --destination-url "https://my-ghes-instance" \ --repo-name "docker/build-push-action:synced-actions/docker-build-push-action"O comando acima usa os seguintes argumentos:
-
--cache-dir: O diretório de cache na máquina que está executando o comando. -
--destination-token: Um token de acesso pessoal para a instância empresarial de destino. -
--destination-url: A URL da instância empresarial de destino. -
--repo-name: O repositório da ação a ser sincronizado. Ele aceita o formato deowner/repository:destination_owner/destination_repository.- O exemplo acima sincroniza o repositório
docker/build-push-actioncom o repositóriosynced-actions/docker-build-push-actionna instância de destino de GitHub Enterprise Server. Você deve criar a organização denominadasynced-actionsna instância da empresa antes de executar o comando acima. - Se você omitir
:destination_owner/destination_repository, a ferramenta usará o proprietário original e o nome do repositório para a instância corporativa. Antes de executar o comando, você deve criar uma nova organização na sua instância que corresponde ao nome do proprietário da ação. Considere usar uma organização central para armazenar as ações sincronizadas na sua instância, já 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-namepor--repo-name-listou--repo-name-list-file. Para obter mais informações, consulte o LEIAME deactions-sync.
- O exemplo acima sincroniza o repositório
-
-
Depois que o repositório de ação é criada na instância corporativa, as pessoas da sua empresa podem 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/docker-build-push-action@v1Para obter mais informações, consulte "Sintaxe do fluxo de trabalho para o GitHub Actions".