Definir um job de compilação (build)
Primeiro, vamos limpar nosso workflow existente para ter um build job focado. Simplificaremos a estratégia de matriz do laboratório anterior para maior clareza, voltando a uma única versão para manter o foco nas dependências de jobs.
- 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 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
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/job-dependencies.yml usando o editor WebIDE. Você pode encontrar o arquivo no explorador de arquivos no lado esquerdo, em project/github-actions-demo/.github/workflows/.
-
Comece criando a estrutura básica do workflow. Adicione o nome do workflow e o gatilho (trigger):
name: Job Dependencies
on: [push]
- Adicione a seção
jobs e defina o job de build com seu executor (runner):
jobs:
build:
runs-on: ubuntu-latest
- Adicione a seção
steps. Primeiro, adicione a etapa de checkout para obter o código do repositório:
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 para executar os testes:
- name: Run tests
run: npm test
- Adicione a etapa de build que cria o diretório de artefato e o arquivo:
- name: Build project
run: |
mkdir dist
echo "Build artifact created at $(date)" > dist/build.txt
- Finalmente, adicione a etapa de upload de artefato. Esta etapa é crucial porque salva a saída do build para que o próximo job possa usá-la:
- name: Upload build artifact
uses: actions/upload-artifact@v4
with:
name: dist-files
path: dist
Seu arquivo completo deve estar assim agora:
name: Job Dependencies
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: Run tests
run: npm test
- name: Build project
run: |
mkdir dist
echo "Build artifact created at $(date)" > dist/build.txt
- name: Upload build artifact
uses: actions/upload-artifact@v4
with:
name: dist-files
path: dist
Explicação
- Removemos a estratégia
matrix por simplicidade.
- Mantivemos a etapa
Upload build artifact. Isso é crucial porque o próximo job precisará desses arquivos!
Salve o arquivo (Ctrl+S ou Cmd+S) após fazer as alterações.