Browse Source

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

Olivier DOSSMANN 6 months ago
parent
commit
58d6ed6032
4 changed files with 104 additions and 0 deletions
  1. 39
    0
      Makefile
  2. 37
    0
      README.md
  3. 15
    0
      deploy.sh
  4. 13
    0
      filesToDeploy.txt

+ 39
- 0
Makefile View File

@@ -0,0 +1,39 @@
1
+APP := $(shell head -n 1 "shard.yml"|cut -d ':' -f 2|tr -d ' ')
2
+VERSION := $(shell sed '2!d' "shard.yml"|cut -d ':' -f 2|tr -d ' ')
3
+DEST = /tmp/${APP}
4
+
5
+all: build
6
+
7
+bin:
8
+	mkdir -p bin
9
+
10
+bin/${APP}:
11
+	crystal build src/${APP}.cr -o bin/${APP} --release --stats
12
+
13
+bin/amber:
14
+	crystal build lib/amber/src/amber/cli.cr -o bin/amber --stats
15
+
16
+build: bin bin/${APP} bin/amber
17
+
18
+dependencies:
19
+	shards install
20
+
21
+${DEST}:
22
+	mkdir -p ${DEST}
23
+
24
+${APP}-${VERSION}.tar.gz: build ${DEST}
25
+	mkdir -p ${DEST}/config/environments/ ${DEST}/src/locales
26
+	cp -r bin/ ${DEST}/
27
+	cp -r db/ ${DEST}/
28
+	cp -r public/ ${DEST}/
29
+	cp -r src/locales ${DEST}/src/locales
30
+	cp config/environments/.production.enc ${DEST}/config/environments/
31
+	tar cvfJ "${APP}-${VERSION}.tar.xz" -C /tmp/ ${APP}
32
+	rm -rf ${DEST}
33
+
34
+extract: ${APP}-${VERSION}.tar.gz
35
+
36
+clean:
37
+	rm -f bin/amber
38
+	rm -f bin/${APP}
39
+	rm -rf ${DEST}

+ 37
- 0
README.md View File

@@ -18,10 +18,18 @@ Mais également d'avoir une alternative OpenSource au très connu Backloggery.co
18 18
 
19 19
 # Installation des dépendances Crystal
20 20
 
21
+Soit : 
22
+
21 23
 ```bash
22 24
 shards install
23 25
 ```
24 26
 
27
+soit :
28
+
29
+```bash
30
+make dependencies
31
+```
32
+
25 33
 # Aperçu de l'application
26 34
 
27 35
 ```
@@ -32,6 +40,35 @@ amber w
32 40
 
33 41
   * [Amber](https://amberframework.org/) - framework pour créer des applications simples, rapides et agréables
34 42
 
43
+# Déploiement
44
+
45
+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**.
46
+
47
+Deux méthodes sont possibles pour approvisionner vos serveurs des fichiers utiles : 
48
+
49
+  * en utilisant une archive .tar.xz générée par Carnetdejeu
50
+  * en faisant une synchronisation via rsync vers le serveur ciblé
51
+
52
+## En utilisant une archive
53
+
54
+Vous pouvez obtenir un fichier archive compressé contenant l'ensemble de ces fichiers en utilisant la commande suivante : 
55
+
56
+```bash
57
+make extract
58
+```
59
+
60
+Cela devrait compiler Amber, Carnetdejeu et créer un fichier **carnetdejeu-0.1.0.tar.xz**.
61
+
62
+C'est le contenu de cette archive que vous pouvez déposer à l'endroit où vous déployer votre application.
63
+
64
+## En utilisant rsync
65
+
66
+Il est possible d'utiliser la commande contenu dans le script **deploy.sh** ou bien directement dans votre terminal :
67
+
68
+```bash
69
+rsync -avP --include-from=filesToDeploy.txt . monserveur:/dossier/de/destination
70
+```
71
+
35 72
 # Contributeurs
36 73
 
37 74
   * Olivier DOSSMANN - création initiale - [blankoworld](https://github.com/blankoworld/)

+ 15
- 0
deploy.sh View File

@@ -0,0 +1,15 @@
1
+#!/usr/bin/env bash
2
+
3
+help() {
4
+    echo "Usage: ./$(basename $0) [destination]" 
5
+}
6
+
7
+if [[ $* < 2 ]] ; then
8
+  echo "No destination given"
9
+  help
10
+  exit 1
11
+fi
12
+
13
+rsync -avP --include-from=filesToDeploy.txt . $1
14
+
15
+exit 0

+ 13
- 0
filesToDeploy.txt View File

@@ -0,0 +1,13 @@
1
++ bin/
2
++ bin/**
3
++ config/
4
++ config/environments/
5
++ config/environments/.production.enc
6
++ db/
7
++ db/**
8
++ public/
9
++ public/**
10
++ src/
11
++ src/locales/
12
++ src/locales/**
13
+- *

Loading…
Cancel
Save