Commit 0fcc5051 authored by Stephane Bouvry's avatar Stephane Bouvry
Browse files

- Fix : Erreur lien UnicaenSignature (image docker)

 - Fix : Script oscar-update + Ajout du fichier MAINTENANCE + Yarn
 - Docker image : Yarn/Node fix
parent 338fffea
Loading
Loading
Loading
Loading
Loading
+14 −47
Original line number Diff line number Diff line
@@ -16,15 +16,6 @@ Faites une sauvegarde de la BDD pour pouvoir revenir en arrière en cas de probl
pg_dump --clean --no-owner -h [SERVER] -U [USER] [BASE] > /tmp/backup_oscar-prod.sql
```

## Mettre en maintenance

Commencez par mettre Oscar OFFLINE en créant un fichier MAINTENANCE à la racine de la copie :

```bash
touch MAINTENANCE
```

L'application doit maintenant proposer un écran d'accueil "Oscar est en maintenance".


## Mise à jour des sources
@@ -41,62 +32,38 @@ Si des conflits de fichiers surviennent, vous pouvez utiliser la commande
git reset --hard origin/master
```

## Mise à jour

## Mise à jour des vendors (Librairies tiers)

En utilisant **composer** :

```bash
composer install
```


## Mise à jour de la BDD

Il faut mettre à jour le schéma avec l'utilitaire intégré à **Doctrine** :
En utilisant le script de mise à jour fournit **oscar-update.sh** :

```bash
# Pour prévisualiser
php vendor/bin/doctrine-module orm:schema-tool:update --dump-sql

# Pour appliquer
php vendor/bin/doctrine-module orm:schema-tool:update --force
. oscar-update.sh
```
> Si des opérations spécifiques autres doivent être appliquées, elles seront spécifiées dans la note de mise à jour
 

## Vérifier la configuration
## Problèmes connus / Infos utiles

> Selon la mise à jour, la configuration peut avoir été mise à jour, contrôler le fichier `./config/autoload/local.php.dist`. Si une mise à jour implique des changements plus spécifiques, ces derniers seront documentés en détails dans un document dédié.
### Vérifiez la configuration

Vous pouvez utiliser la commande de diagnostique `php bin/oscar.php check:config`, elle va vérifier les éléments principaux de la configuration pour s'assurer que rien ne manque :
Le script `pgp bin/oscar.php check:config` permet d'automatiser certains tests basiques pour contrôler la configuration de l'application

```bash
# Test de la configuration
# Recalculer les séquences d'ID
php bin/oscar.php check:config
```

## Mise à jour des privilèges

Lors d'ajout de fonctionnalité, les privilèges sont généralement enrichis, pour les mettre à jour :

```bash
# Mise à jour des privileges
php bin/oscar.php check:privileges
```

Pour des raisons techniques, cette commande doit être exécutée plusieurs fois jusqu'à obtenir un message :

**Les privilèges sont à jour**

### Oscar est en maintenance

## Remise en service
La présence d'un fichier `./public/MAINTENANCE` permet de rendre l'application indisponible (sauf en ligne de commande), pensez à le supprimer.

```bash
# Remettre en production
rm MAINTENANCE
# Passer l'application en maintenance
touch public/MAINTENANCE
```

## Recalculer les séquences de numérotation automatiquement
### Recalculer les séquences de numérotation automatiquement

Après des dumps/backups de données, il est souhaitable de lancer un recaclule de la séquence des IDS des tables :

+2 −0
Original line number Diff line number Diff line
@@ -105,6 +105,8 @@ RUN apt-get install -y nodejs

# installation de Yarn (gestionnaire de dépendance node)
RUN npm install --global yarn
WORKDIR /var/application/ui
RUN yarn install

# Copier le script de surveillance
WORKDIR /var/application
+20 −6
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@ for arg in "$@"; do
done

if [ "$SKIP_NODE" -eq 0 ]; then
  echo "Compilation UI (NodeJS)"
  # Vérifier que Node.js est installé
  if ! command -v node >/dev/null 2>&1; then
    echo "❌ Node.js n'est pas installé."
@@ -61,25 +62,26 @@ fi

COMPOSER_VERSION=$(composer --version | awk '{print $3}')

if [ "$COMPOSER_VERSION" ~= "^2\.2\..*$" ]; then
# shellcheck disable=SC1073
if [[ ! "$COMPOSER_VERSION" =~ ^2\.2\..*$ ]]; then
  echo "❌ Composer version 2.2.x requise. Version actuelle : $COMPOSER_VERSION"
  exit 1
fi
echo "✅ Composer version $COMPOSER_VERSION détectée (== 2.2.24)"

echo "############################################### COMPOSER UPDATE"
## On passe l'application en maintenance
touch public/MAINTENANCE

## mise à jour des dépendances PHP
composer install --no-interaction

echo "############################################### MODEL UPDATE"
## Mise à jour du modèle (si besoin)
php vendor/bin/doctrine-module orm:schema-tool:update --force --complete


echo "############################################### CHECK PRIVILEGES"
## Mise à jour des privilèges
php bin/oscar.php check:privileges -n

# Build de l'interface
if [ "$SKIP_NODE" -eq 0 ]; then
  echo "############################################### UI"
  cd ui
@@ -90,9 +92,21 @@ fi
# Lien symbolique (UnicaenSignature)
mkdir -p public/unicaen
cd public/unicaen
ln -sf /var/application/vendor/unicaen/signature/public/dist signature
ln -sf ./../../vendor/unicaen/signature/public/dist signature
cd ../../

# Fichiers éditables
touch config/autoload/oscar-editable.yml
touch config/autoload/oscar.text.custom.json
chmod 777 config/autoload/oscar-editable.yml
chmod 777 config/autoload/oscar.text.custom.json

# Génération du CHANGELOG accessible depuis le pied de page
echo "############################################### UPDATE INFOS"
git config --global --add safe.directory $(pwd)
php bin/oscar.php infos

# Fin de la maintenance
rm public/MAINTENANCE