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.
git clone --mirror git@github.com:my-user/my-repository.git
Git SCM
=> Additional Behavior
=> Advanced clone behaviours
=> Path of the reference repo to use during clone
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:
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
L'article explique les pratiques de l'intégration continue et fourni un set de dockerfiles permettant de démarrer une stack CI complète avec Jenkins, Nexus, Sonarqube, Gitlab et 2 nodes Selenium (FF et Chrome) pour les tests UI.
Les dockerfiles sont ici: https://github.com/marcelbirkner/docker-ci-tool-stack
CloudBees Docker Hub Notification Plugin permet automatiser le déclenchement de jobs jenkins à chaque fois qu'une image docker est modifiée (ex: relancer le build et le test des applis à chaque fois qu'on applique les mis à jours de sécurité sur l'image docker base)
Un tuto pour automatiser la création et le déploiement d'images docker dans GoogleCloud avec Jenkins, Packer et Kubernetes
Le contenu du tuto (dockerfiles...) est disponible sur github: https://github.com/GoogleCloudPlatform/kube-jenkins-imager
Cas d'utilisation de Docker et Jenkins pour créer un CD Pipeline
Un exemple d'utilisation de docker pour automatiser des tests unitaires et d'intégrations avec maven/jenkins et selenium
Howto pour utiliser le Docker Workflow Plugin de Jenkins.
Ce plugin permet à Jenkins de builder un container docker, de l'enregistrer dans un repo docker (Docker Registry) et de lancer ses tests sur le container.
Une image docker pour jenkins
Plugin Jenkins pour uploader les artifacts dans S3
cf: https://wiki.jenkins-ci.org/display/JENKINS/S3+Plugin