@@ -25,9 +25,13 @@ define rocketpool-cli-template
2525${BIN_DIR}/rocketpool-cli-$1-$2: ${bin_deps}
2626 @echo "Building rocketpool-cli-$1-$2"
2727ifndef NO_DOCKER
28- docker run --rm -v ./:/src --user $(shell id -u):$(shell id -g) -e CGO_ENABLED=0 \
29- -e GOARCH=$2 -e GOOS=$1 --workdir /src -v ~/.cache:/.cache rocketpool/smartnode-builder:${VERSION} \
30- go build -o $$@ ./rocketpool-cli/
28+ docker run --rm -v ./:/src --user $(shell id -u):$(shell id -g) \
29+ -e CGO_ENABLED=0 -e XDG_CACHE_HOME=/go/.cache \
30+ -e GOMODCACHE=/go/.cache/pkg/mod \
31+ -e GOCACHE=/go/.cache/go-build \
32+ -e GOARCH=$2 -e GOOS=$1 \
33+ --workdir /src -v ~/.cache:/go/.cache \
34+ rocketpool/smartnode-builder:${VERSION} go build -o $$@ ./rocketpool-cli/
3135else
3236 CGO_ENABLED=0 GOOS=$1 GOARCH=$2 go build -o $$@ ./rocketpool-cli/
3337endif
@@ -66,18 +70,28 @@ ifndef NO_DOCKER
6670 bin_deps += docker-builder
6771endif
6872
69- docker_build_cmd_amd64 = docker run --rm -v ./:/src --user $(shell id -u) :$(shell id -g) -e CGO_ENABLED=1 -e CGO_CFLAGS="-O -D__BLST_PORTABLE__" \
70- -e GOARCH=amd64 -e GOOS=linux --workdir /src -v ~/.cache:/.cache rocketpool/smartnode-builder:${VERSION} \
71- go build
73+ docker_build_cmd_amd64 = docker run --rm -v ./:/src --user $(shell id -u) :$(shell id -g) \
74+ -e CGO_ENABLED=1 -e CGO_CFLAGS="-O -D__BLST_PORTABLE__" \
75+ -e GOARCH=amd64 -e GOOS=linux \
76+ -e XDG_CACHE_HOME=/go/.cache \
77+ -e GOMODCACHE=/go/.cache/pkg/mod \
78+ -e GOCACHE=/go/.cache/go-build \
79+ --workdir /src -v ~/.cache:/go/.cache \
80+ rocketpool/smartnode-builder:${VERSION} go build
7281local_build_cmd_amd64 = CGO_ENABLED=1 CGO_CFLAGS="-O -D__BLST_PORTABLE__" GOARCH=amd64 GOOS=linux go build
73- docker_build_cmd_arm64 = docker run --rm -v ./:/src --user $(shell id -u) :$(shell id -g) -e CGO_ENABLED=1 -e CGO_CFLAGS="-O -D__BLST_PORTABLE__" \
74- -e CC=aarch64-linux-gnu-gcc -e CXX=aarch64-linux-gnu-cpp -e CGO_CFLAGS="-O -D__BLST_PORTABLE__" -e GOARCH=arm64 -e GOOS=linux \
75- --workdir /src -v ~/.cache:/.cache rocketpool/smartnode-builder:${VERSION} \
76- go build
82+ docker_build_cmd_arm64 = docker run --rm -v ./:/src --user $(shell id -u) :$(shell id -g) \
83+ -e CGO_ENABLED=1 -e CC=aarch64-linux-gnu-gcc -e CXX=aarch64-linux-gnu-cpp \
84+ -e CGO_CFLAGS="-O -D__BLST_PORTABLE__" -e GOARCH=arm64 -e GOOS=linux \
85+ -e XDG_CACHE_HOME=/go/.cache \
86+ -e GOMODCACHE=/go/.cache/pkg/mod \
87+ -e GOCACHE=/go/.cache/go-build \
88+ --workdir /src -v ~/.cache:/go/.cache \
89+ rocketpool/smartnode-builder:${VERSION} go build
7790local_build_cmd_arm64 = CGO_ENABLED=1 CC=aarch64-linux-gnu-gcc CXX=aarch64-linux-gnu-cpp CGO_CFLAGS="-O -D__BLST_PORTABLE__" GOARCH=arm64 GOOS=linux go build
7891# amd64 daemon build
7992.PHONY : ${BIN_DIR}/rocketpool-daemon-linux-amd64
8093${BIN_DIR}/rocketpool-daemon-linux-amd64 : ${bin_deps}
94+ @echo " Building rocketpool-daemon-linux-amd64"
8195ifndef NO_DOCKER
8296 ${docker_build_cmd_amd64} -o $@ rocketpool/rocketpool.go
8397else
87101# arm64 daemon build
88102.PHONY : ${BIN_DIR}/rocketpool-daemon-linux-arm64
89103${BIN_DIR}/rocketpool-daemon-linux-arm64 : ${bin_deps}
104+ @echo " Building rocketpool-daemon-linux-arm64"
90105ifndef NO_DOCKER
91106 ${docker_build_cmd_arm64} -o $@ rocketpool/rocketpool.go
92107else
@@ -105,6 +120,7 @@ $(foreach oos,$(CLI_TARGET_OOS),$(foreach arch,$(ARCHS),$(eval $(call rocketpool
105120# amd64 treegen build
106121.PHONY : ${BIN_DIR}/treegen-linux-amd64
107122${BIN_DIR}/treegen-linux-amd64 : ${bin_deps}
123+ @echo " Building treegen-linux-amd64"
108124ifndef NO_DOCKER
109125 ${docker_build_cmd_amd64} -o $@ ./treegen/.
110126else
@@ -114,6 +130,7 @@ endif
114130# arm64 treegen build
115131.PHONY : ${BIN_DIR}/treegen-linux-arm64
116132${BIN_DIR}/treegen-linux-arm64 : ${bin_deps}
133+ @echo " Building treegen-linux-arm64"
117134ifndef NO_DOCKER
118135 ${docker_build_cmd_arm64} -o $@ ./treegen/.
119136else
@@ -123,6 +140,7 @@ endif
123140# amd64 state-cli build
124141.PHONY : ${TOOLS_DIR}/state-cli-linux-amd64
125142${TOOLS_DIR}/state-cli-linux-amd64 : ${bin_deps}
143+ @echo " Building state-cli-linux-amd64"
126144ifndef NO_DOCKER
127145 ${docker_build_cmd_amd64} -o $@ ./shared/services/state/cli/.
128146else
@@ -132,6 +150,7 @@ endif
132150# arm64 state-cli build
133151.PHONY : ${TOOLS_DIR}/state-cli-linux-arm64
134152${TOOLS_DIR}/state-cli-linux-arm64 : ${bin_deps}
153+ @echo " Building state-cli-linux-arm64"
135154ifndef NO_DOCKER
136155 ${docker_build_cmd_arm64} -o $@ ./shared/services/state/cli/.
137156else
@@ -151,14 +170,14 @@ docker: ${BUILD_DIR}/docker-buildx-builder
151170
152171.PHONY : docker-push
153172docker-push : ${BUILD_DIR}/docker-buildx-builder
154- echo -n " Building ${VERSION} and publishing containers. Continue? [yN]: " && read ans && if [ $$ {ans:-' N' } != ' y' ]; then exit 1; fi
173+ @ echo -n " Building ${VERSION} and publishing containers. Continue? [yN]: " && read ans && if [ $$ {ans:-' N' } != ' y' ]; then exit 1; fi
155174 # override the output type to push to dockerhub
156175 VERSION=${VERSION} ${SOURCE} docker bake --builder smartnode-builder -f docker/daemon-bake.hcl smartnode --set " smartnode.output=type=registry"
157- echo " Done!"
176+ @ echo " Done!"
158177
159178.PHONY : docker-latest
160179docker-latest : ${BUILD_DIR}/docker-buildx-builder
161- echo -n " Building ${VERSION} , tagging as latest, and publishing. Continue? [yN]: " && read ans && if [ $$ {ans:-' N' } != ' y' ]; then exit 1; fi
180+ @ echo -n " Building ${VERSION} , tagging as latest, and publishing. Continue? [yN]: " && read ans && if [ $$ {ans:-' N' } != ' y' ]; then exit 1; fi
162181 # override the output type to push to dockerhub, and the tags array to tag latest
163182 VERSION=${VERSION} ${SOURCE} docker bake --builder smartnode-builder -f docker/daemon-bake.hcl smartnode --set " smartnode.output=type=registry" --set " smartnode.tags=rocketpool/smartnode:latest"
164183
@@ -169,10 +188,18 @@ docker-prune:
169188 docker buildx rm smartnode-builder
170189 rm ${BUILD_DIR} /docker-buildx-builder
171190
191+ golangci_lint_version = v2.11
192+ docker_lint_cmd = docker run -e XDG_CACHE_HOME=/go/.cache -e GOMODCACHE=/go/.cache/pkg/mod -e GOCACHE=/go/.cache/go-build -e GOLANGCI_LINT_CACHE=/go/.cache/golangci-lint \
193+ --user $(shell id -u) :$(shell id -g) --rm -v ~/.cache:/go/.cache -v .:/smartnode --workdir /smartnode/ golangci/golangci-lint:${golangci_lint_version}-alpine golangci-lint
194+ local_lint_cmd = GOTOOLCHAIN=go1.26.2 go run github.com/golangci/golangci-lint/v2/cmd/golangci-lint@${golangci_lint_version}
172195.PHONY : lint
173196lint :
174- ifndef NO_DOCKER
175- docker run -e GOMODCACHE=/go/.cache/pkg/mod -e GOCACHE=/go/.cache/go-build -e GOLANGCI_LINT_CACHE=/go/.cache/golangci-lint --user $(shell id -u):$(shell id -g) --rm -v ~/.cache:/go/.cache -v .:/smartnode --workdir /smartnode/ golangci/golangci-lint:v2.4-alpine golangci-lint fmt --diff
197+ ifdef NO_DOCKER
198+ $(local_lint_cmd) run
199+ $(local_lint_cmd) fmt --diff
200+ else
201+ $(docker_lint_cmd) run
202+ $(docker_lint_cmd) fmt --diff
176203endif
177204
178205.PHONY : test
@@ -183,3 +210,7 @@ test:
183210clean :
184211 rm -rf ${BUILD_DIR}
185212 docker buildx rm smartnode-builder
213+
214+ .PHONY : fmt
215+ fmt :
216+ go run golang.org/x/tools/cmd/goimports@v0.44.0 -local github.com/rocket-pool/smartnode -w .
0 commit comments