Pour chiffrer les password dans les settings maven:
$ mvn --encrypt-master-password
Password:
{jSMOWnoPFgsHVpMvz5VrIt5kRbzGpI8u+9EF1iFQyJQ=}
$ cat << EOF >> ~/.m2/settings-security.xml
<settingsSecurity>
<master>{jSMOWnoPFgsHVpMvz5VrIt5kRbzGpI8u+9EF1iFQyJQ=}</master>
</settingsSecurity>
EOF
$ mvn --encrypt-password
Password:
{COQLCE6DU6GtcS5P=}
$ cat << EOF >> ~/.m2/settings.xml
<settings>
...
<servers>
...
<server>
<id>my.server</id>
<username>foo</username>
<password>{COQLCE6DU6GtcS5P=}</password>
</server>
...
</servers>
...
</settings>
EOF
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
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
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
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
Une introduction au plugin Docker Maven pour gérer ses déploiements dans des containers depuis Maven
Maven expliqué avec notamment la liste de plugins utiles pour gérer les différentes étapes du build aux tests d'intégration et au déploiement
Un exemple d'utilisation de docker pour automatiser des tests unitaires et d'intégrations avec maven/jenkins et selenium
Introduction à Liquibase pour versionner les modifications de schemas de bases de données
Une introduction au binary repository management tools comme nexus qui permettent de stocker les artifacts après le build
Introduction au concept de repository Maven et au repository manager Nexus