Você pode configurar ambientes com regras de proteção e segredos.
Quando um trabalho de fluxo de trabalho faz referência a um ambiente, o trabalho não será iniciado até que todas as regras de proteção do ambiente sejam aprovadas. Um trabalho também não pode acessar segredos definidos em ambiente até que todas as regras de proteção do ambiente sejam aprovadas. Regras de proteção do ambiente
As normas de proteção do ambiente exigem a aprovação de condições específicas antes que um trabalho que faz referência ao ambiente possa prosseguir. Você pode usar regras de proteção ambiental para exigir uma aprovação manual, atrasar um trabalho ou restringir o ambiente a certos branches.
Revisores necessários
Use os revisores necessários para exigir que uma pessoa ou equipe específica aprove os trabalhos do fluxo de trabalho que fazem referência ao ambiente.
Você pode listar até seis usuários ou equipes como revisores. Os revisores devem ter, pelo menos, acesso de leitura ao repositório.
Apenas um dos revisores precisam aprovar o trabalho para que prossiga.
Para obter mais informações sobre como revisar trabalhos que referenciam um ambiente com revisores obrigatórios, confira "Revisar implantações." Temporizador de espera Use o temporizador de espera para atrasar o trabalho por um período específico de tempo depois que o trabalho for inicialmente acionado. O tempo (em minutos) deve ser um número inteiro entre 0 e 43.200 (30 dias).
Implementar branches
Use os branches de implantação para restringir quais branches podem ser implementados no ambiente.
Abaixo, estão as opções para branches de implantação para um ambiente: Todos os branches: todos os branches do repositório podem ser implantados no ambiente.
Branches protegidos: somente os branches com regras de proteção de branch habilitadas podem ser implantados no ambiente.
Se nenhuma regra de proteção de branch for definida para qualquer branch no repositório, todos os branches poderão implantar. Para obter mais informações sobre as regras de proteção do branch, confira "Sobre branches protegidos."
-
Branches selecionados: somente os branches que correspondem aos seus padrões de nome especificados podem ser implantados no ambiente.
-
Por exemplo, se você especificar
releases/*
como uma regra de branch de implantação, somente os branches cujos nomes começam comreleases/
podem ser implantados no ambiente. (Os caracteres curinga não corresponderão a/
. Para fazer a correspondência dos branches que começam comrelease/
e contêm uma barra única adicional, userelease/*/*
). Se você adicionarmain
como uma regra de branch de implantação, um branch chamadomain
também poderá ser implantado no ambiente. -
Para obter mais informações sobre as opções de sintaxe para branches de implantação, confira a documentação de File.fnmatch do Ruby.
Segredos do ambiente Os segredos armazenados em um ambiente só estão disponíveis para trabalhos de fluxo de trabalho que fazem referência ao ambiente. Se o ambiente exigir aprovação, um trabalho não poderá acessar segredos de ambiente até que um dos revisores necessários o aprove. Para obter mais informações sobre segredos, confira "Segredos criptografados".
Observação: os fluxos de trabalho executados em executores auto-hospedados não são executados em um contêiner isolado, mesmo que usem ambientes. Os segredos de ambiente devem ser tratados com o mesmo nível de segurança que os segredos do repositório e da organização. Para obter mais informações, confira "Fortalecimento de segurança para o GitHub Actions".
Criando um ambiente Para configurar um ambiente em um repositório de conta pessoal, você deve ser o proprietário do repositório. Para configurar um ambiente em um repositório da organização, você precisa ter acesso de admin
.
-
No sua instância do GitHub Enterprise Server, navegue até a página principal do repositório. 1. Abaixo do nome do repositório, clique em Configurações. Caso não consiga ver a guia suspensa "Configurações", selecione o menu suspenso e clique em Configurações.
1. Na barra lateral esquerda, clique em Ambientes. 1. Clique em Novo ambiente. 1. Insira um nome para o ambiente e clique em Configurar ambiente. Os nomes de ambiente não diferenciam maiúsculas de minúsculas. Um nome de ambiente não pode exceder 255 caracteres e deve ser único dentro do repositório.
Opcionalmente, especifique as pessoas ou equipes que devem aprovar os trabalhos do fluxo de trabalho que usam esse ambiente.
Selecione Revisores necessários.
Insira até até 6 pessoas ou equipes.
Apenas um dos revisores precisam aprovar o trabalho para que prossiga.
- Clique em Salvar regras de proteção.
- Opcionalmente, especifique o tempo a esperar antes de permitir que os trabalhos do fluxo de trabalho que usam esse ambiente prossigam.
- Selecione Temporizador de espera. Insira o número de minutos para esperar.
- Clique em Salvar regras de proteção.
- Opcionalmente, especifique quais branches podem implantar neste ambiente.
- Para obter mais informações sobre os valores possíveis, confira "Branches de implantação".
- Selecione a opção desejada no menu suspenso Branches de implantação. Se você escolheu Branches selecionados, insira os padrões de nomes de branches que deseja permitir.
- Opcionalmente, adicione segredos de ambiente. Esses segredos só estão disponíveis para trabalhos de fluxo de trabalho que usam o ambiente.
- Além disso, os trabalhos do fluxo de trabalho que usam este ambiente só podem acessar esses segredos após todas as regras configuradas (por exemplo, revisores obrigatórios).
- Para obter mais informações sobre segredos, confira "Segredos criptografados".
- Em Segredos do ambiente, clique em Adicionar Segredo. Insira o nome do segredo. Insira o valor do segredo. Clique em Adicionar segredo.
- Também é possível criar e configurar ambientes por meio da API REST.
- Para obter mais informações, confira "Ambientes de implantação," "Segredos do GitHub Actions," e "Políticas de branch de implantação."
- Executar um fluxo de trabalho que faz referência a um ambiente que não existe criará um ambiente com o nome referenciado. O novo ambiente não terá nenhuma regra de proteção ou segredos configurados.
Qualquer pessoa que possa editar fluxos de trabalho no repositório pode criar ambientes por meio de um arquivo de fluxo de trabalho, mas apenas os administradores do repositório podem configurar o ambiente. Usando um ambiente
Cada trabalho em um fluxo de trabalho pode fazer referência a um único ambiente. Todas as regras de proteção configuradas para o ambiente têm de ser aprovadas antes que um trabalho de referência ao ambiente seja enviado a um executor. O trabalho só pode acessar os segredos do ambiente depois que for enviado para um executor.
Quando um fluxo de trabalho faz referência a um ambiente, o ambiente aparecerá nas implantações do repositório.
Para obter mais informações sobre como ver as implantações atuais e anteriores, confira "Exibir o histórico de implantações." Você pode especificar um ambiente para cada tarefa do seu fluxo de trabalho. Para fazer isso, adicione uma chave jobs.<job_id>.environment
seguida do nome do ambiente.
Por exemplo, este fluxo de trabalho usará um ambiente chamado production
.
name: Deployment
on:
push:
branches:
- main
jobs:
deployment:
runs-on: ubuntu-latest
environment: production
steps:
- name: deploy
# ...deployment-specific steps
Quando o fluxo de trabalho acima for executado, o trabalho deployment
estará sujeito às regras configuradas para o ambiente production
. Por exemplo, se o ambiente exigir revisores, o trabalho fará a pausa até que um dos revisores aprove o trabalho.
Você também pode especificar uma URL para o ambiente. A URL especificada será exibida na página de implantações do repositório (acessada por meio de um clique em Ambientes na home page do repositório) e no grafo de visualização da execução de fluxo de trabalho. Se uma solicitação de pull disparar o fluxo de trabalho, a URL também será exibida como um botão Exibir implantação na linha do tempo da solicitação de pull.
name: Deployment
on:
push:
branches:
- main
jobs:
deployment:
runs-on: ubuntu-latest
environment:
name: production
url: https://github.com
steps:
- name: deploy
# ...deployment-specific steps
``` Excluir um ambiente
Para configurar um ambiente em um repositório de conta pessoal, você deve ser o proprietário do repositório. Para configurar um ambiente em um repositório da organização, você precisa ter acesso de `admin`. A exclusão de um ambiente apagará todos os segredos e regras de proteção associados ao ambiente.
Todos os trabalhos que estejam atualmente em espera devido às regras de proteção do ambiente eliminado falharão automaticamente.
## 1. No sua instância do GitHub Enterprise Server, navegue até a página principal do repositório. 1. Abaixo do nome do repositório, clique em <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-gear" aria-hidden="true"><path d="M8 0a8.2 8.2 0 0 1 .701.031C9.444.095 9.99.645 10.16 1.29l.288 1.107c.018.066.079.158.212.224.231.114.454.243.668.386.123.082.233.09.299.071l1.103-.303c.644-.176 1.392.021 1.82.63.27.385.506.792.704 1.218.315.675.111 1.422-.364 1.891l-.814.806c-.049.048-.098.147-.088.294.016.257.016.515 0 .772-.01.147.038.246.088.294l.814.806c.475.469.679 1.216.364 1.891a7.977 7.977 0 0 1-.704 1.217c-.428.61-1.176.807-1.82.63l-1.102-.302c-.067-.019-.177-.011-.3.071a5.909 5.909 0 0 1-.668.386c-.133.066-.194.158-.211.224l-.29 1.106c-.168.646-.715 1.196-1.458 1.26a8.006 8.006 0 0 1-1.402 0c-.743-.064-1.289-.614-1.458-1.26l-.289-1.106c-.018-.066-.079-.158-.212-.224a5.738 5.738 0 0 1-.668-.386c-.123-.082-.233-.09-.299-.071l-1.103.303c-.644.176-1.392-.021-1.82-.63a8.12 8.12 0 0 1-.704-1.218c-.315-.675-.111-1.422.363-1.891l.815-.806c.05-.048.098-.147.088-.294a6.214 6.214 0 0 1 0-.772c.01-.147-.038-.246-.088-.294l-.815-.806C.635 6.045.431 5.298.746 4.623a7.92 7.92 0 0 1 .704-1.217c.428-.61 1.176-.807 1.82-.63l1.102.302c.067.019.177.011.3-.071.214-.143.437-.272.668-.386.133-.066.194-.158.211-.224l.29-1.106C6.009.645 6.556.095 7.299.03 7.53.01 7.764 0 8 0Zm-.571 1.525c-.036.003-.108.036-.137.146l-.289 1.105c-.147.561-.549.967-.998 1.189-.173.086-.34.183-.5.29-.417.278-.97.423-1.529.27l-1.103-.303c-.109-.03-.175.016-.195.045-.22.312-.412.644-.573.99-.014.031-.021.11.059.19l.815.806c.411.406.562.957.53 1.456a4.709 4.709 0 0 0 0 .582c.032.499-.119 1.05-.53 1.456l-.815.806c-.081.08-.073.159-.059.19.162.346.353.677.573.989.02.03.085.076.195.046l1.102-.303c.56-.153 1.113-.008 1.53.27.161.107.328.204.501.29.447.222.85.629.997 1.189l.289 1.105c.029.109.101.143.137.146a6.6 6.6 0 0 0 1.142 0c.036-.003.108-.036.137-.146l.289-1.105c.147-.561.549-.967.998-1.189.173-.086.34-.183.5-.29.417-.278.97-.423 1.529-.27l1.103.303c.109.029.175-.016.195-.045.22-.313.411-.644.573-.99.014-.031.021-.11-.059-.19l-.815-.806c-.411-.406-.562-.957-.53-1.456a4.709 4.709 0 0 0 0-.582c-.032-.499.119-1.05.53-1.456l.815-.806c.081-.08.073-.159.059-.19a6.464 6.464 0 0 0-.573-.989c-.02-.03-.085-.076-.195-.046l-1.102.303c-.56.153-1.113.008-1.53-.27a4.44 4.44 0 0 0-.501-.29c-.447-.222-.85-.629-.997-1.189l-.289-1.105c-.029-.11-.101-.143-.137-.146a6.6 6.6 0 0 0-1.142 0ZM11 8a3 3 0 1 1-6 0 3 3 0 0 1 6 0ZM9.5 8a1.5 1.5 0 1 0-3.001.001A1.5 1.5 0 0 0 9.5 8Z"></path></svg> **Configurações**. Caso não consiga ver a guia suspensa "Configurações", selecione o menu suspenso **<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-kebab-horizontal" aria-hidden="true"><path d="M8 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3ZM1.5 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Zm13 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"></path></svg>** e clique em **Configurações**.
 1. Na barra lateral esquerda, clique em **Ambientes**.
Ao lado do ambiente que você deseja excluir, clique em <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-trash" aria-label="The trash icon" role="img"><path d="M11 1.75V3h2.25a.75.75 0 0 1 0 1.5H2.75a.75.75 0 0 1 0-1.5H5V1.75C5 .784 5.784 0 6.75 0h2.5C10.216 0 11 .784 11 1.75ZM4.496 6.675l.66 6.6a.25.25 0 0 0 .249.225h5.19a.25.25 0 0 0 .249-.225l.66-6.6a.75.75 0 0 1 1.492.149l-.66 6.6A1.748 1.748 0 0 1 10.595 15h-5.19a1.75 1.75 0 0 1-1.741-1.575l-.66-6.6a.75.75 0 1 1 1.492-.15ZM6.5 1.75V3h3V1.75a.25.25 0 0 0-.25-.25h-2.5a.25.25 0 0 0-.25.25Z"></path></svg>.
Clique em **Entendi. Excluir este ambiente**. Também é possível excluir ambientes por meio da API REST.
Para obter mais informações, confira "[AUTOTITLE](/rest/repos#environments)".
1. Como os ambientes relacionam-se com as implantações
2. Quando um trabalho de fluxo de trabalho que referencia um ambiente é executado, ele cria um objeto de implantação com a propriedade `environment` definida como o nome do ambiente. À medida que o fluxo de trabalho progride, ele também cria objetos de status de implantação com a propriedade `environment` definida como o nome do ambiente, a propriedade `environment_url` definida como a URL para o ambiente (se especificado no fluxo de trabalho) e a propriedade `state` definida como o status do trabalho.
Você pode acessar esses objetos por meio da API REST ou API do GraphQL. Você também pode assinar esses eventos de webhook.
## Para obter mais informações, confira "[AUTOTITLE](/rest/repos#deployments)" (API REST), "[AUTOTITLE](/graphql/reference/objects#deployment)" (API do GraphQL) ou "[AUTOTITLE](/webhooks-and-events/webhooks/webhook-events-and-payloads#deployment)".
Próximas etapas
GitHub Actions fornece várias funcionalidades para gerenciar suas implantações. Para obter mais informações, confira "[AUTOTITLE](/actions/deployment/about-deployments/deploying-with-github-actions)". For more information, see "<bpt id="p1">[</bpt>AUTOTITLE<ept id="p1">](/rest/repos#deployments)</ept>" (REST API), "<bpt id="p2">[</bpt>AUTOTITLE<ept id="p2">](/graphql/reference/objects#deployment)</ept>" (GraphQL API), or "<bpt id="p3">[</bpt>AUTOTITLE<ept id="p3">](/webhooks-and-events/webhooks/webhook-events-and-payloads#deployment)</ept>."
## Next steps
GitHub Actions provides several features for managing your deployments. For more information, see "<bpt id="p1">[</bpt>AUTOTITLE<ept id="p1">](/actions/deployment/about-deployments/deploying-with-github-actions)</ept>."