This repository has been archived by the owner on Oct 15, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 85
/
Copy pathbuild-images.sh
executable file
·73 lines (62 loc) · 2.29 KB
/
build-images.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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#!/bin/bash
#
# Copyright 2019 JanusGraph Authors
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
set -eu
# optional version argument
version="${1:-}"
# get all versions
versions=($(ls -d [0-9]*))
get_full_version () {
echo "$(grep "ARG JANUS_VERSION" $1/Dockerfile | head -n 1 | cut -d"=" -f 2)"
}
get_latest_version () {
for v in "${versions[@]}"; do
full_version=$(get_full_version $v)
if [[ $full_version != *"-"* ]]; then
latest_version="${v}"
fi
done
echo $latest_version
}
# get the last element of sorted version folders
latest_version=$(get_latest_version)
echo "latest_version: ${latest_version}"
REVISION="$(git rev-parse --short HEAD)"
CREATED="$(date -u +%Y-%m-%dT%H:%M:%SZ)"
IMAGE_NAME="docker.io/janusgraph/janusgraph"
echo "REVISION: ${REVISION}"
echo "CREATED: ${CREATED}"
echo "IMAGE_NAME: ${IMAGE_NAME}"
# enable buildkit
export DOCKER_BUILDKIT=1
for v in "${versions[@]}"; do
if [ -z "${version}" ] || [ "${version}" == "${v}" ]; then
# prepare docker tags
full_version=$(get_full_version $v)
full_version_with_revision="${full_version}-${REVISION}"
# build and test image
docker build -f "${v}/Dockerfile" -t "${IMAGE_NAME}:${full_version}" ${v} --build-arg REVISION="$REVISION" --build-arg CREATED="$CREATED"
./test-image.sh "${IMAGE_NAME}:${full_version}"
# add relevant tags
docker tag "${IMAGE_NAME}:${full_version}" "${IMAGE_NAME}:${v}"
echo "Successfully tagged ${IMAGE_NAME}:${v}"
docker tag "${IMAGE_NAME}:${full_version}" "${IMAGE_NAME}:${full_version_with_revision}"
echo "Successfully tagged ${IMAGE_NAME}:${full_version_with_revision}"
if [ "${v}" == "${latest_version}" ]; then
docker tag "${IMAGE_NAME}:${v}" "${IMAGE_NAME}:latest"
echo "Successfully tagged ${IMAGE_NAME}:latest"
fi
fi
done