Updated docker-push script

This commit is contained in:
Josh Baker 2018-04-30 17:37:24 -07:00
parent 54d6081cfe
commit 1b38bf1993
4 changed files with 53 additions and 34 deletions

View File

@ -7,10 +7,4 @@ script:
- make test
after_success:
- echo $DOCKER_PASSWORD | docker login -u $DOCKER_LOGIN --password-stdin
- export REPO=$DOCKER_USER/tile38
- export COMMIT_SHORT=$(git rev-parse --short HEAD)
- docker build -f docker/Dockerfile -t $REPO:$COMMIT_SHORT .
- export TAG=`if [ ! -z "$TRAVIS_TAG" ]; then echo $TRAVIS_TAG; elif [ "$TRAVIS_BRANCH" == "master" ]; then echo "edge"; else echo ""; fi`
- if [[ ! -z "$TAG" && "$TRAVIS_BRANCH" == "master" && "$TRAVIS_PULL_REQUEST" == "false" ]]; then docker tag $REPO:$COMMIT_SHORT $REPO:$TAG && docker push $REPO:$TAG && echo "Pushed $REPO:$TAG"; else echo "Not pushing, either not on master or on a PR"; fi
- if [[ ! -z "$TRAVIS_TAG" ]]; then docker tag $REPO:$COMMIT_SHORT $REPO:latest && docker push $REPO:latest && echo "Pushed $REPO:latest"; else echo "Not pushing, no tag"; fi
- ./build.sh docker-push

View File

@ -1,7 +1,7 @@
FROM alpine:3.4
ADD ./tile38-server /usr/local/bin
ADD ./tile38-cli /usr/local/bin
ADD tile38-server /usr/local/bin
ADD tile38-cli /usr/local/bin
RUN addgroup -S tile38 && \
adduser -S -G tile38 tile38 && \

View File

@ -24,6 +24,56 @@ if [ "$1" == "update-version" ]; then
exit
fi
if [ "$1" == "docker-push" ]; then
# GIT_BRANCH - such as master or something else.
export GIT_BRANCH=$(git rev-parse --abbrev-ref HEAD)
# GIT_VERSION - always the last verison number, like 1.12.1.
export GIT_VERSION=$(git describe --tags --abbrev=0)
# GIT_TAG - either a version number, like 1.12.1, or the commit after the version, like 1.12.1-10-a718ef0.
export GIT_TAG=$(git describe --tags)
# GIT_COMMIT_SHORT - the short git commit number, like a718ef0.
export GIT_COMMIT_SHORT=$(git rev-parse --short HEAD)
# DOCKER_REPO - the base repository name to push the docker build to.
export DOCKER_REPO=$DOCKER_USER/tile38
if [ "$TRAVIS_PULL_REQUEST" == "true" ]; then
# never push from a pull request
echo "Not pushing, on a PR"
exit
fi
if [ "$GIT_BRANCH" != "master" ]; then
# only the master branch will work
echo "Not pushing, not on master"
exit
fi
if [ "$(git status | grep "nothing to commit, working tree clean")" == "" ]; then
# there's stuff to
echo "Not pushing, local git repo is dirty"
exit
fi
if [ "$(git status | grep "branch is up-to-date")" == "" ]; then
# branch must be up-to-date
echo "Not pushing, branch is not up-to-date with master"
exit
fi
push(){
docker tag $DOCKER_REPO:$GIT_COMMIT_SHORT $DOCKER_REPO:$1
docker push $DOCKER_REPO:$1
echo "Pushed $DOCKER_REPO:$1"
}
# docker login
echo $DOCKER_PASSWORD | docker login -u $DOCKER_LOGIN --password-stdin
# build the docker image
docker build -f Dockerfile -t $DOCKER_REPO:$GIT_COMMIT_SHORT .
if [ "$GIT_VERSION" == "$GIT_TAG" ]; then
push "$GIT_VERSION"
push "latest"
fi
push "edge"
exit
fi
# Check go install
if [ "$(which go)" == "" ]; then
echo "error: Go is not installed. Please download and follow installation instructions at https://golang.org/dl to continue."

View File

@ -1,25 +0,0 @@
![Tile38 Logo](https://raw.githubusercontent.com/tidwall/tile38/master/pkg/assets/logo200.png)
Tile38 is an open source (MIT licensed), in-memory geolocation data store, spatial index, and realtime geofence. It supports a variety of object types including lat/lon points, bounding boxes, XYZ tiles, Geohashes, and GeoJSON.
*For more information visit: [http://tile38.com](http://tile38.com)*
## Features
- Spatial index with [search](#searching) methods such as Nearby, Within, and Intersects.
- Realtime [geofencing](#geofencing) through persistent sockets or [webhooks](http://tile38.com/commands/sethook).
- Object types of [lat/lon](#latlon-point), [bbox](#bounding-box), [Geohash](#geohash), [GeoJSON](#geojson), [QuadKey](#quadkey), and [XYZ tile](#xyz-tile).
- Support for lots of [Clients Libraries](#client-libraries) written in many different languages.
- Variety of protocols, including [http](#http) (curl), [websockets](#websockets), [telnet](#telnet), and the [Redis RESP](http://redis.io/topics/protocol).
- Server responses are [RESP](http://redis.io/topics/protocol) or [JSON](http://www.json.org).
- Full [command line interface](#cli).
- Leader / follower [replication](#replication).
- In-memory database that persists on disk.
## Contact
Josh Baker [@tidwall](http://twitter.com/tidwall)
## License
Tile38 source code is available under the MIT [License](/LICENSE).