O sistema de variáveis do GitLab CI permite que você injete dados em suas estruturas de CI. Você pode usar variáveis para fornecer valores de configuração, criar pipelines reutilizáveis e evitar codificar informações confidenciais em seus arquivos .gitlab-ci.yml
.
Neste guia, veremos como você pode configurar e usar variáveis em seu próprio sistema de CI. Existem várias opções disponíveis dependendo de onde você deseja que os valores apareçam e com que frequência deseja alterá-los.
índice
- O básico
- definição de uma variável
- Variáveis protegidas
- variáveis mascaradas
- Variáveis de nível de ambiente
- Configurando variáveis em .gitlab-ci.yml
- Substituição de variável
- Resumo
O básico
Em sua forma mais simples, as variáveis são pares de valores-chave que são injetados como variáveis de ambiente no contexto de execução do pipeline. Você pode referenciá-los em seu arquivo .gitlab-ci.yml
como variáveis de ambiente padrão:
teste: script: - echo "$EXAMPLE_VARIABLE"
Você pode escapar do caractere $
usando a sintaxe $$VARIABLE
:
teste: script: - echo "$$EXAMPLE_VARIABLE"
Este exemplo fará com que $EXAMPLE_VARIABLE
seja registrado, em vez do valor da variável EXAMPLE_VARIABLE
como mostrado acima.
As variáveis estão disponíveis no ambiente de trabalho. Eles também podem ser interpolados nos valores de outros campos do seu arquivo .gitlab-ci.yml
, habilitando as configurações de pipeline dinâmico:
build: imagem: $CI_REGISTRY_IMAGE/build-utils:latest
O GitLab CI define várias variáveis internas que estão sempre disponíveis. Isso inclui detalhes da solicitação de confirmação, ramificação e junção em que o pipeline é executado. As variáveis predefinidas também fornecem acesso de credencial por trabalho para acessar outros recursos do GitLab, como Container Registry e Dependency Proxy.
Além dessas variáveis embutidas, você pode definir seus próprios valores em vários lugares. As variáveis têm suporte no nível de instância, grupo, projeto e pipeline, oferecendo flexibilidade na configuração de valores alternativos, valores padrão e substituições. Você pode definir variáveis usando a IU do GitLab ou a API; estamos nos concentrando na interface do usuário neste guia.
definição de uma variável
As variáveis são criadas na tela Configurações > CI/CD > Variáveis do escopo no qual você deseja que elas estejam disponíveis. Para uma variável de nível de projeto, isso significa ir para Configurações > CI/CD na barra lateral esquerda do GitLab enquanto visualiza uma página dentro do projeto. Da mesma forma, para variáveis de nível de grupo, navegue até o grupo e use a barra lateral para acessar suas configurações de CI. As variáveis de nível de instância estão localizadas no mesmo caminho na área de administração do GitLab.
Expanda a seção "Variáveis" para ver as variáveis que já foram definidas. Clique no botão azul "Adicionar variável" para começar a adicionar um novo item à lista.
Cada variável precisa de uma chave exclusiva; é assim que você fará referência à variável em seu pipeline e seus scripts. O nome escolhido deve ser compatível com o shell que executará seu trabalho; se você escolher uma palavra-chave reservada, seu trabalho poderá falhar. Todas as variáveis devem ser uma string válida contendo apenas caracteres alfanuméricos e sublinhados.
Em seguida, defina o valor da sua variável. Quando o menu suspenso "Tipo" for deixado em "Variável", esse valor será injetado como está sempre que você fizer referência à variável em seu pipeline. Altere o tipo para "Arquivo" para injetar o valor como um arquivo temporário em seu ambiente de compilação; o valor da variável de ambiente será o caminho para esse arquivo temporário. Essa pode ser uma maneira mais segura de injetar dados confidenciais se seu aplicativo estiver preparado para ler o valor final do arquivo especificado.
Quando terminar, clique no botão verde "Adicionar variável" para concluir o processo. Agora você pode fazer referência à sua variável em pipelines executados no escopo no qual você a definiu. Para uma variável de projeto, ela será definida para pipelines nesse projeto, enquanto as variáveis de nível de instância estarão disponíveis para cada pipeline em seu servidor GitLab.
As variáveis podem ser gerenciadas a qualquer momento retornando à tela de configuração do escopo em que estão configuradas. Clique no botão Editar (ícone de lápis) ao lado de qualquer variável para exibir a caixa de diálogo de edição e alterar as propriedades da variável. Essa caixa de diálogo também fornece uma maneira de remover variáveis redundantes.
Variáveis protegidas
As variáveis podem ser marcadas como "protegidas" marcando a caixa de seleção na caixa de diálogo "adicionar variável". Essa opção significa que a variável será definida apenas em pipelines executados em ramificações ou tags protegidas.
As variáveis protegidas são ideais em circunstâncias em que você está expondo um valor sensível, como uma chave de implementação que não será usada em todos os pipelines. Limitar esse valor apenas aos pipelines que realmente precisam dele (como trabalhos de implantação em execução em sua ramificação de release
) reduz o risco de vazamentos acidentais.
variáveis mascaradas
A opção "Variable Mask" é outra forma de melhorar a segurança de suas variáveis. Quando essa caixa de seleção estiver habilitada, o GitLab filtrará automaticamente o valor da variável dos logs de trabalho coletados. Qualquer echo $SECRET_VALUE
será limpo, reduzindo o risco de um usuário ver um valor de token sensível ao inspecionar logs de trabalho usando a interface do usuário da Web do GitLab.
O mascaramento bem-sucedido requer que os valores das variáveis sejam detectáveis de forma confiável nos registros. Consequentemente, ele só funciona para valores que atendem a requisitos de formato específicos. Os formatos de token de autenticação mais comuns, bem como todos os dados codificados em Base64, serão suportados. O mascaramento só funciona para valores de até 4 KiB de tamanho.
Variáveis de nível de ambiente
As variáveis podem ser atribuídas a ambientes específicos. Esse recurso permite que seus pipelines operem com uma configuração diferente, dependendo do ambiente em que são implantados.
Use o menu suspenso "Escopo do ambiente" na caixa de diálogo "Adicionar variável" para selecionar um ambiente para sua variável. A variável só será definida em pipelines que fazem referência ao ambiente selecionado por meio do campo de environment
no arquivo .gitlab-ci.yml
.
Configurando variáveis em .gitlab-ci.yml
As variáveis podem ser definidas em seu arquivo .gitlab-ci.yml
usando um bloco de variables
. As variáveis listadas aqui serão criadas para o trabalho se ainda não existirem; caso contrário, eles substituirão o valor definido no nível do projeto ou superior.
As variáveis podem ser definidas no nível do pipeline com uma seção de variables
globais. Trabalhos individuais também podem ter suas próprias variáveis. Ambas as abordagens são mostradas abaixo, em que o trabalho de configuração substitui o valor de uma variável no nível do pipeline e também define uma variável exclusiva específica do trabalho.
variáveis : DEPLOY_URL : example.com deploy_staging : variables : DEPLOY_URL : staging.example.com DEPLOY_IS_STAGING_ENV : script verdadeiro : - ./deploy.sh deploy_production : script : - ./deploy.sh
As variáveis definidas em arquivos .gitlab-ci.yml
às vezes podem ser usadas de maneiras diferentes daquelas definidas na IU ou API do GitLab. Você pode usar uma variável para evitar a repetição de seções do arquivo, mesmo que esses valores não sejam alterados ou sejam substituídos no futuro. É por isso que as seções de variables
podem parecer mais próximas de variáveis em linguagens de programação do que as chaves de configuração comumente encontradas no nível do projeto e acima.
Substituição de variável
O sistema de variáveis do GitLab oferece vários pontos nos quais você pode substituir o valor de uma variável antes que ela seja corrigida para um pipeline ou trabalho. A ordem de precedência é relativamente complexa, mas pode ser resumida da seguinte forma:
- As variáveis predefinidas do GitLab são sempre definidas primeiro.
- As variáveis definidas em
.gitlab-ci.yml
são definidas abaixo (as variáveis de trabalho são mais específicas do que as variáveis de pipeline). - As variáveis definidas nos níveis de instância, grupo e projeto se sobrepõem.
- As variáveis de gatilho de pipeline específicas substituem qualquer coisa que venha antes dela.
Você sempre pode executar um pipeline com um valor de variável específico usando a execução manual. Vá para a página CI/CD > Pipelines do seu projeto e clique no botão azul "Run Pipeline" no canto superior direito.
Use o menu suspenso para selecionar a ramificação ou tag para executar o pipeline. Em seguida, use a tabela "Variáveis" para definir variáveis a serem adicionadas a essa execução de pipeline. Estes se tornarão os valores mais específicos, aplicados como etapa final na ordem de precedência das variáveis. As variáveis definidas aqui não serão salvas ou reutilizadas com nenhum pipeline futuro.
Resumo
A implementação de variáveis de CI do GitLab é um mecanismo poderoso e flexível para configurar seus pipelines. Há tantos lugares onde as variáveis podem ser definidas que pode ser difícil determinar onde um valor deve ser localizado.
Em geral, muitas vezes é mais eficiente colocar o máximo de valores possível no nível do grupo para que você não precise se repetir em seus projetos. Você sempre pode substituir uma variável posteriormente em projetos específicos que precisam de um valor diferente. Os administradores do GitLab auto-hospedados podem usar variáveis de instância para expor valores compartilhados comuns, embora isso possa causar exposição não intencional de informações se não for gerenciado com cuidado.
- Frigorífico Xbox Mini da Microsoft já está disponível por US $ 100
- 7 aperitivos do dia do jogo que você pode fazer em 10 minutos ou menos
descubra mais conteúdo
O que é um amplificador integrado?
Google Pixel Watch também tem detecção de queda, mas não até o próximo ano
As melhores xícaras de café aquecidas de 2022
Como automatizar seu iPhone com base na hora, atividade ou localização
"Isso deve ter sido antes do meu tempo"
Por que a NASA enviou Snoopy para a Lua? – Revisão Geek
Como faço para definir variáveis de ambiente no GitLab?
No GitLab, as variáveis CI/CD podem ser definidas indo em Configurações » CI/CD » Variáveis, ou simplesmente definindo-as no arquivo. gitlab-ci. arquivo yml . As variáveis são úteis para configurar serviços de terceiros para diferentes ambientes, como teste, preparação, produção etc.
Onde está a variável GitLab CI CD?
Variáveis. gitlab-ci. arquivo yml. Variáveis do projeto CI/CD.
Variáveis de CI/CD da instância
- Na barra superior, clique em Menu seguido de Admin.
- Na barra lateral esquerda, selecione Configurações. Clique em CI/CD e abra a seção Variáveis.
- Selecione o botão Adicionar variável e digite os detalhes da chave e do valor.
De quantas maneiras podemos especificar variáveis no GitLab?
Existem dois lugares em que as variáveis definidas podem ser usadas.
Como crio uma variável de grupo no GitLab?
Se você tiver o GitLab 9.4+, poderá configurar variáveis de ambiente em nível de grupo como esta:
- Navegue até o seu grupo.
- Vá para Configurações > CI/CD > Variáveis.
- As variáveis do grupo serão herdadas pelos projetos e subgrupos do grupo.
- Se você não conseguir ver as opções do menu Configurações ou CI/CD, talvez não tenha permissões suficientes.