11GOOS ?= $(shell go env GOOS)
22GOARCH ?= $(shell go env GOARCH)
33MACOSX_DEPLOYMENT_TARGET ?= 13.0
4+ DIST_DIR ?= dist
45NATIVE_PLATFORM := $(GOOS ) -$(GOARCH )
56NATIVE_LIB_DIR := internal/native/lib/$(NATIVE_PLATFORM )
67NATIVE_LIB := $(NATIVE_LIB_DIR ) /libdatafusion_go.a
@@ -39,7 +40,7 @@ else ifeq ($(GOOS),windows)
3940STRIP_SHARED := strip --strip-unneeded
4041endif
4142
42- .PHONY : generate generate.check rust bundle checksums verify.checksums test test.dynamic test.bundled test.source test.static consumer.smoke lint verify.release verify.release.downloaded clean
43+ .PHONY : generate generate.check rust bundle checksums verify.checksums stage.release.assets verify.release.assets test test.dynamic test.bundled test.source test.static consumer.smoke lint verify.release verify.release.downloaded clean
4344
4445generate :
4546 go run ./internal/tools/genversions
@@ -66,6 +67,39 @@ verify.checksums:
6667 test -s internal/native/lib/SHA256SUMS
6768 cd internal/native/lib && shasum -a 256 -c SHA256SUMS
6869
70+ stage.release.assets :
71+ @metadata=$$(mktemp ) ; \
72+ go run ./internal/tools/genversions -github-output " $$ metadata" ; \
73+ . " $$ metadata" ; \
74+ rm -f " $$ metadata" ; \
75+ rm -rf " $( DIST_DIR) " ; \
76+ mkdir -p " $( DIST_DIR) " ; \
77+ find internal/native/lib -mindepth 2 -maxdepth 2 -type f \( -name ' libdatafusion_go.a' -o -name ' libdatafusion_go.so' -o -name ' libdatafusion_go.dylib' -o -name ' datafusion_go.dll' \) -print | sort | while IFS= read -r file; do \
78+ platform=" $$ (basename " $$(dirname "$$file" ) " )" ; \
79+ base=" $$ (basename " $$ file" )" ; \
80+ cp " $$ file" " $( DIST_DIR) /datafusion-go-$$ {release_tag}-$$ {platform}-$$ {base}" ; \
81+ done
82+ cd " $( DIST_DIR) " && shasum -a 256 datafusion-go-* > SHA256SUMS
83+ cd " $( DIST_DIR) " && shasum -a 256 -c SHA256SUMS
84+ cp " $( DIST_DIR) /SHA256SUMS" internal/native/lib/SHA256SUMS
85+
86+ verify.release.assets :
87+ @metadata=$$(mktemp ) ; \
88+ go run ./internal/tools/genversions -github-output " $$ metadata" ; \
89+ . " $$ metadata" ; \
90+ rm -f " $$ metadata" ; \
91+ cmp " $( DIST_DIR) /SHA256SUMS" internal/native/lib/SHA256SUMS; \
92+ (cd " $( DIST_DIR) " && shasum -a 256 -c SHA256SUMS); \
93+ for asset in \
94+ " datafusion-go-$$ {release_tag}-darwin-arm64-libdatafusion_go.dylib" \
95+ " datafusion-go-$$ {release_tag}-darwin-amd64-libdatafusion_go.dylib" \
96+ " datafusion-go-$$ {release_tag}-linux-amd64-libdatafusion_go.so" \
97+ " datafusion-go-$$ {release_tag}-linux-arm64-libdatafusion_go.so" \
98+ " datafusion-go-$$ {release_tag}-windows-amd64-datafusion_go.dll" ; do \
99+ test -f " $( DIST_DIR) /$$ asset" ; \
100+ grep -F " $$ asset" " $( DIST_DIR) /SHA256SUMS" > /dev/null; \
101+ done
102+
69103test : bundle
70104 $(MAKE ) test.dynamic
71105 $(MAKE ) test.bundled
@@ -120,12 +154,12 @@ verify.release: test test.source test.static
120154 $(MAKE ) checksums
121155 $(MAKE ) verify.checksums
122156
123- verify.release.downloaded : verify.checksums test.bundled consumer.smoke test.source test.static
157+ verify.release.downloaded : verify.release.assets test.bundled test.source test.static
124158 DATAFUSION_GO_LIBRARY=$(CURDIR ) /$(NATIVE_SHARED ) go test -race ./...
125159 go vet ./...
126160 cargo test --manifest-path rust/Cargo.toml --release
127161 CGO_ENABLED=0 go test ./...
128- $(MAKE ) verify.checksums
162+ $(MAKE ) verify.release.assets
129163
130164clean :
131165 cargo clean --manifest-path rust/Cargo.toml
0 commit comments