@@ -18,6 +18,11 @@ COMMIT := $(shell git describe --abbrev=40 --dirty --tags)
18
18
COMMIT_HASH := $(shell git rev-parse HEAD)
19
19
PUBLIC_URL :=
20
20
21
+ # GO_VERSION is the Go version used for the release build, docker files, and
22
+ # GitHub Actions. This is the reference version for the project. All other Go
23
+ # versions are checked against this version.
24
+ GO_VERSION = 1.22.6
25
+
21
26
LOOP_COMMIT := $(shell cat go.mod | \
22
27
grep $(LOOP_PKG ) | \
23
28
head -n1 | \
@@ -159,9 +164,25 @@ app-build: yarn-install
159
164
@$(call print, "Building production app.")
160
165
cd app; yarn build
161
166
162
- release : app-build
167
+ docker-app-build :
168
+ @$(call print, "Building production app in docker.")
169
+ cd app; ./gen_app_docker.sh
170
+
171
+ release : docker-app-build go-release
172
+
173
+ go-release :
163
174
@$(call print, "Creating release of lightning-terminal.")
164
- ./release.sh build-release " $( VERSION_TAG) " " $( BUILD_SYSTEM) " " $( LND_RELEASE_TAGS) " " $( RELEASE_LDFLAGS) "
175
+ ./scripts/release.sh build-release " $( VERSION_TAG) " " $( BUILD_SYSTEM) " " $( LND_RELEASE_TAGS) " " $( RELEASE_LDFLAGS) " " $( GO_VERSION) "
176
+
177
+ docker-release : docker-app-build
178
+ @$(call print, "Building release helper docker image.")
179
+ if [ " $( tag) " = " " ]; then echo " Must specify tag=<commit_or_tag>!" ; exit 1; fi
180
+
181
+ docker build -t litd-release-helper -f make/builder.Dockerfile make/
182
+
183
+ # Run the actual compilation inside the docker image. We pass in all flags
184
+ # that we might want to overwrite in manual tests.
185
+ $(DOCKER_RELEASE_HELPER) make go-release tag="$(tag)" sys="$(sys)" COMMIT="$(COMMIT)"
165
186
166
187
docker-tools :
167
188
@$(call print, "Building tools docker image.")
@@ -226,7 +247,17 @@ fmt: $(GOIMPORTS_BIN)
226
247
@$(call print, "Formatting source.")
227
248
gofmt -l -w -s $(GOFILES_NOVENDOR )
228
249
229
- lint : docker-tools
250
+ check-go-version-yaml :
251
+ @$(call print, "Checking for target Go version (v$(GO_VERSION ) ) in YAML files (* .yaml, * .yml)" )
252
+ ./scripts/check-go-version-yaml.sh $(GO_VERSION )
253
+
254
+ check-go-version-dockerfile :
255
+ @$(call print, "Checking for target Go version (v$(GO_VERSION ) ) in Dockerfile files (* Dockerfile)" )
256
+ ./scripts/check-go-version-dockerfile.sh $(GO_VERSION )
257
+
258
+ check-go-version : check-go-version-dockerfile check-go-version-yaml
259
+
260
+ lint : check-go-version docker-tools
230
261
@$(call print, "Linting source.")
231
262
$(DOCKER_TOOLS ) golangci-lint run -v $(LINT_WORKERS )
232
263
@@ -267,3 +298,11 @@ clean: clean-itest
267
298
$(RM ) ./litcli-debug
268
299
$(RM ) ./litd-debug
269
300
$(RM ) coverage.txt
301
+
302
+ # Prevent make from interpreting any of the defined goals as folders or files to
303
+ # include in the build process.
304
+ .PHONY : default all yarn-install build install go-build go-build-noui \
305
+ go-install go-install-noui go-install-cli app-build release go-release \
306
+ docker-release docker-tools scratch check unit unit-cover unit-race \
307
+ clean-itest build-itest itest-only itest flake-unit fmt lint mod mod-check \
308
+ list rpc protos protos-check rpc-js-compile clean
0 commit comments