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
هذا الالتزام موجود في:
22
.github/build-and-upload.sh
مباع
Normal file → Executable file
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
|
||||||
|
|||||||
30
build.sh
30
build.sh
@@ -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
|
||||||
|
|||||||
المرجع في مشكلة جديدة
حظر مستخدم