diff --git a/Dockerfile.dev b/Dockerfile.dev index ea58441..b3732bd 100644 --- a/Dockerfile.dev +++ b/Dockerfile.dev @@ -1,4 +1,4 @@ -FROM golang:1.15 +FROM golang:1.17 RUN apt-get update && apt-get install ruby vim-common -y diff --git a/Makefile b/Makefile index 346436e..53d70ab 100644 --- a/Makefile +++ b/Makefile @@ -24,7 +24,7 @@ FPMCOMMON= \ .PHONY: vendor -release: release-x64 release-x86 release-mac release-windows +release: release-x64 release-mac release-windows vendor: go mod vendor @@ -32,9 +32,6 @@ vendor: release-bin: vendor docker run --rm -v `pwd`:$(SOURCE_PATH) -t --env GOOS=linux --env GOARCH=amd64 -i $(CONTAINER) go build -mod=vendor -o $(BIN_NAME) -tags netgo $(LDFLAGS) -release-bin-x86: vendor - docker run --rm -v `pwd`:$(SOURCE_PATH) -t --env GOOS=linux --env GOARCH=386 -i $(CONTAINER) go build -mod=vendor -o $(BIN_NAME) -tags netgo $(LDFLAGS) - release-bin-mac: vendor GOOS=darwin go build -mod=vendor -o $(BIN_NAME) $(MAC_LDFLAGS) @@ -48,8 +45,8 @@ release-x64: release-bin cd /tmp/gor-build rm -f goreplay_$(VERSION)_amd64.deb rm -f goreplay-$(VERSION)-1.x86_64.rpm - fpm $(FPMCOMMON) -a amd64 -t deb ./=/usr/local/bin - fpm $(FPMCOMMON) -a amd64 -t rpm ./=/usr/local/bin + nfpm pkg --packager deb --target ./ + nfpm pkg --packager rpm --target ./ rm -rf /tmp/gor-build release-x86: release-bin-x86 @@ -70,6 +67,13 @@ release-windows: release-bin-windows zip gor-$(VERSION)$(PREFIX)_windows.zip ./gor.exe rm -rf ./gor.exe +clean: + rm -rf *.pkg + rm -rf *.zip + rm -rf *.gz + rm -rf *.deb + rm -rf *.rpm + build: go build -mod=vendor -o $(BIN_NAME) $(LDFLAGS) @@ -77,7 +81,7 @@ install: go install $(MAC_LDFLAGS) build-env: - docker build -t $(CONTAINER) -f Dockerfile.dev . + docker buildx build --platform linux/amd64 -t $(CONTAINER) -f Dockerfile.dev . profile: go build && ./$(BIN_NAME) --output-http="http://localhost:9000" --input-dummy 0 --input-raw :9000 --input-http :9000 --memprofile=./mem.out --cpuprofile=./cpu.out --stats --output-http-stats --output-http-timeout 100ms diff --git a/nfpm.yaml b/nfpm.yaml new file mode 100644 index 0000000..024e6db --- /dev/null +++ b/nfpm.yaml @@ -0,0 +1,22 @@ +# nfpm example config file +# +# check https://nfpm.goreleaser.com/configuration for detailed usage +# +name: "GoReplay" +arch: "amd64" +platform: "linux" +version: "v1.3.1" +section: "default" +priority: "extra" +provides: +- goreplay +maintainer: "Leonid Bugaev " +description: | + GoReplay is the simplest and safest way to test your app using real traffic before you put it into production. +vendor: "GoReplay" +homepage: "https://goreplay.org" +license: "AGPL" +contents: +- src: ./ + dst: /usr/local/bin + type: dir