fix #2 - Génération des fichiers utiles à la version production
This commit is contained in:
parent
ce890c07fd
commit
58d6ed6032
39
Makefile
Normal file
39
Makefile
Normal 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}
|
37
README.md
37
README.md
@ -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
15
deploy.sh
Executable 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
13
filesToDeploy.txt
Normal file
@ -0,0 +1,13 @@
|
||||
+ bin/
|
||||
+ bin/**
|
||||
+ config/
|
||||
+ config/environments/
|
||||
+ config/environments/.production.enc
|
||||
+ db/
|
||||
+ db/**
|
||||
+ public/
|
||||
+ public/**
|
||||
+ src/
|
||||
+ src/locales/
|
||||
+ src/locales/**
|
||||
- *
|
Loading…
Reference in New Issue
Block a user