Browse Source

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

master
Olivier DOSSMANN 1 year 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 @@
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
- 0
README.md 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
- 0
deploy.sh 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
- 0
filesToDeploy.txt View File

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

Loading…
Cancel
Save