-
Notifications
You must be signed in to change notification settings - Fork 9
Expand file tree
/
Copy pathMakefile
More file actions
48 lines (40 loc) · 1.46 KB
/
Makefile
File metadata and controls
48 lines (40 loc) · 1.46 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
CARGO := cargo
INSTALL := install
SED := sed
GIT := git
GPG := gpg
PROJECT=gluebuddy
TARBALLDIR ?= target/release/tarball
CARGO_TARGET_DIR ?= target
DEBUG := 0
ifeq ($(DEBUG), 0)
CARGO_OPTIONS := --release --locked
else
CARGO_OPTIONS :=
endif
.PHONY: all gluebuddy test lint release
all: gluebuddy test lint
gluebuddy:
$(CARGO) build $(CARGO_OPTIONS)
test:
$(CARGO) test $(CARGO_OPTIONS)
lint:
$(CARGO) fmt -- --check
$(CARGO) check
$(CARGO) clippy --all -- -D warnings
$(CARGO) deny check
release: all
$(INSTALL) -d $(TARBALLDIR)
@glab --version &>/dev/null
@glab auth status --hostname gitlab.archlinux.org
@$(CARGO) pkgid | $(SED) 's/.*#/current version: /'
@read -p 'version> ' VERSION && \
$(SED) -E "s|^version = .*|version = \"$$VERSION\"|" -i Cargo.toml && \
$(CARGO) build --release && \
$(GIT) commit --gpg-sign --message "version: release v$$VERSION" Cargo.toml Cargo.lock && \
$(GIT) tag --sign --message "version: release v$$VERSION" v$$VERSION && \
$(GIT) archive --format tar --prefix=gluebuddy-v$$VERSION/ v$$VERSION | gzip -cn > $(TARBALLDIR)/gluebuddy-v$$VERSION.tar.gz && \
$(GPG) --detach-sign $(TARBALLDIR)/gluebuddy-v$$VERSION.tar.gz && \
$(GPG) --detach-sign --yes $(CARGO_TARGET_DIR)/release/$(PROJECT) && \
$(GIT) push --tags origin main && \
GITLAB_HOST=gitlab.archlinux.org glab release create v$$VERSION $(TARBALLDIR)/$(PROJECT)-v$$VERSION.tar.gz* $(CARGO_TARGET_DIR)/release/$(PROJECT) $(CARGO_TARGET_DIR)/release/$(PROJECT).sig