mirror of
https://github.com/spaytac/orbiter.git
synced 2026-01-21 21:44:47 +00:00
Merge pull request #37 from fntlnz/36-build-improvements
Build improvement closes #36
This commit is contained in:
commit
adbd52a28e
1
.gitignore
vendored
1
.gitignore
vendored
@ -1,2 +1 @@
|
|||||||
bin/
|
bin/
|
||||||
.idea/
|
|
||||||
|
|||||||
@ -5,11 +5,11 @@ services:
|
|||||||
- docker
|
- docker
|
||||||
script:
|
script:
|
||||||
#- sudo PATH=$PATH GOPATH=$GOPATH make ci binaries
|
#- sudo PATH=$PATH GOPATH=$GOPATH make ci binaries
|
||||||
- make ci binaries
|
- make ci
|
||||||
after_success:
|
after_success:
|
||||||
- docker login -u $DOCKER_USER -p $DOCKER_PASS
|
- if [ "$TRAVIS_BRANCH" == "master" ] && [ "$TRAVIS_PULL_REQUEST_BRANCH" == "" ]; docker login -u $DOCKER_USER -p $DOCKER_PASS
|
||||||
- export REPO=gianarb/orbiter
|
- export REPO=gianarb/orbiter
|
||||||
- if [ "$TRAVIS_BRANCH" == "master" ] && [ "$TRAVIS_PULL_REQUEST_BRANCH" == "" ]; then docker build -f Dockerfile.image -t $REPO . && docker push $REPO; else echo "I only push from master branch." ; fi
|
- if [ "$TRAVIS_BRANCH" == "master" ] && [ "$TRAVIS_PULL_REQUEST_BRANCH" == "" ]; then docker build -f Dockerfile -t $REPO . && docker push $REPO; else echo "I only push from master branch." ; fi
|
||||||
env:
|
env:
|
||||||
global:
|
global:
|
||||||
- secure: "MN7hNDnx47U9ZCg78GjEGDH5//lLfVzCKnJyPdT4jpYWM05pDB1rPrNwIPZOVuz4XT/x07Oa5M695Pkt61L+yVVfs+AUN6bYwffKWRU0T1dvXzJneB64JQeIGkqyiAHAmrjlpgzOgfB7EcmH4aEFq1HXYCqrvIgAX75D9l/T3xuRXdIzyVLzD3CZZQSZK5cFT37niofMvHoJgmBg5u8FEd2yR2M2LJGbIpXuB3UOn2yqRZHELVg12zhOwgqE+sQtqzBwirx9GObo5x4Nh7AWHIEN/K4BsxMXwZcWSySb0QxRtPpeyiItdDNr62W2MHpyEy//0sJwC5FFhsBzGfSlLpTV+YPrmaXju81JddQVyaB7l6gR3qnwrEywlLBSU3K71FJTHerq23KQV5p50JKA0oYAkKzDtaj0yJAXpFXZbXQq1cOVQidz7Suhi5ZsobI1bzWb5gELCeqCXr0aweTQXqch7Uom4qhIf6aK961F5dvUubzYcgKqbGRBp2F72rls2+9AvnQwUHnPC574sv88oTj0JrDDZoku4vBqSgNkOOICtekBNnksAZLbWasom/+ksqGyZX8qlbf1LLfhwVLqdFgWXrHggO8r8rh8i9MyON0K04hnTHsPHU8+kmbtzZwbXwnVmrJlWnlpolt5CT5XbaPpPwDxvoYsKx0WoYsmZ20="
|
- secure: "MN7hNDnx47U9ZCg78GjEGDH5//lLfVzCKnJyPdT4jpYWM05pDB1rPrNwIPZOVuz4XT/x07Oa5M695Pkt61L+yVVfs+AUN6bYwffKWRU0T1dvXzJneB64JQeIGkqyiAHAmrjlpgzOgfB7EcmH4aEFq1HXYCqrvIgAX75D9l/T3xuRXdIzyVLzD3CZZQSZK5cFT37niofMvHoJgmBg5u8FEd2yR2M2LJGbIpXuB3UOn2yqRZHELVg12zhOwgqE+sQtqzBwirx9GObo5x4Nh7AWHIEN/K4BsxMXwZcWSySb0QxRtPpeyiItdDNr62W2MHpyEy//0sJwC5FFhsBzGfSlLpTV+YPrmaXju81JddQVyaB7l6gR3qnwrEywlLBSU3K71FJTHerq23KQV5p50JKA0oYAkKzDtaj0yJAXpFXZbXQq1cOVQidz7Suhi5ZsobI1bzWb5gELCeqCXr0aweTQXqch7Uom4qhIf6aK961F5dvUubzYcgKqbGRBp2F72rls2+9AvnQwUHnPC574sv88oTj0JrDDZoku4vBqSgNkOOICtekBNnksAZLbWasom/+ksqGyZX8qlbf1LLfhwVLqdFgWXrHggO8r8rh8i9MyON0K04hnTHsPHU8+kmbtzZwbXwnVmrJlWnlpolt5CT5XbaPpPwDxvoYsKx0WoYsmZ20="
|
||||||
|
|||||||
14
Dockerfile
Normal file
14
Dockerfile
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
FROM golang:1.8.3 as builder
|
||||||
|
|
||||||
|
RUN mkdir -p /go/src/github.com/gianarb/orbiter
|
||||||
|
ADD . /go/src/github.com/gianarb/orbiter/
|
||||||
|
WORKDIR /go/src/github.com/gianarb/orbiter
|
||||||
|
RUN make build
|
||||||
|
|
||||||
|
FROM scratch
|
||||||
|
|
||||||
|
COPY --from=builder /go/src/github.com/gianarb/orbiter/bin/orbiter /bin/orbiter
|
||||||
|
|
||||||
|
ENTRYPOINT ["orbiter"]
|
||||||
|
|
||||||
|
CMD ["orbiter", "daemon"]
|
||||||
@ -1,11 +0,0 @@
|
|||||||
FROM golang:1.8.3
|
|
||||||
|
|
||||||
RUN mkdir -p /go/src/github.com/gianarb/orbiter
|
|
||||||
ADD . /go/src/github.com/gianarb/orbiter/
|
|
||||||
WORKDIR /go/src/github.com/gianarb/orbiter
|
|
||||||
RUN go build -o orbiter
|
|
||||||
RUN mv ./orbiter /bin/orbiter
|
|
||||||
|
|
||||||
|
|
||||||
ENTRYPOINT ["orbiter"]
|
|
||||||
CMD ["orbiter", "daemon"]
|
|
||||||
@ -1,7 +0,0 @@
|
|||||||
FROM scratch
|
|
||||||
|
|
||||||
ADD ./bin/orbiter /bin/orbiter
|
|
||||||
|
|
||||||
ENTRYPOINT ["orbiter"]
|
|
||||||
|
|
||||||
CMD ["orbiter", "daemon"]
|
|
||||||
2
LICENSE
2
LICENSE
@ -1,4 +1,4 @@
|
|||||||
Apache License
|
Apache License
|
||||||
Version 2.0, January 2004
|
Version 2.0, January 2004
|
||||||
http://www.apache.org/licenses/
|
http://www.apache.org/licenses/
|
||||||
|
|
||||||
|
|||||||
46
Makefile
46
Makefile
@ -1,23 +1,35 @@
|
|||||||
|
out_binary=bin/orbiter
|
||||||
|
docker_image_fqdn=docker.io/gianarb/orbiter
|
||||||
PACKAGES=$(shell go list ./... | grep -v /vendor/)
|
PACKAGES=$(shell go list ./... | grep -v /vendor/)
|
||||||
RACE := $(shell test $$(go env GOARCH) != "amd64" || (echo "-race"))
|
RACE=$(shell test $$(go env GOARCH) != "amd64" || (echo "-race"))
|
||||||
|
|
||||||
|
.PHONY: build
|
||||||
|
build: clean $(out_binary)
|
||||||
|
|
||||||
|
$(out_binary): bin
|
||||||
|
mkdir -p ./bin
|
||||||
|
CGO_ENABLED=0 GOOS=linux go build -o $(out_binary) -a -tags netgo -ldflags '-w' .
|
||||||
|
|
||||||
|
bin:
|
||||||
|
mkdir -p bin/
|
||||||
|
|
||||||
|
.PHONY: build/docker-image
|
||||||
|
docker-image:
|
||||||
|
docker build -t $(docker_image_fqdn):latest .
|
||||||
|
|
||||||
|
.PHONY: clean
|
||||||
|
help: ## this help
|
||||||
|
awk 'BEGIN {FS = ":.*?## "} /^[a-zA-Z_-]+:.*?## / {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}' $(MAKEFILE_LIST) | sort
|
||||||
|
|
||||||
|
.PHONY: ci test vet
|
||||||
|
ci: vet test
|
||||||
|
|
||||||
test: ## run tests, except integration tests
|
test: ## run tests, except integration tests
|
||||||
@go test ${RACE} ${PACKAGES}
|
go test ${RACE} ${PACKAGES}
|
||||||
|
|
||||||
binaries:
|
|
||||||
@echo "Compiling..."
|
|
||||||
@mkdir -p ./bin
|
|
||||||
@go build -i -o ./bin/orbiter
|
|
||||||
@CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -i -o ./bin/orbiter
|
|
||||||
@echo "All done! The binaries is in ./bin let's have fun!"
|
|
||||||
|
|
||||||
build/docker: binaries
|
|
||||||
@docker build -t gianarb/orbiter:latest .
|
|
||||||
|
|
||||||
vet: ## run go vet
|
vet: ## run go vet
|
||||||
@test -z "$$(go vet ${PACKAGES} 2>&1 | grep -v '*composite literal uses unkeyed fields|exit status 0)' | tee /dev/stderr)"
|
test -z "$$(go vet ${PACKAGES} 2>&1 | grep -v '*composite literal uses unkeyed fields|exit status 0)' | tee /dev/stderr)"
|
||||||
|
|
||||||
help: ## this help
|
.PHONY: clean
|
||||||
@awk 'BEGIN {FS = ":.*?## "} /^[a-zA-Z_-]+:.*?## / {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}' $(MAKEFILE_LIST) | sort
|
clean:
|
||||||
|
rm -Rf bin/
|
||||||
ci: vet test
|
|
||||||
Loading…
Reference in New Issue
Block a user