diff --git a/.gitignore b/.gitignore index 2f2fa21..f972526 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ .idea/ vendor/ composer.phar +dist/ diff --git a/README.md b/README.md index 7f94557..3fe00ee 100644 --- a/README.md +++ b/README.md @@ -41,6 +41,11 @@ return [ - ``` php run.php``` +# Builder un release distribuable + +Créer un TAG dans GIT (Ex : 1.0.2) puis lancer la commande, elle va créer un zip dans le dossier build + - ``` ./release.sh``` + # FAQ - [Impossible de créer un mot de passe d'application ?](https://support.google.com/accounts/answer/185833) diff --git a/release.sh b/release.sh new file mode 100644 index 0000000..dec890c --- /dev/null +++ b/release.sh @@ -0,0 +1,67 @@ +#!/bin/bash + +# Récupère le nom du projet (nom du répertoire) +project=${PWD##*/} + +# Non du dossier d'export +folder="dist" + +# Vérifie si un paramètre est passé +if [ -n "$1" ] + then + # Si oui, nous le prenons comme tag + tag="$1" + else + # Sinon, on récupère le dernier tag de GIT + tag="$(git describe --abbrev=0)" +fi + +# On affiche le projet et le tag qui va être construit +echo "------" +echo "- $project" +echo "- Tag : $tag" +echo "------" + + +# Supprime les anciens builds +rm "$folder" -R -f + +# Créé un dossier pour le build +mkdir "$folder/$tag" -p + +# Récupère le code source sur git +git archive --format tar.gz -o "$folder"/"$tag"/source.tar.gz "$tag" + +# Se place dans le répertoire du build +cd "$folder/$tag" + +# Extrait le code source de l'archive +tar -xvf source.tar.gz + +# Supprime le fichier d'archive +rm source.tar.gz + +# Passe en PHP 8.0 pour faire le build +update-alternatives --set php /usr/bin/php8.0 + +# Autorise l'exécution de composer en root +export COMPOSER_ALLOW_SUPERUSER=1 + +# Configuration de production pour le build +export APP_ENV=prod + +# Build les dépendances PHP +composer install --prefer-dist --no-interaction --no-dev -o + +# Créé le fichier de configuration +mv "config.php.dist" "config.php" + +# Supprime les fichiers non utiles en ligne +rm -rf "release.sh" +rm -rf "composer.lock" +rm -rf ".gitignore" + +# Créé un zip du répertoire pour le déploiement par un tiers +zip -r ../"$project-$tag.zip" ./ + +echo "Fin" \ No newline at end of file