Publication d'une nouvelle version
La publication d'une nouvelle version d'Open ENT consiste à :
- livrer les JARS dans un référentiel de librairies
- publier les containers dans un registre de container
Publication dans un référentiel de librairies
Open ENT est configuré par défaut pour livrer les librairies dans 2 référentiels : Nexus et GitHub package.
Publication dans un référentiel de librairies Nexus
Nexus Repository Manager est un outil de gestion de référentiels qui permet de stocker, gérer et distribuer des artefacts logiciels, tels que des fichiers JAR (Java ARchive), des fichiers WAR, des bibliothèques, et d'autres types de fichiers binaires. Voici les principales utilisations de Nexus en ce qui concerne les JARs
Pour livrer une nouvelle version d'Open ENT dans Nexus
Publication dans le Nexus https://nexus.tech.fr/
mvn deploy -Pdeploy -Pdeploy-nexus
Publication dans un réferentiel de librairies GitHub
Le référentiel GitHub Package Registry (ou GitHub Packages) est un service de gestion d'artefacts fourni par GitHub qui permet de stocker, gérer et distribuer des packages ou des artefacts logiciels directement à partir de GitHub.
Publication dans le gestionnaire de package GitHub
mvn deploy -Pdeploy -Pdeploy-github
Publication des containers dans un régistre de containers
Un registre de conteneurs (ou container registry) est un service qui stocke et distribue des images de conteneurs Docker ou OCI. Ces images sont pré-construites et peuvent être tirées (pulled) par des environnements d'exécution de conteneurs (comme Docker, Docker Compose (utilisé pour le déploiement en local ou sur un serveur) ou Kubernetes (déploiement sur un serveur )) pour créer des instances de conteneurs.
Les containers Docker sont déployés suivant le profil Maven dans 2 registres de container différents :
- avec le profil
-Pdeploy-ghcr
, les containers serons déployés dansghcr.io/pass-tech-developpement/open-ent
- avec le profil
-Pdeploy-nexus-registry
, les containers serons déployés dansnexus-docker.tech.fr/pass-tech-developpement/open-ent
Suivant le profil Les containers peuvent être alors récupéré manuellement de la façon suivante.
docker pull ghcr.io/pass-tech-developpement/open-ent/catalog:1.2.0
docker pull nexus-docker.tech.fr/pass-tech-developpement/open-ent/catalog:1.2.0
Le nom et la version du container dépendent de du pom.xml.
Comme pour la construction des modules, il est possible de construire les containers avec une version particulière
mvn install -Pjib -Dquarkus.container-image.tag=1.0.1-dev
Par défaut JIB utilise la configuration Docker installé. Vous devez réaliser une commande docker login
avec votre registre de container pour pouvoir publier un container.
Exemple :
docker login nexus-docker.tech.fr
Le token est alors conservé dans votre répertoire $HOME/.docker/config.json
et utilisé par JIB lors des commandes Maven.
Publication complète d'Open ENT
Une livraison complète d'Open ENT pour déployer à la fois les containers avec la partie frontend se fera avec la commande :
mvn install -Pdeploy-ghcr -Pfrontend
Publication du launcher
Pour le moment, il est nécessaire de préciser les prorpriétés en ligne de commande car toutes propriétés du profil ne sont pas utilisés par defaut
mvn -Pdeploy-ghcr -Dquarkus.container-image.push=true -Dmaven.test.skip=true \
-Dquarkus.container-image.registry=ghcr.io \
-Dquarkus.container-image.group=pass-tech-developpement \
-Dquarkus.container-image.name=open-ent/launcher