@@ -38,10 +38,18 @@ endif
3838
3939DOCKER_TOOLS = docker run \
4040 --rm \
41- -v $(shell bash -c "go env GOCACHE || (mkdir -p /tmp/go-cache; echo /tmp/go-cache) "):/tmp/build/.cache \
42- -v $(shell bash -c "go env GOMODCACHE || (mkdir -p /tmp/go-modcache; echo /tmp/go-modcache) "):/tmp/build/.modcache \
41+ -v $(shell bash -c "go env GOCACHE 2>/dev/null || (mkdir -p /tmp/go-cache; echo /tmp/go-cache) "):/tmp/build/.cache \
42+ -v $(shell bash -c "go env GOMODCACHE 2>/dev/null || (mkdir -p /tmp/go-modcache; echo /tmp/go-modcache) "):/tmp/build/.modcache \
4343 -v $$(pwd ) :/build loop-tools
4444
45+ DOCKER_RELEASE_BUILDER = docker run \
46+ --rm \
47+ -v $(shell bash -c "go env GOCACHE 2>/dev/null || (mkdir -p /tmp/go-cache; echo /tmp/go-cache) "):/tmp/build/.cache \
48+ -v $(shell bash -c "go env GOMODCACHE 2>/dev/null || (mkdir -p /tmp/go-modcache; echo /tmp/go-modcache) "):/tmp/build/.modcache \
49+ -v $$(pwd ) :/repo \
50+ -e LOOPBUILDSYS='$(buildsys ) ' \
51+ loop-release-builder
52+
4553GREEN := "\\033[0;32m"
4654NC := "\\033[0m"
4755define print
@@ -71,6 +79,13 @@ install:
7179 $(GOINSTALL ) -tags=" ${tags} " $(LDFLAGS ) $(PKG ) /cmd/loop
7280 $(GOINSTALL ) -tags=" ${tags} " $(LDFLAGS ) $(PKG ) /cmd/loopd
7381
82+ # docker-release: Same as release.sh but within a docker container to support
83+ # reproducible builds on any platform.
84+ docker-release : docker-release-builder
85+ @$(call print, "Building release binaries in docker.")
86+ @if [ " $( tag) " = " " ]; then echo " Must specify tag=<commit_or_tag>!" ; exit 1; fi
87+ $(DOCKER_RELEASE_BUILDER ) bash release.sh $(tag )
88+
7489rpc :
7590 @$(call print, "Compiling protos.")
7691 cd ./swapserverrpc; ./gen_protos_docker.sh
@@ -131,6 +146,10 @@ docker-tools:
131146 @$(call print, "Building tools docker image.")
132147 docker build -q -t loop-tools $(TOOLS_DIR )
133148
149+ docker-release-builder :
150+ @$(call print, "Building release builder docker image.")
151+ docker build -q -t loop-release-builder -f release.Dockerfile .
152+
134153mod-tidy :
135154 @$(call print, "Tidying modules.")
136155 $(GOMOD ) tidy
0 commit comments