forked from jriou/coller
feat: Create releases with make releases
Fixes #22. Signed-off-by: Julien Riou <julien@riou.xyz>
This commit is contained in:
parent
4b01308125
commit
5122000d48
2 changed files with 68 additions and 13 deletions
61
Makefile
61
Makefile
|
@ -4,26 +4,61 @@ GITCOMMIT := $(shell git log -1 --oneline | awk '{print $$1}')
|
||||||
OS := $(shell uname -s | tr [A-Z] [a-z])
|
OS := $(shell uname -s | tr [A-Z] [a-z])
|
||||||
ARCH := $(shell uname -m | tr [A-Z] [a-z])
|
ARCH := $(shell uname -m | tr [A-Z] [a-z])
|
||||||
LDFLAGS = -X main.AppVersion=${APPVERSION} -X main.GoVersion=${GOVERSION} -X main.GitCommit=${GITCOMMIT}
|
LDFLAGS = -X main.AppVersion=${APPVERSION} -X main.GoVersion=${GOVERSION} -X main.GitCommit=${GITCOMMIT}
|
||||||
|
DOCKER_IMAGE = golang:1.24-trixie
|
||||||
|
|
||||||
.PHONY: clean test
|
.PHONY: clean clean_for_releases test
|
||||||
|
|
||||||
build:
|
build:
|
||||||
(cd src \
|
cd src \
|
||||||
&& go build -ldflags "${LDFLAGS}" -o ../bin/collerd cmd/collerd/main.go \
|
&& go build -ldflags "${LDFLAGS}" -o ../bin/collerd cmd/collerd/main.go \
|
||||||
&& go build -ldflags "${LDFLAGS}" -o ../bin/copier cmd/copier/main.go \
|
&& go build -ldflags "${LDFLAGS}" -o ../bin/copier cmd/copier/main.go \
|
||||||
&& go build -ldflags "${LDFLAGS}" -o ../bin/coller cmd/coller/main.go \
|
&& go build -ldflags "${LDFLAGS}" -o ../bin/coller cmd/coller/main.go
|
||||||
)
|
|
||||||
|
|
||||||
archive:
|
build_linux_amd64:
|
||||||
(mkdir -p releases && cd bin && tar cvzpf ../releases/coller-${APPVERSION}-${OS}-${ARCH}.tar.gz * && cd ../releases && sha256sum *.tar.gz)
|
cd src \
|
||||||
|
&& GOOS=linux GOARCH=amd64 go build -ldflags "${LDFLAGS}" -o ../bin/collerd-${APPVERSION}-linux-amd64 cmd/collerd/main.go \
|
||||||
|
&& GOOS=linux GOARCH=amd64 go build -ldflags "${LDFLAGS}" -o ../bin/coller-${APPVERSION}-linux-amd64 cmd/coller/main.go \
|
||||||
|
&& GOOS=linux GOARCH=amd64 go build -ldflags "${LDFLAGS}" -o ../bin/copier-${APPVERSION}-linux-amd64 cmd/copier/main.go
|
||||||
|
|
||||||
release: build archive
|
archive_linux_amd64:
|
||||||
|
mkdir -p releases/coller-${APPVERSION}-linux-amd64 \
|
||||||
|
&& cp bin/collerd-${APPVERSION}-linux-amd64 releases/coller-${APPVERSION}-linux-amd64/collerd \
|
||||||
|
&& cp bin/coller-${APPVERSION}-linux-amd64 releases/coller-${APPVERSION}-linux-amd64/coller \
|
||||||
|
&& cp bin/copier-${APPVERSION}-linux-amd64 releases/coller-${APPVERSION}-linux-amd64/copier \
|
||||||
|
&& cd releases/ \
|
||||||
|
&& tar cvpzf coller-${APPVERSION}-linux-amd64.tar.gz coller-${APPVERSION}-linux-amd64
|
||||||
|
|
||||||
|
build_darwin_arm64:
|
||||||
|
cd src \
|
||||||
|
&& GOOS=darwin GOARCH=arm64 go build -ldflags "${LDFLAGS}" -o ../bin/collerd-${APPVERSION}-darwin-arm64 cmd/collerd/main.go \
|
||||||
|
&& GOOS=darwin GOARCH=arm64 go build -ldflags "${LDFLAGS}" -o ../bin/coller-${APPVERSION}-darwin-arm64 cmd/coller/main.go \
|
||||||
|
&& GOOS=darwin GOARCH=arm64 go build -ldflags "${LDFLAGS}" -o ../bin/copier-${APPVERSION}-darwin-arm64 cmd/copier/main.go
|
||||||
|
|
||||||
|
archive_darwin_arm64:
|
||||||
|
mkdir -p releases/coller-${APPVERSION}-darwin-arm64 \
|
||||||
|
&& cp bin/collerd-${APPVERSION}-darwin-arm64 releases/coller-${APPVERSION}-darwin-arm64/collerd \
|
||||||
|
&& cp bin/coller-${APPVERSION}-darwin-arm64 releases/coller-${APPVERSION}-darwin-arm64/coller \
|
||||||
|
&& cp bin/copier-${APPVERSION}-darwin-arm64 releases/coller-${APPVERSION}-darwin-arm64/copier \
|
||||||
|
&& cd releases/ \
|
||||||
|
&& tar cvpzf coller-${APPVERSION}-darwin-arm64.tar.gz coller-${APPVERSION}-darwin-arm64
|
||||||
|
|
||||||
|
checksum:
|
||||||
|
cd releases \
|
||||||
|
&& sha256sum *.tar.gz > checksums.txt
|
||||||
|
|
||||||
|
clean_for_releases:
|
||||||
|
rm -rf releases/coller-${APPVERSION}-linux-amd64 \
|
||||||
|
&& rm -rf releases/coller-${APPVERSION}-darwin-arm64
|
||||||
|
|
||||||
|
releases: build_linux_amd64 build_darwin_arm64 archive_linux_amd64 archive_darwin_arm64 checksum clean_for_releases
|
||||||
|
|
||||||
|
releases_with_docker:
|
||||||
|
docker run -it -v $(shell pwd):/mnt -w /mnt -e "UID=$(shell id -u)" -e "GID=$(shell id -g)" ${DOCKER_IMAGE} ./docker/build.sh
|
||||||
|
|
||||||
test:
|
test:
|
||||||
(cd src \
|
cd src \
|
||||||
&& go test internal/*.go \
|
&& go test internal/*.go \
|
||||||
&& go test server/*.go \
|
&& go test server/*.go
|
||||||
)
|
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
rm -rf bin releases
|
rm -rf bin releases
|
||||||
|
|
20
docker/build.sh
Executable file
20
docker/build.sh
Executable file
|
@ -0,0 +1,20 @@
|
||||||
|
#!/bin/bash
|
||||||
|
# Script to create releases with Docker
|
||||||
|
# Used by `make releases_with_docker`
|
||||||
|
set -e
|
||||||
|
|
||||||
|
if [ -z "UID" ] ; then
|
||||||
|
echo "UID not defined"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
if [ -z "GID" ] ; then
|
||||||
|
echo "GID not defined"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
apt-get update
|
||||||
|
apt-get install -y libx11-dev
|
||||||
|
|
||||||
|
make releases
|
||||||
|
|
||||||
|
chown ${UID}:${GID} -R releases
|
Loading…
Add table
Add a link
Reference in a new issue