Introdução
Em um pipeline de Integração Contínua (CI), um job frequentemente produz arquivos (como binários compilados, bundles do webpack ou relatórios de teste) que você deseja manter ou compartilhar com outros jobs. Esses arquivos são chamados de artefatos (artifacts).
Por padrão, os arquivos criados durante a execução de um workflow são perdidos quando a execução termina. Para persistir esses arquivos, você precisa "enviá-los" (upload) como artefatos.
Neste laboratório, você modificará seu workflow Node.js para simular um processo de build que cria um diretório dist e, em seguida, usará a action actions/upload-artifact para salvar esse diretório.
Este laboratório baseia-se no repositório que você criou nos laboratórios anteriores. Você trabalhará com o repositório github-actions-demo.
Atualizar o fluxo de trabalho para gerar um arquivo de build
Nesta etapa, você modificará o arquivo de workflow para simular um processo de build. Você adicionará uma etapa que cria um diretório dist e um arquivo artefato fictício (dummy artifact file).
- Na página do seu repositório GitHub para
github-actions-demo, clique no botão verde Code. - 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. - Abra o terminal no ambiente LabEx. O caminho padrão é
~/project. - Use o comando
git clonepara baixar o repositório. Substituayour-usernamepelo seu nome de usuário real do GitHub.
cd ~/project
git clone https://github.com/your-username/github-actions-demo.git
Exemplo de Saída:
Cloning into 'github-actions-demo'...
remote: Enumerating objects: X, done.
remote: Counting objects: 100% (X/X), done.
remote: Total X (delta 0), reused 0 (delta 0), pack-reused 0
Receiving objects: 100% (X/X), done.
- Navegue até o repositório clonado:
cd ~/project/github-actions-demo
Crie um novo arquivo de workflow
.github/workflows/upload-artifacts.ymlusando o editor WebIDE. Você pode encontrar o arquivo no explorador de arquivos à esquerda, emproject/github-actions-demo/.github/workflows/.Comece criando a estrutura básica do workflow. Adicione o nome do workflow e o gatilho (trigger):
name: Upload Artifacts
on: [push]
- Adicione a seção
jobse defina o job de build com seu executor (runs-on):
jobs:
build:
runs-on: ubuntu-latest
- Adicione a seção
steps. Primeiro, adicione a etapa de checkout:
steps:
- uses: actions/checkout@v4
- Adicione a etapa de configuração do Node.js:
- name: Use Node.js
uses: actions/setup-node@v4
with:
node-version: "20"
- Adicione a etapa para instalar as dependências:
- name: Install dependencies
run: npm install
- Adicione a etapa de build que cria o diretório
diste um arquivo dentro dele:
- name: Build project
run: |
mkdir dist
echo "This is the build artifact" > dist/build.txt
- Adicione a etapa de teste:
- name: Run tests
run: npm test
Seu arquivo completo deve estar assim agora:
name: Upload Artifacts
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Use Node.js
uses: actions/setup-node@v4
with:
node-version: "20"
- name: Install dependencies
run: npm install
- name: Build project
run: |
mkdir dist
echo "This is the build artifact" > dist/build.txt
- name: Run tests
run: npm test
Explicação
mkdir dist: Cria um diretório chamadodist.echo ... > dist/build.txt: Cria um arquivo de texto simples dentro dedistpara simular um asset compilado.
Salve o arquivo (Ctrl+S ou Cmd+S) após fazer as alterações.
Usar actions/upload-artifact@v4 para fazer upload do diretório dist
Agora que produzimos alguns arquivos, precisamos carregá-los (upload). Usaremos a ação oficial actions/upload-artifact.
- Em
.github/workflows/upload-artifacts.yml, adicione uma nova etapa ao final do job:
- name: Upload build artifact
uses: actions/upload-artifact@v4
with:
name: build-assets
path: dist
- Seu arquivo completo deve se parecer com isto:
name: Upload Artifacts
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Use Node.js
uses: actions/setup-node@v4
with:
node-version: "20"
- name: Install dependencies
run: npm install
- name: Build project
run: |
mkdir dist
echo "This is the build artifact" > dist/build.txt
- name: Run tests
run: npm test
- name: Upload build artifact
uses: actions/upload-artifact@v4
with:
name: build-assets
path: dist
Explicação
uses: actions/upload-artifact@v4: Chama a ação para lidar com o upload.name: build-assets: O nome do artefato como ele aparecerá na interface do GitHub (UI).path: dist: O diretório (ou arquivo) a ser carregado.
Salve o arquivo (Ctrl+S ou Cmd+S).
Fazer commit, push e verificar o artefato na UI do GitHub
Nesta etapa, você fará o commit das alterações e as enviará (push) para o GitHub. Isso acionará o workflow que você acabou de atualizar.
- Certifique-se de estar no diretório do repositório:
cd ~/project/github-actions-demo
- Prepare as alterações (Stage the changes):
git add .
- Faça o commit das alterações:
git commit -m "Add build step and upload artifacts"
- 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:
- Um pop-up aparecerá com a mensagem: "The extension 'GitHub' wants to sign in using GitHub." Clique em Allow.
- Uma nova notificação aparecerá. Clique em "Copy&Continue to GitHub" e, em seguida, clique em "Open" no próximo prompt.
- 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.
- 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á 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 processo de autenticação não requer configuração manual de nome de usuário ou Personal Access Token (Token de Acesso Pessoal).
Verificação no GitHub
- Visite seu repositório no GitHub em um navegador da web.
- Clique na aba Actions.
- Clique na execução de workflow mais recente (por exemplo, "Add build step and upload artifacts").
- Role a página de resumo até o final. Você deverá ver uma seção intitulada Artifacts.
- Você deverá ver um artefato chamado
build-assets. - Clique nele para baixá-lo. Será um arquivo zip contendo
build.txt.

Resumo
Neste laboratório, você aprendeu como persistir dados de uma execução de workflow usando artefatos (artifacts). Você:
- Criou uma etapa de "build" que gerou arquivos de saída.
- Usou
actions/upload-artifactpara salvar o diretóriodist. - Verificou que o artefato estava disponível para download na UI do GitHub.
Artefatos são essenciais para compartilhar arquivos entre jobs (por exemplo, de um job de build para um job de deploy) ou para depurar falhas enviando logs.



