devops
Jenkins
devops java CICD Testing monorepo
💻
Documentación
Videos
Conceptos Fundamentales
- Despliegue, plugins
- Arquitectura Master / Slave (Controller / Agents)
- Agents, API Tokens
- Pipelines, Branches
- Jenkinsfile
- Docker integración completa
- Compilación, tests, deploy automatizado
- Integración con Git, Testing y Deploy
- Ejemplos:
- Ejecutar tests en cada commit
- Desplegar app tras aprobar un pipeline
- Flujo de trabajo CI/CD
- Test servers, stages, artifacts
- Jobs vs Tasks
- Integraciones externas (GitHub, GitLab, Slack, SonarQube…)
- Pipelines Multibranch
Pipeline
- Using Docker with Pipeline
- Declarative vs Scripted Pipelines
- Stages, Steps y Post Actions
- Control de errores (
try/catch,post { failure { ... } }) - Variables de entorno y credenciales
- Notificaciones (email, Slack, PR status)
- Deployment strategies: blue/green, rolling, canary
Plugins
- Buscador de Plugins
- Plugin Nuclei
- Otros recomendados:
- GitHub Integration
- Pipeline: Multibranch
- Blue Ocean
- Credentials Binding
- JUnit
- Docker Pipeline
Jenkinsfile
- Configuration as Code
- Declaración de pipelines como código (IaC)
- Reutilizar steps con shared libraries
- Estructura básica del Jenkinsfile
Código — Ejemplo Jenkinsfile Declarativo
pipeline {
agent any
stages {
stage('Build') {
steps {
sh 'npm install'
}
}
stage('Test') {
steps {
sh 'npm test'
}
}
stage('Docker Build') {
steps {
sh 'docker build -t app:latest .'
}
}
stage('Deploy') {
steps {
sh './deploy.sh'
}
}
}
post {
success {
echo "Pipeline finalizado con éxito."
}
failure {
echo "Pipeline fallido."
}
}
}
`
Docker-in-Docker
- rancher/jenkins-master
- Ejecutar contenedores Docker dentro de Jenkins
- Requiere permisos y configuración del Docker socket
- Útil para pipelines de build, test y deploy basados en contenedores
Monitoring
- Integración con Prometheus y Grafana
- Exportadores de métricas
- Monitoring del estado de jobs, agentes y recursos
Información de Imagen Docker
- admin-dev
c******1****- deved
http://localhost:8080/- Email notifications
- PR status updates
- Uso de
BUILD_URLpara logs y links directos
omnivore jenkins
type: list
name: "Notas con #jenkins en Omnivore"
order:
- property: date_saved
direction: desc
columns:
- file.name
- date_saved
filters:
and:
- file.inFolder("Omnivore")
- file.hasTag("jenkins", "Jenkins")
views:
- type: table
name: Table
sort:
- property: file.mtime
direction: DESC
¿Te gusta este contenido? SuscrÃbete vÃa RSS