Introdução
O Jenkins pode executar builds em diferentes nós. Os rótulos (labels) descrevem o que um nó pode fazer, como linux-build, e os jobs podem exigir um rótulo correspondente antes que o Jenkins os agende. O Jenkins também armazena instalações de ferramentas, como o Git, para que jobs e plugins possam referenciar uma ferramenta nomeada em vez de depender de um caminho fixo (hard-coded).
Neste laboratório, você usará o painel do Jenkins para revisar o nó integrado (built-in node), adicionar um rótulo ao nó, configurar uma ferramenta Git local, criar um job do tipo Freestyle restrito ao rótulo e confirmar a saída do build.
Abrir a página do nó integrado
Nesta etapa, você localizará o nó integrado do Jenkins no painel. Um nó é um local onde o Jenkins pode executar builds. Este laboratório utiliza o nó integrado porque ele já está online no controlador Jenkins do LabEx.
Abra a interface da Área de Trabalho. O Firefox abrirá o Jenkins automaticamente. Caso não abra, acesse http://localhost:8080.
No painel do Jenkins:
Clique em Manage Jenkins na barra lateral esquerda e, em seguida, clique em Nodes. Abra o nó chamado Built-In Node.
A página do nó deve exibir o status do nó integrado e opções de navegação como Configure e Build History.

Execute este comando no terminal para registrar que a página do nó integrado está acessível:
curl -fsS http://localhost:8080/computer/%28built-in%29/ | grep -o 'Built-In Node' | head -1 | tee /home/labex/project/built-in-node-page.txt
Você deverá ver:
Built-In Node
Adicionar um rótulo ao nó integrado
Nesta etapa, você adicionará o rótulo linux-build ao nó integrado. Um rótulo é uma tag de agendamento. Jobs que exigem linux-build só podem ser executados em nós que possuam esse rótulo.
Na página Built-In Node, clique em Configure.
Localize o campo Labels e insira:
linux-build
Clique em Save.
Após salvar, o Jenkins retornará à página do nó integrado. A página deverá exibir o rótulo linux-build.

Configurar uma ferramenta Git local
Nesta etapa, você registrará uma ferramenta Git do Jenkins chamada Local Git. A configuração de ferramentas permite que o Jenkins faça referência a uma instalação nomeada em vez de tentar adivinhar qual executável usar.
No painel do Jenkins:
Clique em Manage Jenkins e, em seguida, clique em Tools.
Role até a seção Git installations. Se uma instalação do Git já existir, atualize a primeira. Se a seção não tiver nenhuma instalação, clique em Add Git.
Preencha a instalação do Git com estes valores:
Name:Local GitPath to Git executable:git
Clique em Save.
O Jenkins armazena essa definição de ferramenta na configuração do seu controlador.

Execute este comando para inspecionar a configuração da ferramenta Git salva:
docker exec jenkins sh -lc "grep -n -E '<name>Local Git</name>|<home>git</home>' /var/jenkins_home/hudson.plugins.git.GitTool.xml" | tee /home/labex/project/git-tool-lines.txt
A saída deve incluir tanto o nome da ferramenta quanto o caminho do executável:
...<name>Local Git</name>
...<home>git</home>
Criar um job restrito ao rótulo
Nesta etapa, você criará um job do tipo Freestyle chamado labeled-tool-demo. O job será restrito a nós com o rótulo linux-build, portanto, o Jenkins deverá agendá-lo no nó integrado que possui esse rótulo.
No painel do Jenkins:
Clique em New Item, digite labeled-tool-demo, selecione Freestyle project e clique em OK.
Na página de configuração:
Selecione Restrict where this project can be run. Em Label Expression, insira:
linux-build
Role até Build Steps, clique em Add build step e selecione Execute shell.
Insira este script shell:
echo "Running on label: linux-build"
git --version
echo "Local Git is available to this build"
Clique em Save.
A página do job deverá abrir após salvar.

Execute este comando para registrar as configurações importantes do job salvo:
docker exec jenkins sh -lc "grep -n -E '<assignedNode>linux-build</assignedNode>|Running on label: linux-build|git --version' /var/jenkins_home/jobs/labeled-tool-demo/config.xml" | tee /home/labex/project/labeled-job-config.txt
Executar o job com rótulo
Nesta etapa, você executará o job e lerá a saída do console. Isso comprova que o Jenkins aceitou a restrição de rótulo e que o build pode executar o Git a partir do ambiente configurado.
Na página do job labeled-tool-demo, clique em Build Now.
Quando o build #1 aparecer no histórico de builds, abra-o e clique em Console Output. O console deve exibir a mensagem do rótulo, uma linha com git version e Finished: SUCCESS.

Execute este comando no terminal para salvar a mesma evidência do console para verificação:
curl -fsS http://localhost:8080/job/labeled-tool-demo/1/consoleText | grep -E 'Running on label|git version|Finished: SUCCESS' | tee /home/labex/project/labeled-job-console.txt
Você deverá ver uma saída como esta:
Running on label: linux-build
git version ...
Finished: SUCCESS
Resumo
Você revisou o nó integrado do Jenkins, adicionou um rótulo linux-build a partir do painel, configurou uma ferramenta Git local nomeada, criou um job do tipo Freestyle restrito ao rótulo e verificou a saída bem-sucedida do build.