11# ==============================================================#
22# File : Makefile
3- # Mtime : 2025-07-17
3+ # Mtime : 2025-08-14
44# License : Apache-2.0 @ https://github.com/pgsty/pg_exporter
55# Copyright : 2018-2025 Ruohang Feng / Vonng (rh@vonng.com)
66# ==============================================================#
@@ -46,36 +46,36 @@ linux-amd64: clean build-linux-amd64
4646 rm -rf $(LINUX_AMD_DIR ) && mkdir -p $(LINUX_AMD_DIR )
4747 nfpm package --packager rpm --config package/nfpm-amd64-rpm.yaml --target dist/$(VERSION )
4848 nfpm package --packager deb --config package/nfpm-amd64-deb.yaml --target dist/$(VERSION )
49- cp -r pg_exporter $(LINUX_AMD_DIR ) /pg_exporter
50- cp -f pg_exporter.yml $(LINUX_AMD_DIR ) /pg_exporter.yml
51- cp -f LICENSE $(LINUX_AMD_DIR ) /LICENSE
49+ cp pg_exporter $(LINUX_AMD_DIR ) /pg_exporter
50+ cp pg_exporter.yml $(LINUX_AMD_DIR ) /pg_exporter.yml
51+ cp LICENSE $(LINUX_AMD_DIR ) /LICENSE
5252 tar -czf dist/$(VERSION ) /pg_exporter-$(VERSION ) .linux-amd64.tar.gz -C dist/$(VERSION ) pg_exporter-$(VERSION ) .linux-amd64
5353 rm -rf $(LINUX_AMD_DIR )
5454
5555linux-arm64 : clean build-linux-arm64
5656 rm -rf $(LINUX_ARM_DIR ) && mkdir -p $(LINUX_ARM_DIR )
5757 nfpm package --packager rpm --config package/nfpm-arm64-rpm.yaml --target dist/$(VERSION )
5858 nfpm package --packager deb --config package/nfpm-arm64-deb.yaml --target dist/$(VERSION )
59- cp -r pg_exporter $(LINUX_ARM_DIR ) /pg_exporter
60- cp -f pg_exporter.yml $(LINUX_ARM_DIR ) /pg_exporter.yml
61- cp -f LICENSE $(LINUX_ARM_DIR ) /LICENSE
59+ cp pg_exporter $(LINUX_ARM_DIR ) /pg_exporter
60+ cp pg_exporter.yml $(LINUX_ARM_DIR ) /pg_exporter.yml
61+ cp LICENSE $(LINUX_ARM_DIR ) /LICENSE
6262 tar -czf dist/$(VERSION ) /pg_exporter-$(VERSION ) .linux-arm64.tar.gz -C dist/$(VERSION ) pg_exporter-$(VERSION ) .linux-arm64
6363 rm -rf $(LINUX_ARM_DIR )
6464
6565release-darwin : darwin-amd64 darwin-arm64
6666darwin-amd64 : clean build-darwin-amd64
6767 rm -rf $(DARWIN_AMD_DIR ) && mkdir -p $(DARWIN_AMD_DIR )
68- cp -r pg_exporter $(DARWIN_AMD_DIR ) /pg_exporter
69- cp -f pg_exporter.yml $(DARWIN_AMD_DIR ) /pg_exporter.yml
70- cp -f LICENSE $(DARWIN_AMD_DIR ) /LICENSE
68+ cp pg_exporter $(DARWIN_AMD_DIR ) /pg_exporter
69+ cp pg_exporter.yml $(DARWIN_AMD_DIR ) /pg_exporter.yml
70+ cp LICENSE $(DARWIN_AMD_DIR ) /LICENSE
7171 tar -czf dist/$(VERSION ) /pg_exporter-$(VERSION ) .darwin-amd64.tar.gz -C dist/$(VERSION ) pg_exporter-$(VERSION ) .darwin-amd64
7272 rm -rf $(DARWIN_AMD_DIR )
7373
7474darwin-arm64 : clean build-darwin-arm64
7575 rm -rf $(DARWIN_ARM_DIR ) && mkdir -p $(DARWIN_ARM_DIR )
76- cp -r pg_exporter $(DARWIN_ARM_DIR ) /pg_exporter
77- cp -f pg_exporter.yml $(DARWIN_ARM_DIR ) /pg_exporter.yml
78- cp -f LICENSE $(DARWIN_ARM_DIR ) /LICENSE
76+ cp pg_exporter $(DARWIN_ARM_DIR ) /pg_exporter
77+ cp pg_exporter.yml $(DARWIN_ARM_DIR ) /pg_exporter.yml
78+ cp LICENSE $(DARWIN_ARM_DIR ) /LICENSE
7979 tar -czf dist/$(VERSION ) /pg_exporter-$(VERSION ) .darwin-arm64.tar.gz -C dist/$(VERSION ) pg_exporter-$(VERSION ) .darwin-arm64
8080 rm -rf $(DARWIN_ARM_DIR )
8181
@@ -99,6 +99,37 @@ release-dir:
9999release-clean :
100100 rm -rf dist/$(VERSION )
101101
102+ # ##############################################################
103+ # GoReleaser #
104+ # ##############################################################
105+ # Install goreleaser if not present
106+ goreleaser-install :
107+ @which goreleaser > /dev/null || (echo " Installing goreleaser..." && go install github.com/goreleaser/goreleaser/v2@latest)
108+
109+ # Build snapshot release (without publishing)
110+ goreleaser-snapshot : goreleaser-install
111+ goreleaser release --snapshot --clean --skip=publish
112+
113+ # Build release locally (without git tag)
114+ goreleaser-build : goreleaser-install
115+ goreleaser build --snapshot --clean
116+
117+ # Build release locally without snapshot suffix (requires clean git)
118+ goreleaser-local : goreleaser-install
119+ goreleaser release --clean --skip=publish
120+
121+ # Release with goreleaser (requires git tag)
122+ goreleaser-release : goreleaser-install
123+ goreleaser release --clean
124+
125+ # Check goreleaser configuration
126+ goreleaser-check : goreleaser-install
127+ goreleaser check
128+
129+ # New main release task using goreleaser
130+ release-new : goreleaser-release
131+
132+
102133# build docker image
103134docker : docker-build
104135docker-build :
135166
136167.PHONY : build clean build-darwin build-linux\
137168 release release-darwin release-linux release-windows docker docker-build docker-release \
138- install uninstall debug curl upload
169+ install uninstall debug curl upload \
170+ goreleaser-install goreleaser-snapshot goreleaser-build goreleaser-release goreleaser-check release-new
0 commit comments