fix #2 - Génération des fichiers utiles à la version production

This commit is contained in:
Olivier DOSSMANN 2018-09-04 12:43:46 +02:00
parent ce890c07fd
commit 58d6ed6032
4 changed files with 104 additions and 0 deletions

39
Makefile Normal file
View File

@ -0,0 +1,39 @@
APP := $(shell head -n 1 "shard.yml"|cut -d ':' -f 2|tr -d ' ')
VERSION := $(shell sed '2!d' "shard.yml"|cut -d ':' -f 2|tr -d ' ')
DEST = /tmp/${APP}
all: build
bin:
mkdir -p bin
bin/${APP}:
crystal build src/${APP}.cr -o bin/${APP} --release --stats
bin/amber:
crystal build lib/amber/src/amber/cli.cr -o bin/amber --stats
build: bin bin/${APP} bin/amber
dependencies:
shards install
${DEST}:
mkdir -p ${DEST}
${APP}-${VERSION}.tar.gz: build ${DEST}
mkdir -p ${DEST}/config/environments/ ${DEST}/src/locales
cp -r bin/ ${DEST}/
cp -r db/ ${DEST}/
cp -r public/ ${DEST}/
cp -r src/locales ${DEST}/src/locales
cp config/environments/.production.enc ${DEST}/config/environments/
tar cvfJ "${APP}-${VERSION}.tar.xz" -C /tmp/ ${APP}
rm -rf ${DEST}
extract: ${APP}-${VERSION}.tar.gz
clean:
rm -f bin/amber
rm -f bin/${APP}
rm -rf ${DEST}

View File

@ -18,10 +18,18 @@ Mais également d'avoir une alternative OpenSource au très connu Backloggery.co
# Installation des dépendances Crystal
Soit :
```bash
shards install
```
soit :
```bash
make dependencies
```
# Aperçu de l'application
```
@ -32,6 +40,35 @@ amber w
* [Amber](https://amberframework.org/) - framework pour créer des applications simples, rapides et agréables
# Déploiement
Lorsque vous déployez l'application il n'est pas nécessaire d'avoir l'ensemble des fichiers. Une liste se trouve dans le fichier **filesToDeploy.txt**.
Deux méthodes sont possibles pour approvisionner vos serveurs des fichiers utiles :
* en utilisant une archive .tar.xz générée par Carnetdejeu
* en faisant une synchronisation via rsync vers le serveur ciblé
## En utilisant une archive
Vous pouvez obtenir un fichier archive compressé contenant l'ensemble de ces fichiers en utilisant la commande suivante :
```bash
make extract
```
Cela devrait compiler Amber, Carnetdejeu et créer un fichier **carnetdejeu-0.1.0.tar.xz**.
C'est le contenu de cette archive que vous pouvez déposer à l'endroit où vous déployer votre application.
## En utilisant rsync
Il est possible d'utiliser la commande contenu dans le script **deploy.sh** ou bien directement dans votre terminal :
```bash
rsync -avP --include-from=filesToDeploy.txt . monserveur:/dossier/de/destination
```
# Contributeurs
* Olivier DOSSMANN - création initiale - [blankoworld](https://github.com/blankoworld/)

15
deploy.sh Executable file
View File

@ -0,0 +1,15 @@
#!/usr/bin/env bash
help() {
echo "Usage: ./$(basename $0) [destination]"
}
if [[ $* < 2 ]] ; then
echo "No destination given"
help
exit 1
fi
rsync -avP --include-from=filesToDeploy.txt . $1
exit 0

13
filesToDeploy.txt Normal file
View File

@ -0,0 +1,13 @@
+ bin/
+ bin/**
+ config/
+ config/environments/
+ config/environments/.production.enc
+ db/
+ db/**
+ public/
+ public/**
+ src/
+ src/locales/
+ src/locales/**
- *