Jenkins é um servidor de automação de código aberto independente que pode ser usado para automatizar todos os tipos de tarefas relacionadas à criação, teste e entrega ou implantação de software.
O Jenkins pode ser instalado por meio de pacotes nativos do sistema, Docker ou até mesmo executado de forma autônoma por qualquer máquina com um Java Runtime Environment (JRE) instalado.
Documentação oficial https://www.jenkins.io/doc/
- No terminal, acesse: docker run -p 8080:8080 -p 50000:50000 -v jenkins_home:/var/jenkins_home jenkins/jenkins:lts-jdk11
- Vá para o navegador e acesse o endereço: http://localhost:8080/
- Caso a senha de acesso ao Jenkins não seja exibida no log (Apenas no primeiro acesso), utilize o comando: "docker logs (ID-container" para obter a senha de acesso. (Ex: b2afb7b062d64c90b9770d78af25ff7b)
- Após inserir a senha na página do jenkins e avançar, selecione a opção: Install Suggested plugins
- Após a finalização, crie um usuário e senha.
- Ao finalizar a criação do usuário e senha, confirme o endereço informado como localhost.
- Atualize a página e insira os dados de login para ter acesso a página.
Exemplo 1 - Clonar o repositório github no script do pipeline do Jenkins e rodar um arquivo de script bash para imprimir hello world
- Na tela principal do Jenkins, clique em "create a job".
- Escolha um nome e selecione a opção "pipeline".
- Na seção Pipeline -> Script insira o código abaixo:
pipeline {
agent any
stages {
stage('Build') {
steps {
// Get some code from a GitHub repository
git url: 'https://github.com/naiveskill/devops.git', branch: 'main'
// Change file permisson
sh "chmod +x -R ./jenkins"
// Run shell script
sh "./jenkins/script/scripted_pipeline_ex_2.sh"
}
}
}
}
- Deve ficar desta forma.
- Clique em Salvar
- Clicar em Build now (Construa agora)
- Na tela principal do Jenkins, clique em "create a job".
- Escolha um nome e selecione a opção "pipeline".
- Na seção "pipeline" insira o código:
pipeline {
agent any
stages {
stage('Build') {
steps {
checkout([$class: 'GitSCM',
branches: [[name: '*/main']],
doGenerateSubmoduleConfigurations: false,
extensions: [[$class: 'CleanCheckout']],
submoduleCfg: [],
userRemoteConfigs: [[url: 'https://github.com/naiveskill/devops.git']]])
sh "ls -ltr"
}
}
}
}
- Deve ficar desta forma.
- Clique em Salvar
- Clicar em Build now (Construa agora)
Integrando o Jenkins com o github
- Na tela principal do Jenkins, clique em "create a job".
- Escolha um nome e selecione a opção "pipeline".
- Em Build Trigger, marque a opção: GitHub hook trigger for GITScm polling
- No tópico Pipeline, em definition, altere para: "Pipeline Script from SCM". Em SCM, selecione: GIT. Em "Repository url" digite: https://github.com/marquescami/Jenkins Em script Path, altere para: hello-world/Jenkinsfile. Em seguida salve as alterações.
- Acesse esse repositório https://github.com/marquescami/Jenkins e faça um fork do repositório.
- Dentro do repositório GitHub da aplicação, acesse configurações (Settings). Em seguida, no menu a esquerda, acesse o item: “Webhook” > add webhook.
- Instalar o ngrok (https://ngrok.com/download) e digitar o comando, no terminal: ngrok http 8080
- Efetue o login no Github. Na nova tela, em: “Payload Url”, insira: “Ip fornecido pelo ngrok/github-webhook/”. Em content type, selecione: application/json. Em seguida clique em add Webhook.
- Na página principal do Jenkins, clique em Construir agora ou Build Now.
- O status da compilação será exibido na tela. A integração já está finalizada com estes passos.
- No seu diretório do github realize qualquer alteração, como um push ou commit.
- O jenkins identificará a alteração na página principal.