|
|
### Drush
|
|
|
|
|
|
Attention, le drush global du serveur ne fonctionne pas pour les sites dev / preprod / prod d'université, pour s'en servir il faut invoquer le binaire de drush du dépôt directement (donc `/private/colibris-universite.org/vendor/bin/drush`).
|
|
|
C'est dû aux variables d'environnement qui ne sont pas disponibles en PHP CLI pour le moment (Florian n'a pas réussi à les rendre dispo), ce qui mène à des valeurs vides dans le fichier `settings.local.php` du site.
|
|
|
L'invocation du binaire du dépôt fonctionne car drush charge le fichier .env du dossier `private/colibris-universite.org`. Cela mériterait d'être simplifié.
|
|
|
|
|
|
### Dev local et mises à jour :
|
|
|
|
|
|
Pré-requis : savoir se servir de Composer. Si ce n'est pas le cas je vous invite à lire un article comme https://www.hostinger.fr/tutoriels/comment-installer-et-utiliser-composer/.
|
|
|
|
|
|
L'idée est d'utiliser la même tuyauterie partout pour construire le projet. Combawa est une partie de notre réponse à cela. On a basculé l'université sur Composer également pour que les mises à jour de modules se fassent de la même façon sur l'université, sur mon profil et demain sur d'autres projets de la même façon.
|
|
|
|
|
|
#### Utiliser Combawa
|
|
|
|
|
|
Nous nous appuyons sur l'utilitaire [Combawa](https://github.com/Happyculture/combawa/) pour builder les projets. Ce script sert à construire tous les environnements de la même façon en partant d'un dump de reference (voir doc pour détails).
|
|
|
|
|
|
Faire un `composer install`, créer le fichier `web/sites/default/settings.local.php` avec le contenu suivant :
|
|
|
|
|
|
```
|
|
|
<?php
|
|
|
|
|
|
// Environment variables are defined in the .env file at the project root.
|
|
|
$databases['default']['default'] = [
|
|
|
'host' => getenv('COMBAWA_DB_HOSTNAME'),
|
|
|
'port' => getenv('COMBAWA_DB_PORT'),
|
|
|
'database' => getenv('COMBAWA_DB_DATABASE'),
|
|
|
'password' => getenv('COMBAWA_DB_PASSWORD'),
|
|
|
'username' => getenv('COMBAWA_DB_USER'),
|
|
|
'prefix' => '',
|
|
|
'driver' => 'mysql',
|
|
|
'namespace' => 'Drupal\\Core\\Database\\Driver\\mysql',
|
|
|
];
|
|
|
|
|
|
$conf['_bypass_360_learning_import'] = TRUE; // Flag temporaire pour la maintenance d'août 2020 qui permet de contourner la migration des 130 000 comptes. À retirer une fois les évols mises en prod.
|
|
|
$conf['cas_server'] = 'sso.colibris.fun'; // URL de l'instance du SSO vers laquelle pointer.
|
|
|
$conf['theme_debug'] = FALSE;
|
|
|
$conf['preprocess_css'] = FALSE;
|
|
|
$conf['preprocess_js'] = FALSE;
|
|
|
|
|
|
```
|
|
|
Vous pouvez évidemment personnaliser le contenu des variables de config avec vos besoins locaux.
|
|
|
|
|
|
Pour que les variables d'environnement récupèrent une valeur, il faut créer un `.env` à la racine de votre dépôt. Vous pouvez le faire avec la commande interactive `drupal combawa:generate-environment`.
|
|
|
|
|
|
Voici un aperçu du fichier généré :
|
|
|
|
|
|
```
|
|
|
##### LOCAL project settings.
|
|
|
# All these settings are overriding the scripts/settings.sh global project
|
|
|
# variables and are available in all the scripts/* files.
|
|
|
|
|
|
# Local environment.
|
|
|
COMBAWA_ENV=dev
|
|
|
|
|
|
# Local build mode. Should never differ from global one.
|
|
|
COMBAWA_BUILD_MODE=update
|
|
|
|
|
|
# Backup base before build.
|
|
|
COMBAWA_BACKUP_BASE=0
|
|
|
|
|
|
# Environment URI (site local).
|
|
|
COMBAWA_WEBSITE_URI=https://universite.fun
|
|
|
|
|
|
# Whether to retrieve the dump from a remote server or not.
|
|
|
# Re-run the generate-environment script to change this value afterwards.
|
|
|
COMBAWA_FETCH_DB_DUMP=0
|
|
|
|
|
|
|
|
|
|
|
|
# Name of the reference dump name in the repo.
|
|
|
COMBAWA_DUMP_FILE_NAME=reference_dump.sql
|
|
|
|
|
|
##### Drush settings.
|
|
|
# Drush reads .env files and use these settings by default.
|
|
|
|
|
|
DRUSH_OPTIONS_URI=https://universite.fun
|
|
|
|
|
|
##### Database access settings.
|
|
|
|
|
|
COMBAWA_DB_HOSTNAME="localhost"
|
|
|
COMBAWA_DB_PORT=3306
|
|
|
COMBAWA_DB_DATABASE="colibris_universite_dev"
|
|
|
COMBAWA_DB_USER="artusamak"
|
|
|
COMBAWA_DB_PASSWORD=""
|
|
|
```
|
|
|
|
|
|
Il manque une dernière étape pour pouvoir construire le projet. Il faut que vous récupériez un dump gzippé de la prod (sanitisé de préférence vu que tout le monde aime le RGPD ;-)). Il faut sauvegarder ce dump à la racine du dépôt et le nommer comme votre variable COMBAWA_DUMP_FILE_NAME (par défaut "reference_dump.sql").
|
|
|
|
|
|
Vous pouvez maintenant lancer Combawa qui va supprimer le contenu local de la base de dev que vous avez renseigné dans le fichier `.env` (il faut avoir créé la base manuellement). Ensuite le dump de la prod sera décompressé, importé puis les mises à jour seront jouées pour pouvoir avoir un site prêt à l'emploi si tout va bien.
|
|
|
|
|
|
Commande pour lancer Combawa depuis la racine du dépôt : `./vendor/bin/combawa.sh`
|
|
|
|
|
|
Conseil : Pour ne pas avoir à lancer le binaire explicitement à chaque fois, vous pouvez installer [Combawa Wrapper](https://github.com/Happyculture/combawa-wrapper) pour lancer Combawa comme via la commande globale `combawa`.
|
|
|
|
|
|
#### Mettre à jour un module
|
|
|
|
|
|
En poussant dans le dépôt une mise à jour d'un module dans le Composer, il sera mis à jour sur chaque environnement une fois déployé.
|
|
|
|
|
|
La mise à jour d'un module Drupal se fait avec la commande suivante : `composer update drupal/module --with-dependencies`. La commande respecte les contraintes de version déclarées dans le `composer.json`. Les versions de modules Drupal 7 sont transformées en notation Semver (Ex : 7.x-1.4 devient 1.4.0).
|
|
|
|
|
|
Il ne reste plus qu'à commiter les fichiers `composer.json` et `composer.lock` mis à jour et lors du déploiement, les mises à jour se répercuteront automatiquement.
|
|
|
|
|
|
#### SSO
|
|
|
|
|
|
Pour activer le SSO local, monter une instance de l'université + mon profil en local.
|
|
|
|
|
|
Se connecter sur la version locale de "mon profil", ajouter un service (Configuration > Personnes > Serveur CAS > Ajouter/Modifier la définition d'un service) avec l'URL de votre instance de dév de l'université, indiquer qu'il appartient au processus de login via SSO et sélectionner les attributs à synchroniser.
|
|
|
|
|
|
![image](uploads/fdd64c9546afc136c9c2c04655bfb73f/image.png)
|
|
|
|
|
|
Sur le site local de l'université via un `drush uli`, se connecter en tant qu'admin et modifier l'URL du serveur CAS (Personnes > Paramètres de CAS) pour indiquer l'URL locale de votre instance mon profil.
|
|
|
|
|
|
Une fois cela fait, vous pouvez maintenant vous connecter sur le site local université via le SSO local.
|
|
|
|
|
|
Ajouter au `settings.local.php` du projet université : `$conf['cas_server'] = 'url.dev';` pour ne pas avoir à modifier l'url du serveur dans les écrans d'admin (ne pas renseigner le protocole).
|
|
|
|
|
|
|
|
|
Flag temporaire : pour court-circuiter la fonction de mise à jour qui synchronise l'inscription aux formations vers un champ du profil, ajouter dans le `settings.local.php` le drapeau suivant : `$conf['_bypass_360_learning_import'] = TRUE;` |
|
|
\ No newline at end of file |
|
|
[Documentation fonctionnelle](/Fonctionnel)
|
|
|
[Documentation technique](/Technique) |
|
|
\ No newline at end of file |