From 8cffa665318ad8dda759f1956c588226c97ea554 Mon Sep 17 00:00:00 2001 From: Jannis Mattheis Date: Fri, 23 Feb 2018 19:01:06 +0100 Subject: [PATCH] Add docker & build on tags --- .travis.yml | 30 +++++++++++++++++++++++++++++- build.sh | 10 +++++----- docker-build.sh | 13 +++++++++++++ docker-push.sh | 5 +++++ docker/Dockerfile | 4 ++++ docker/Dockerfile.arm7 | 4 ++++ 6 files changed, 60 insertions(+), 6 deletions(-) create mode 100644 docker-build.sh create mode 100644 docker-push.sh create mode 100644 docker/Dockerfile create mode 100644 docker/Dockerfile.arm7 diff --git a/.travis.yml b/.travis.yml index 3ccc219..eae8c3a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,3 +1,4 @@ +sudo: required language: go go: - 1.9 @@ -5,6 +6,9 @@ go: notifications: email: false +services: + - docker + env: - DEP_VERSION="0.4.1" @@ -13,6 +17,10 @@ before_install: - chmod +x $GOPATH/bin/dep - chmod +x ./all-test-with-coverage.sh - chmod +x ./swagger-validate.sh + - chmod +x ./build.sh + - chmod +x ./docker-build.sh + - chmod +x ./docker-push.sh + - mkdir build install: - dep ensure @@ -31,4 +39,24 @@ script: - golint -set_exit_status $(go list ./... | grep -v mock) after_success: - - bash <(curl -s https://codecov.io/bash) \ No newline at end of file + - bash <(curl -s https://codecov.io/bash) + +before_deploy: + - docker pull karalabe/xgo-latest + - go get github.com/karalabe/xgo + - ./build.sh ${TRAVIS_TAG#v} + - ./docker-build.sh ${TRAVIS_TAG#v} + +deploy: + - provider: releases + api_key: $GH_TOKEN + file_glob: true + file: build/*.zip + skip_cleanup: true + on: + tags: true + - provider: script + script: bash docker_push.sh + skip_cleanup: true + on: + tags: true \ No newline at end of file diff --git a/build.sh b/build.sh index 0dff0ab..4d9c185 100644 --- a/build.sh +++ b/build.sh @@ -10,7 +10,7 @@ DATE=`date "+%F-%T"` COMMIT=`git rev-parse --verify HEAD` BRANCH=`git rev-parse --abbrev-ref HEAD` URL=github.com/gotify/server -PREFIX=gotify-$VERSION +PREFIX=gotify DEST=./build TARGETS=linux/arm64,linux/amd64,linux/arm-7,windows-10/amd64 LICENSES=./licenses/ @@ -18,15 +18,15 @@ LICENSES=./licenses/ xgo -ldflags "-X main.Version=$VERSION -X main.BuildDate=$DATE -X main.Commit=$COMMIT -X main.Branch=$BRANCH" -targets $TARGETS -dest $DEST -out $PREFIX $URL mkdir $LICENSES -for LICENSE in $(/bin/find vendor/ -name LICENSE | grep -v monkey); do +for LICENSE in $(find vendor/ -name LICENSE | grep -v monkey); do DIR=$(echo $LICENSE | tr "/" _ | sed -e 's/vendor_//; s/_LICENSE//') mkdir $LICENSES$DIR cp $LICENSE $LICENSES$DIR done -for BIN in build/*; do - zip -j $BIN.zip $BIN LICENSE - zip -ur $BIN.zip $LICENSES +for BUILD in $(find build/*); do + zip -j $BUILD.zip $BUILD ./LICENSE + zip -ur $BUILD.zip $LICENSES done rm -rf $LICENSES diff --git a/docker-build.sh b/docker-build.sh new file mode 100644 index 0000000..95a8fc7 --- /dev/null +++ b/docker-build.sh @@ -0,0 +1,13 @@ +#!/usr/bin/env bash + +if [ $# -eq 0 ]; then + echo You need to pass the version as first parameter. + exit 1 +fi + +cp ./build/gotify-linux-amd64 ./docker/gotify-app +(cd docker && docker build -t gotify/server:latest -t gotify/server:$1 .) +rm ./docker/gotify-app +cp ./build/gotify-linux-arm-7 ./docker/gotify-app +(cd docker && docker build -f Dockerfile.arm7 -t gotify/server-arm7:latest -t gotify/server-arm7:$1 .) +rm ./docker/gotify-app \ No newline at end of file diff --git a/docker-push.sh b/docker-push.sh new file mode 100644 index 0000000..fc17673 --- /dev/null +++ b/docker-push.sh @@ -0,0 +1,5 @@ +#!/usr/bin/env bash + +docker login -u "$DOCKER_USERNAME" -p "$DOCKER_PASSWORD"; +docker push gotify/server +docker push gotify/server-arm7 \ No newline at end of file diff --git a/docker/Dockerfile b/docker/Dockerfile new file mode 100644 index 0000000..7c37096 --- /dev/null +++ b/docker/Dockerfile @@ -0,0 +1,4 @@ +FROM frolvlad/alpine-glibc +WORKDIR /app +ADD gotify-app /app/ +ENTRYPOINT ["./gotify-app"] \ No newline at end of file diff --git a/docker/Dockerfile.arm7 b/docker/Dockerfile.arm7 new file mode 100644 index 0000000..46326f9 --- /dev/null +++ b/docker/Dockerfile.arm7 @@ -0,0 +1,4 @@ +FROM resin/armv7hf-debian +WORKDIR /app +ADD gotify-app /app/ +ENTRYPOINT ["./gotify-app"] \ No newline at end of file