Script jenkins pour supprimer des builds d'un job, quand on a besoin de le faire on est contant de ne pas devoir se taper tout ça à la main :)
Jenkins.instance.getItemByFullName('JobName').builds.findAll { it.number > 10 && it.number < 1717 }.each { it.delete() }
Des bonnes pratiques pour optimiser l'utilisation de repos git volumineux avec jenkins (reference repos, shallow clone, sparse checkout...)
Un petit script groovy à lancer sur une instance Jenkins pour trouver l'arbre de dépendences des plugins installés:
def plugins = jenkins.model.Jenkins.instance.getPluginManager().getPlugins()
plugins.each {
println "${it.getShortName()} (${it.getVersion()}) - ${it.getDependencies()}"
}
Jenkins permet d'utiliser un repository de référence local en tant que cache pour les jobs.
- créer un mirroir du repository en local:
git clone --mirror git@github.com:my-user/my-repository.git
- configurer le job jenkins pour utilise le repo de référence:
Git SCM
=>Additional Behavior
=>Advanced clone behaviours
=>Path of the reference repo to use during clone
- mettre à jour régulièrement le repo de référence:
git fetch --all --prune
Les jobs vont alors utiliser ce repo local en tant que cache ce qui peut grandement accélérer les temps de builds pour les repos bien lourds.
La doc pour créer des pipeline Jenkins 2 avec des Jenkinsfile
Un nouveau projet de la fondation Jenkins qui permet d'automatiser une chaîne complète de CI/CD, de la création du repo à la promotion en prod avec Jenkins et Kubernetes. L’intégration semble s’approcher de ce que propose OpenShift en la matière.
Présentation des pipelines de Jenkins 2.
À noter quelques étapes supplémentaires dans le contexte de microservices:
- utilisation d'une release pipeline pour coordonner le déploiement en prod de plusieurs microservices interdépendants
- création d'un artifact manifest lors du build qui recense les versions des différents services
- identification des versions actuellement utilisées en prod et création d'un artifact update qui recense les versions à mettre à jour (diff entre le manifest et la prod)
Un exemple de pipeline avec Openshift et un Jenkins embarqué
Un theme Material Design pour Jenkins
Un tuto pour utiliser les nouvelles fonctionnalités de pipeline de Jenkins 2 avec une application NPM Electron
Best Practices pour utiliser les pipelines avec Jenkins 2.0
Pour gérer les releases Maven avec du Continuous Delivery, l'article propose de préparer la release à chaque build mais de pusher les tags uniquement si la pipeline de test est OK:
1. Do a local checkout in a detached head
2. Use the Maven release plugin to prepare a release with pushChanges=false (we are not going to push the release commits back to master) and preparationGoals=initialize (we don't care if the tag is bad as we will only push tags that are good)
3. Run your stages release through your test pipeline
4. When you are ready to push to production (or if you prefer when ready to push to testing) you push the tag and release the staging repository
Jenkins 2.0 est sorti!
How-to pour mettre en place un Slave Jenkins sur un Mac pour builder des apps IOS depuis le Jenkins Master
1er article d'une série qui propose une alternative plus simple/fiable/rapide au Maven Release Plugin de Jenkins pour créer une nouvelle release Maven.
https://axelfontaine.com/blog/maven-releases-steroids-2.html
https://axelfontaine.com/blog/maven-releases-steroids-3.html
https://axelfontaine.com/blog/final-nail.html
Un repository de scripts Groovy pour administrer Jenkins.
Pour gérer ces scripts depuis Jenkins, il faut installer Scriptler Plugin (https://wiki.jenkins-ci.org/display/JENKINS/Scriptler+Plugin)
Job DSL plugin permet de definir la configuration des jobs Jenkins a l'aide de scripts groovy versionnables
J'utilise copyartifact plugin pour ca. Si tu as un repos maven accessible en http (ex: nexus ou artifactory) l'idéal etant que ton job de build maven publie l'artifact sur le repo maven et que le job de build docker le recupere depuis le repo maven
Une presentation de Multibranch Workflow Plugin qui permet de génerer dynamiquement un deployment pipeline pour toutes les branches d'un repo git à l'aide d'un Jenkinsfile intégré au repo git
Pipeline Plugin (ex Workflow Plugin) permet de générer des deployments pipeline dans Jenkins à l'aide de scripts Groovy