diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..05fa32e --- /dev/null +++ b/Makefile @@ -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} diff --git a/README.md b/README.md index 2ba5858..3d3712e 100644 --- a/README.md +++ b/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/) diff --git a/deploy.sh b/deploy.sh new file mode 100755 index 0000000..e9ecadc --- /dev/null +++ b/deploy.sh @@ -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 diff --git a/filesToDeploy.txt b/filesToDeploy.txt new file mode 100644 index 0000000..7d36bac --- /dev/null +++ b/filesToDeploy.txt @@ -0,0 +1,13 @@ ++ bin/ ++ bin/** ++ config/ ++ config/environments/ ++ config/environments/.production.enc ++ db/ ++ db/** ++ public/ ++ public/** ++ src/ ++ src/locales/ ++ src/locales/** +- *