21 lines
970 B
Bash
21 lines
970 B
Bash
#!/usr/bin/env bash
|
|
# Construit l'image de production (build/deploy, voir make package) sous une
|
|
# étiquette propre à ce dépôt, et la lance. À sourcer depuis la racine du
|
|
# dépôt ; définit site_image, container et port, et arrête le conteneur puis
|
|
# supprime l'image à la sortie du script.
|
|
#
|
|
# Plusieurs copies de travail (worktrees) peuvent lancer leurs tests en même
|
|
# temps : avec une étiquette commune, docker échouait (« parent snapshot ...
|
|
# does not exist »). Le suffixe est un hachage court du chemin du dépôt.
|
|
|
|
site_image="ustagammon/site-test:$(pwd -P | sha1sum | cut -c1-12)"
|
|
docker build -q -t "$site_image" build/deploy >/dev/null
|
|
container="$(docker run -d --rm -p 127.0.0.1::80 "$site_image")"
|
|
site_cleanup() {
|
|
docker stop "$container" >/dev/null 2>&1 || true
|
|
docker rmi "$site_image" >/dev/null 2>&1 || true
|
|
}
|
|
trap site_cleanup EXIT
|
|
port="$(docker port "$container" 80/tcp | head -n1 | sed 's/.*://')"
|
|
export site_image container port
|