2022-09: Guide de migration springboard
Motivations
Nous souhaitons uniformiser la gestion des dépendances front et alléger le build front qui n’est pas performant.
Pour cela nous allons alléger le tooling : suppression de bower et gulp => npm devient l’outil principale
Le thème gère ses overrides et le springboard ne tire que les dépendances déjà buildé: lib js, thème css, widgets.
Migration
Gestion des thèmes
Créer un dossier “assets/themes” contenant uniquement un fichier package.json comme suit:
{
"name": "themes",
"version": "1.0.0",
"description": "",
"license": "ISC",
"dependencies": {
"theme-open-ent":"npm:ode-csslib-openent@dev-produit",
"panda":"npm:ode-csslib-panda@dev-produit",
"paris":"npm:theme-open-ent-paris@dev-produit",
"paris1d":"npm:panda-paris@dev-produit",
"ode-bootstrap-neo":"npm:ode-bootstrap-neo@dev-produit",
"ode-bootstrap-one":"npm:ode-bootstrap-one@dev-produit"
}
}
Pour chaque dépendance spécifier le tag (ici “dev-produit” ou le numéro de version).
Eventuellement il est possible de renommer le thème par exemple ici nous allons avoir le thème panda-paris installé dans le dossier “paris”
"paris":"npm:theme-open-ent-paris@dev-produit",
A noter que si assets/themes existait déjà, supprimer le contenu de ce dossier avant la migration
Gestion des lib JS
Créer un dossier “assets/js” contenant uniquement un fichier package.json comme suit:
{
"name": "js",
"version": "1.0.0",
"description": "",
"license": "ISC",
"dependencies": {
"ode-ngjs-front":"dev-produit",
"ode-ts-client":"dev-produit",
"entcore": "dev-produit"
}
}
Pour chaque dépendance spécifier le tag (ici “dev-produit” ou le numéro de version).
Gestion des widgets
Créer un dossier “assets/widgets” contenant uniquement un fichier package.json comme suit:
Pour chaque dépendance spécifier la branche sur laquelle tirer le widget.
A noter que si assets/widgets existait déjà, supprimer le contenu de ce dossier avant la migration
Nettoyage
Supprimer les fichiers: bower.json, gulpfile.js
Déplacer le fichier “theme-conf.js” dans le dossier “assets” et ne conserver que cette section:
Modification du build.sh
La fonction buildFront du build.sh devient:
Migration vers déploiement auto (facultatif)
Motivations
Avec le déploiement auto nous n’avons plus besoin de packager un springboard avec des jar par conséquent gradle n’est plus nécessaire.
Supprimer gradle
Supprimer les fichiers et dossiers suivants: conf.properties, build.gradle, gradlew, gradlew.bat, gradle/.
Nettoyer gradle.properties
Le fichier gradle.properties ne contient que ces clés:
Nettoyer le build.sh
Le fichier build.sh ne contient que ces fonctions:
Nettoyer le JenkinsFile
Le JenkinsFile ne contient que ces taches: