GitHub Actions Adicionando Variáveis de Ambiente

GitBeginner
Pratique Agora

Introdução

No GitHub Actions, variáveis de ambiente (environment variables) são pares chave-valor que ficam disponíveis para os passos (steps) em um fluxo de trabalho (workflow). Você pode definir variáveis de ambiente para um workflow inteiro, um job específico ou um passo específico.

Neste laboratório, você aprenderá a:

  1. Criar um arquivo de workflow do GitHub Actions.
  2. Definir uma variável de ambiente no nível do workflow.
  3. Acessar e usar a variável de ambiente em um passo.
  4. Atualizar a variável e acionar o workflow novamente.

Este laboratório baseia-se no repositório que você criou nos laboratórios anteriores. Você clonará o repositório github-actions-demo e criará um workflow que utiliza variáveis de ambiente.

Este é um Lab Guiado, que fornece instruções passo a passo para ajudá-lo a aprender e praticar. Siga as instruções cuidadosamente para completar cada etapa e ganhar experiência prática. Dados históricos mostram que este é um laboratório de nível iniciante com uma taxa de conclusão de 100%. Recebeu uma taxa de avaliações positivas de 100% dos estudantes.

Adicionar a seção env com a variável GREETING definida como 'Hello'

Nesta etapa, você clonará o repositório e criará um novo arquivo de fluxo (workflow) do GitHub Actions com uma variável de ambiente global.

  1. Na página do seu repositório GitHub para github-actions-demo, clique no botão verde Code.
  2. Certifique-se de que a aba HTTPS esteja selecionada e copie a URL. Ela deve ser parecida com https://github.com/your-username/github-actions-demo.git.
  3. Abra o terminal no ambiente LabEx. O caminho padrão é ~/project.
  4. Use o comando git clone para baixar o repositório. Substitua your-username pelo seu nome de usuário real do GitHub.
cd ~/project
git clone https://github.com/your-username/github-actions-demo.git
  1. Navegue até o repositório clonado:
cd ~/project/github-actions-demo
  1. Crie um novo arquivo chamado env-demo.yml dentro do diretório .github/workflows:
touch .github/workflows/env-demo.yml
  1. Abra .github/workflows/env-demo.yml no WebIDE e adicione o seguinte conteúdo. Isso define o nome do fluxo de trabalho (workflow), o evento de gatilho (push) e a seção env com uma variável chamada GREETING.
name: Environment Variable Demo

on: [push]

env:
  GREETING: "Hello"
  • name: O nome do seu fluxo de trabalho.
  • on: Especifica que este fluxo de trabalho é executado quando ocorre um evento de push.
  • env: Define um mapa de variáveis de ambiente que estão disponíveis para todos os jobs e etapas no fluxo de trabalho. Aqui, definimos GREETING para a string 'Hello'.

Adicionar um passo para exibir a variável com run echo "${{ env.GREETING }}, World!"

Nesta etapa, você definirá um job e uma etapa para usar a variável de ambiente que você criou. Você acessa variáveis de ambiente no arquivo de fluxo de trabalho usando a sintaxe ${{ env.VARIABLE_NAME }}.

Abra .github/workflows/env-demo.yml no WebIDE e adicione o seguinte conteúdo ao final do arquivo:

jobs:
  print-greeting:
    runs-on: ubuntu-latest
    steps:
      - name: Print Greeting
        run: echo "${{ env.GREETING }}, World!"

Seu arquivo completo deve ser assim:

name: Environment Variable Demo

on: [push]

env:
  GREETING: "Hello"

jobs:
  print-greeting:
    runs-on: ubuntu-latest
    steps:
      - name: Print Greeting
        run: echo "${{ env.GREETING }}, World!"
  • jobs: Define os jobs que o fluxo de trabalho executa.
  • print-greeting: O ID do job.
  • runs-on: Configura o tipo de máquina (runner) para executar o job.
  • steps: Agrupa todas as etapas que são executadas no job.
  • run: Executa um comando no shell do runner. Usamos echo para imprimir o valor de GREETING seguido por , World!.

Fazer commit e push da workflow atualizada com env

Nesta etapa, você fará o commit do novo arquivo de fluxo de trabalho e o enviará (push) para o GitHub. O envio deste arquivo registrará o fluxo de trabalho no GitHub Actions e acionará a primeira execução.

  1. Certifique-se de estar no diretório do repositório:
cd ~/project/github-actions-demo
  1. Prepare o arquivo de fluxo de trabalho (Stage the workflow file):
git add .github/workflows/env-demo.yml
  1. Faça o commit das alterações:
git commit -m "Add workflow with environment variable"
  1. Envie as alterações para o repositório remoto no GitHub:
git push

Nota sobre Autenticação:
Quando você executar git push, o WebIDE solicitará automaticamente que você se autentique. Siga estas etapas detalhadas:

  1. Um pop-up aparecerá com a mensagem: "The extension 'GitHub' wants to sign in using GitHub." Clique em Allow.
  2. Uma nova notificação aparecerá. Clique em "Copy&Continue to GitHub" e, em seguida, clique em "Open" no próximo prompt.
  3. Faça login na sua conta do GitHub na janela do navegador que se abrir e insira o código de autorização que foi copiado. Após confirmar a autorização, a página será fechada automaticamente.
  4. Aguarde alguns segundos e você verá o terminal concluir com sucesso a operação de push.

Nota de Privacidade: O WebIDE solicitará acesso total à sua conta do GitHub para fins de autenticação. Você não precisa se preocupar com questões de privacidade - a VM LabEx será imediatamente destruída após você concluir o laboratório atual, e suas credenciais e informações de autorização não serão retidas.

Disparar a workflow ao fazer push de uma alteração

O workflow está configurado para ser executado em eventos de push. Embora o push anterior já tenha acionado o workflow, vamos ver como é fácil atualizar a variável de ambiente e acioná-lo novamente.

  1. Abra .github/workflows/env-demo.yml no WebIDE.
  2. Mude o valor de GREETING de "Hello" para "Hi".
env:
  GREETING: "Hi"
  1. Faça o commit e o push desta alteração:
git add .github/workflows/env-demo.yml
git commit -m "Update greeting variable"
git push

Nota sobre Autenticação:
Se você não se autenticou recentemente, o WebIDE solicitará automaticamente que você se autentique ao executar git push. Siga os mesmos passos de autenticação descritos na etapa anterior.

Nota de Privacidade: O WebIDE solicitará acesso total à sua conta GitHub para fins de autenticação. Você não precisa se preocupar com questões de privacidade - a VM LabEx será imediatamente destruída após a conclusão do laboratório atual, e suas credenciais e informações de autorização não serão retidas.

Este push acionará uma nova execução do workflow com a variável atualizada.

Verificar a saída da variável de ambiente nos logs de execução no GitHub

Após enviar seu código (push), o workflow será acionado automaticamente no GitHub. Você pode visualizar os logs de execução do workflow para verificar se a variável de ambiente está sendo usada corretamente.

  1. Visite seu repositório no GitHub em um navegador da web: https://github.com/your-username/github-actions-demo
  2. Clique na aba Actions no topo da página do repositório.
  3. Você deverá ver uma nova execução de workflow listada, provavelmente nomeada "Update greeting variable".

Nota: Ao enviar código, múltiplos Actions podem ser acionados se você tiver vários arquivos de workflow em seu repositório. Por favor, identifique a execução de workflow correta verificando o nome do workflow na barra lateral esquerda ou usando a lista de execuções de workflow no lado direito.

  1. Clique no título da execução e, em seguida, clique no job print-greeting.
  2. Expanda a etapa Print Greeting para ver a saída.

Você deverá ver a execução do comando:

Run echo "Hi, World!"
  echo "Hi, World!"
  shell: /usr/bin/bash -e {0}
Hi, World!

Note que ${{ env.GREETING }} foi substituído pelo seu novo valor Hi.

GitHub Actions logs

Resumo

Neste laboratório, você criou com sucesso uma workflow do GitHub Actions que utiliza variáveis de ambiente. Você aprendeu como:

  1. Definir variáveis de ambiente usando a palavra-chave env no nível da workflow.
  2. Acessar essas variáveis em seus passos usando a sintaxe ${{ env.VARIABLE_NAME }}.
  3. Atualizar a variável e acionar a workflow novamente ao enviar alterações.

As variáveis de ambiente são essenciais para gerenciar valores de configuração que podem mudar entre ambientes ou execuções, sem alterar a lógica de comando codificada (hardcoded).