GitHub Actions Usando a Ação Checkout

GitBeginner
Pratique Agora

Introdução

Neste laboratório, você aprenderá a usar a ação actions/checkout, que é uma das etapas mais essenciais em qualquer fluxo de trabalho (workflow) do GitHub Actions. Por padrão, um runner do GitHub Actions inicia em um diretório vazio. Para construir, testar ou implantar seu código, você deve primeiro fazer o checkout do repositório para a área de trabalho (workspace) do runner.

Você criará um arquivo de fluxo de trabalho, o configurará para fazer o checkout do seu código e, em seguida, verificará se os arquivos estão acessíveis listando-os nos logs. Este processo simula a configuração de um pipeline de Integração Contínua (CI) padrão.

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 novo fluxo de trabalho que utiliza a ação de checkout.

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 95%. Recebeu uma taxa de avaliações positivas de 100% dos estudantes.

Adicionar uma etapa para usar actions/checkout@v4 no fluxo de trabalho

Nesta etapa, você clonará o repositório e criará um workflow que utiliza a ação actions/checkout. Esta ação faz o checkout do seu repositório sob $GITHUB_WORKSPACE, permitindo que seu workflow o acesse.

  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 de workflow chamado ci.yml dentro do diretório .github/workflows:
touch .github/workflows/ci.yml
  1. Abra .github/workflows/ci.yml no editor WebIDE e adicione o seguinte conteúdo. Esta configuração define um workflow chamado "CI" que é executado a cada evento de push. Ele inclui um único job chamado build rodando em ubuntu-latest, com uma etapa para fazer o checkout do código.
name: CI

on: [push]

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout code
        uses: actions/checkout@v4

Esta linha uses: actions/checkout@v4 instrui o GitHub Actions a baixar e executar a versão v4 da ação oficial de checkout.

Adicionar uma etapa para listar arquivos com o comando run ls -la

Nesta etapa, você adicionará uma segunda etapa ao seu fluxo de trabalho (workflow) para verificar se a ação de checkout (checkout action) recuperou seus arquivos com sucesso. Você usará um comando shell padrão para listar os arquivos no diretório atual.

Abra o arquivo .github/workflows/ci.yml e anexe a seguinte etapa à lista de steps. Certifique-se de que o recuo (indentation) esteja alinhado corretamente com a etapa anterior.

- name: List files
  run: ls -la

Seu arquivo .github/workflows/ci.yml completo deve agora se parecer com isto:

name: CI

on: [push]

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout code
        uses: actions/checkout@v4

      - name: List files
        run: ls -la

A palavra-chave run permite que você execute programas de linha de comando. Aqui, ls -la listará todos os arquivos, incluindo os ocultos, na raiz do repositório.

Criar um arquivo de exemplo chamado index.js no repositório

Nesta etapa, você criará um arquivo de exemplo em seu repositório. Este arquivo servirá como prova de que a ação actions/checkout está funcionando corretamente quando a virmos listada nos logs do fluxo de trabalho (workflow logs).

  1. Certifique-se de estar no diretório do repositório:
cd ~/project/github-actions-demo
  1. Crie um arquivo JavaScript simples chamado index.js na raiz do seu repositório:
echo "console.log('Hello, GitHub Actions!');" > index.js
  1. Você pode verificar a criação do arquivo executando:
ls -l index.js

Este arquivo representa o código-fonte da sua aplicação que o pipeline de CI (Continuous Integration) normalmente construiria ou testaria.

Fazer commit e push do arquivo de exemplo e das atualizações do fluxo de trabalho

Nesta etapa, você fará o commit das suas alterações e as enviará (push) para o GitHub. O envio deste commit acionará o workflow que definimos devido à configuração on: [push].

  1. Certifique-se de estar no diretório do repositório:
cd ~/project/github-actions-demo
  1. Verifique o status do seu repositório para ver os arquivos não rastreados:
git status

Você deverá ver .github/workflows/ci.yml e index.js como não rastreados.

  1. Prepare todas as alterações (Stage all changes):
git add .
  1. Faça o commit das alterações com uma mensagem descritiva:
git commit -m "Add CI workflow and index.js"

Exemplo de Saída:

[main ... ] Add CI workflow and index.js
 2 files changed, 14 insertions(+), 0 deletions(-)
 create mode 100644 .github/workflows/ci.yml
 create mode 100644 index.js
  1. Envie as alterações para o repositório remoto no GitHub:
git push

Nota sobre Autenticação:
Ao 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 a operação de push com sucesso.

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á destruída imediatamente após você concluir o laboratório atual, e suas credenciais e informações de autorização não serão retidas.

Este processo de autenticação não requer configuração manual de nome de usuário ou Personal Access Token (Token de Acesso Pessoal).

Exemplo de Saída:

Enumerating objects: 6, done.
Counting objects: 100% (6/6), done.
Delta compression using up to 4 threads
Compressing objects: 100% (4/4), done.
Writing objects: 100% (4/4), 512 bytes | 512.00 KiB/s, done.
Total 4 (delta 1), reused 0 (delta 0), pack-reused 0
To https://github.com/your-username/github-actions-demo.git
   1234567..abcdef1  main -> main

Este push aciona o workflow no GitHub.

Verificar a execução do fluxo de trabalho para confirmar a listagem de arquivos nos logs

Após enviar seu código, o workflow será acionado automaticamente no GitHub. Você pode visualizar os logs da execução do workflow para verificar se a ação checkout recuperou seus arquivos com sucesso.

  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 execução de workflow listada, provavelmente nomeada "Add CI workflow and index.js" ou "CI".

Nota: Ao enviar código, múltiplos Actions podem ser acionados se você tiver múltiplos 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 do workflow e, em seguida, clique no job build.
  2. Expanda a etapa List files para ver a saída.

Você deverá ver a saída do comando ls -la, que inclui index.js e outros arquivos do seu repositório:

Run ls -la
  ls -la
  shell: /usr/bin/bash -e {0}
total XX
drwxr-xr-x  X runner ... .
drwxr-xr-x  X runner ... ..
drwxr-xr-x  X runner ... .git
drwxr-xr-x  X runner ... .github
-rw-r--r--  X runner ... index.js
...

Isso confirma que a etapa actions/checkout realizou o checkout do seu repositório com sucesso. Sem a etapa de checkout, o comando ls -la mostraria apenas um diretório vazio. Isso demonstra por que a ação de checkout é essencial — ela torna os arquivos do seu repositório disponíveis para o runner do workflow.

GitHub Actions logs

Resumo

Neste laboratório, você criou com sucesso um fluxo de trabalho do GitHub Actions que utiliza a ação actions/checkout. Você aprendeu a:

  1. Configurar a estrutura de diretórios .github/workflows.
  2. Definir um fluxo de trabalho que é acionado por eventos de push.
  3. Usar actions/checkout@v4 para clonar seu repositório no runner.
  4. Adicionar uma etapa para verificar a presença de arquivos usando ls -la.

Esta é a etapa fundamental para quase todos os pipelines de CI/CD (Continuous Integration/Continuous Delivery), permitindo que as etapas subsequentes construam, testem e implementem o código da sua aplicação.