build: prepare
cargo build --profile $(profile) --target $(target)
+test:
+ cargo test
+
+coverage:
+ cargo tarpaulin
+
+format:
+ cargo fmt && cargo clippy --fix
+
+lint:
+ cargo fmt -- --check && cargo clippy
+
release: rpm tar deb
@$(eval filename := $(app_name)-$(target)-$(channel))
endif
deb: build
+ifeq ($(findstring linux,$(target)),linux)
@$(eval filename := $(app_name)-$(target)-$(channel))
cargo deb --profile $(profile) --target $(target)
mv target/$(target)/debian/*.deb $(filename).deb
sha256sum $(filename).deb > $(filename).deb.sha256
rsync -avz $(filename).deb deploy@conchos.unlimited.pizza:/srv/http/build.r.bdr.sh/$(app_name)
rsync -avz $(filename).deb.sha256 deploy@conchos.unlimited.pizza:/srv/http/build.r.bdr.sh/$(app_name)
+endif
rpm: build
+ifeq ($(findstring linux,$(target)),linux)
@$(eval filename := $(app_name)-$(target)-$(channel))
cargo generate-rpm --profile $(profile) --target $(target)
mv target/$(target)/generate-rpm/*.rpm $(filename).rpm
sha256sum $(filename).rpm > $(filename).rpm.sha256
rsync -avz $(filename).rpm deploy@conchos.unlimited.pizza:/srv/http/build.r.bdr.sh/$(app_name)
rsync -avz $(filename).rpm.sha256 deploy@conchos.unlimited.pizza:/srv/http/build.r.bdr.sh/$(app_name)
+endif
tar: build
@$(eval filename := $(app_name)-$(target)-$(channel))
package: $(architectures)
-ci:
+mac:
+ @$(eval mac_architectures := x86_64-apple-darwin aarch64-apple-darwin)
+ifeq ($(tag),)
+ $(MAKE) -e profile=release -e architectures='$(mac_architectures)' -e channel=unstable package
+else
+ $(MAKE) -e profile=release -e architectures='$(mac_architectures)' -e channel=$(tag) package
+endif
+
+ci: lint coverage
ifeq ($(GIT_REF),refs/heads/main)
$(MAKE) -e profile=release -e channel=unstable package
else ifneq (,$(findstring refs/tags/,$(GIT_REF)))
$(MAKE) -e profile=release -e channel=$(subst refs/tags/,,$(GIT_REF)) package
endif
-.PHONY: default build $(architectures) rpm package prepare set_rust ci release
+.PHONY: default build $(architectures) rpm package prepare set_rust ci release test coverage format