Build scripts refactoring (#33)

* Build scripts refactoring

`.github/build-and-upload.sh` to use `build.sh`
Related to  #32

* Update build.sh

Following review comments
هذا الالتزام موجود في:
zstadler
2023-01-12 11:24:39 +02:00
ملتزم من قبل GitHub
الأصل 7b50d771d5
التزام f06f2beb48
2 ملفات معدلة مع 31 إضافات و21 حذوفات

22
.github/build-and-upload.sh مباع Normal file → Executable file
عرض الملف

@@ -1,20 +1,12 @@
#!/bin/bash #!/bin/bash
echo "Cloning graphhopper" echo "Buidling and pushing israelhikingmap/graphhopper:latest"
git clone https://github.com/graphhopper/graphhopper.git ./build.sh --push
echo "Building docker image"
docker build . -t israelhikingmap/graphhopper:latest
docker login --username $DOCKERHUB_USER --password $DOCKERHUB_TOKEN
echo "Publishing docker image"
docker push israelhikingmap/graphhopper:latest
TAG=`cd graphhopper; git for-each-ref --sort=committerdate refs/tags | tail -n 1 | cut -d "/" -f3` TAG=`cd graphhopper; git for-each-ref --sort=committerdate refs/tags | sed -n '$s/.*\///p'`
if docker manifest inspect israelhikingmap/graphhopper:$TAG >/dev/null; then if docker manifest inspect "israelhikingmap/graphhopper:${TAG}" >/dev/null; then
echo "No need to publish existing version: $TAG"; echo "No need to push existing version: ${TAG}";
else else
(cd graphhopper ; git checkout tags/$TAG) echo "Buidling and pushing israelhikingmap/graphhopper:${TAG}"
echo "Building docker image for tag: $TAG" ./build.sh --push "${TAG}"
docker build . -t israelhikingmap/graphhopper:$TAG
echo "Publishing docker image for tag: $TAG"
docker push israelhikingmap/graphhopper:$TAG
fi fi

عرض الملف

@@ -2,19 +2,32 @@
usage() ( usage() (
cat <<USAGE cat <<USAGE
Build a docker image Build a docker image for GraphHopper and optionally push it to Docker Hub
Usage: Usage:
./build.sh [<tag> | --help] ./build.sh [[--push] <tag>]
./build.sh --help
Argument: Argument:
<tag> Build an image for the given graphhopper repository tag [default: master] <tag> Build an image for the given graphhopper repository tag [default: master]
Option: Option:
--help Print this message --push Push the image to Docker Hub
--help Print this message
Docker Hub credentials are needed for pushing the image. If they are not provided using the
DOCKERHUB_USER and DOCKERHUB_TOKEN environment variables, then they will be asked interactively.
USAGE USAGE
) )
if [ "$1" == "--push" ]; then
push="true"
docker login --username "${DOCKERHUB_USER}" --password "${DOCKERHUB_TOKEN}" || exit $?
shift
else
push="false"
fi
if [ $# -gt 1 ] || [ "$1" == "--help" ]; then if [ $# -gt 1 ] || [ "$1" == "--help" ]; then
usage usage
exit exit
@@ -23,6 +36,9 @@ fi
if [ ! -d graphhopper ]; then if [ ! -d graphhopper ]; then
echo "Cloning graphhopper" echo "Cloning graphhopper"
git clone https://github.com/graphhopper/graphhopper.git git clone https://github.com/graphhopper/graphhopper.git
else
echo "Pulling graphhopper"
(cd graphhopper; git checkout master; git pull)
fi fi
imagename="israelhikingmap/graphhopper:${1:-latest}" imagename="israelhikingmap/graphhopper:${1:-latest}"
@@ -32,8 +48,10 @@ if [ "$1" ]; then
fi fi
echo "Building docker image ${imagename}" echo "Building docker image ${imagename}"
docker build . -t ${imagename} docker build . -t "${imagename}"
if [ $# -eq 1 ]; then if [ "${push}" == "false" ]; then
echo "Use \"docker push ${imagename}\" to publish the image on Docker Hub" echo "Use \"docker push ${imagename}\" to publish the image on Docker Hub"
else
docker push "${imagename}"
fi fi