This repository has been archived by the owner on Feb 15, 2021. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 5
/
build_with_docker.sh
executable file
·58 lines (43 loc) · 1.48 KB
/
build_with_docker.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#!/usr/bin/env bash
function assert_is_zero() {
local NAME=$1
local VALUE=$2
[[ ${VALUE} -eq 0 ]] && echo "$NAME... OK" || echo "$NAME... NOK! (expect 0 but got: ${VALUE})"
}
function verify_environment() {
echo "--- Verify environment ---"
docker ps 1> /dev/null
assert_is_zero "Docker daemon" "$?"
}
function build_docker_image() {
echo "--- BUILD DOCKER IMAGE ---"
IMAGE=$(grep "IMAGE" easyfxml-docker/docker-build.env | cut -d'=' -f2)
TAG=$(grep "TAG" easyfxml-docker/docker-build.env | cut -d'=' -f2)
echo "Will build image ${IMAGE}:${TAG}"
set -x
docker build "easyfxml-docker" -t "${IMAGE}:${TAG}"
set +x
assert_is_zero "Docker build result" "$?"
}
function build_via_docker_image() {
echo "--- BUILD AND TEST IN DOCKER IMAGE ---"
local CANDIDATE_IMAGES
CANDIDATE_IMAGES=$(docker images | grep "${IMAGE}" | grep "${TAG}")
assert_is_zero "Image available" "$?"
printf "Candidate images:\n%s\n" "$CANDIDATE_IMAGES"
local MOUNTED_DIR
local M2_DIR_ABSOLUTE
if [ "$(command -v cygpath)" ]; then
MOUNTED_DIR=$(cygpath -aw .)
M2_DIR_ABSOLUTE=$(cygpath -aw "$HOME/.m2")
else
MOUNTED_DIR=$(pwd)
M2_DIR_ABSOLUTE="$HOME/.m2"
fi
local IMAGE_PROJECT_DIR="/root/build"
set -x
docker run -v "${MOUNTED_DIR}":${IMAGE_PROJECT_DIR} -v "${M2_DIR_ABSOLUTE}":/root/.m2 -it "${IMAGE}":"${TAG}" clean install
}
verify_environment
build_docker_image
build_via_docker_image