diff options
| -rw-r--r-- | .build.yml | 3 | ||||
| -rw-r--r-- | .gitignore | 1 | ||||
| -rw-r--r-- | Makefile | 20 | ||||
| -rwxr-xr-x | scripts/sign.sh | 18 |
4 files changed, 33 insertions, 9 deletions
@@ -1,6 +1,7 @@ image: archlinux packages: - make + - minisign - rsync - coreutils - clang @@ -15,6 +16,8 @@ secrets: - a1e0e3da-c1ad-473a-ad69-8878f267a628 - 0b0d3e5e-fbdc-41d0-97ed-ee654fe797ff - a802b200-167c-4926-b013-45b238e1261e + - f80356df-eb81-487f-8739-fbf08bf204dc + - 05763ec6-2f17-46b5-90f6-963482975b8b tasks: - set_rust: | cd lyricli @@ -8,3 +8,4 @@ target distribution *.tar.gz *.tar.gz.sha256 +*.minisig @@ -3,6 +3,14 @@ target = $(shell rustc -vV | grep host | awk '{print $$2}') architectures := x86_64-unknown-linux-gnu aarch64-unknown-linux-gnu app_name := lrc long_app_name := lyricli +deploy_host := deploy@conchos.unlimited.pizza +deploy_path := /srv/http/build.r.bdr.sh/$(app_name) + +define sign_and_deploy + @./scripts/sign.sh "$(1)" "$(channel)" "$(architecture)" + rsync -avz $(1) $(deploy_host):$(deploy_path) + rsync -avz $(1).minisig $(deploy_host):$(deploy_path) +endef default: build @@ -42,9 +50,7 @@ ifeq ($(findstring linux,$(target)),linux) @$(eval filename := $(app_name)-$(target)-$(channel)) @export $$(cat .env | xargs) > /dev/null 2>&1 && 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/$(long_app_name) - rsync -avz $(filename).deb.sha256 deploy@conchos.unlimited.pizza:/srv/http/build.r.bdr.sh/$(long_app_name) + @$(call sign_and_deploy,$(filename).deb) endif rpm: build @@ -52,17 +58,13 @@ ifeq ($(findstring linux,$(target)),linux) @$(eval filename := $(app_name)-$(target)-$(channel)) @export $$(cat .env | xargs) > /dev/null 2>&1 && 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/$(long_app_name) - rsync -avz $(filename).rpm.sha256 deploy@conchos.unlimited.pizza:/srv/http/build.r.bdr.sh/$(long_app_name) + @$(call sign_and_deploy,$(filename).rpm) endif tar: build @$(eval filename := $(app_name)-$(target)-$(channel)) tar -czvf $(filename).tar.gz -C target/$(target)/$(profile)/ $(app_name) - sha256sum $(filename).tar.gz > $(filename).tar.gz.sha256 - rsync -avz $(filename).tar.gz deploy@conchos.unlimited.pizza:/srv/http/build.r.bdr.sh/$(long_app_name) - rsync -avz $(filename).tar.gz.sha256 deploy@conchos.unlimited.pizza:/srv/http/build.r.bdr.sh/$(long_app_name) + @$(call sign_and_deploy,$(filename).tar.gz) package: $(architectures) diff --git a/scripts/sign.sh b/scripts/sign.sh new file mode 100755 index 0000000..b3bfe47 --- /dev/null +++ b/scripts/sign.sh @@ -0,0 +1,18 @@ +#!/usr/bin/env bash + +set +x +if [ $# -ne 3 ]; then + echo "Usage: $0 <file> <channel> <architecture>" + exit 1 +fi + +FILE="$1" +VERSION="$2" +PLATFORM="$3" +COMMENT="Version: ${VERSION}, File: $(basename ${FILE}) Built on: $(date +'%Y-%m-%d %H:%M'), Platform: ${PLATFORM}" + +if [ -f ~/.minisign/minisign.pass ]; then + cat ~/.minisign/minisign.pass | minisign -Sm "${FILE}" -t "${COMMENT}" +else + minisign -Sm "${FILE}" -t "${COMMENT}" +fi |