增加按应用选择的本地构建与 fzc 发布入口
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
SHELL := /bin/bash
|
||||
.SHELLFLAGS := -eu -o pipefail -c
|
||||
.DEFAULT_GOAL := help
|
||||
DEPLOY_HOST ?= fzc
|
||||
APP ?= cube
|
||||
APPS := cube articulate karaoke notes simpleasm video2slides webgl werewolf llm-proxy
|
||||
NAMESPACE = $(if $(filter llm-proxy,$(APP)),llm-proxy,cube-$(APP))
|
||||
RELEASE_TAG := $(shell git rev-parse --short=12 HEAD)-$(shell date -u +%Y%m%d%H%M%S)
|
||||
IMAGE ?= cube-local-$(APP):$(RELEASE_TAG)
|
||||
.PHONY: help guard build deploy deploy-write
|
||||
help:
|
||||
@echo 'make deploy APP=<$(APPS)>; make deploy-write'
|
||||
guard:
|
||||
@case ' $(APPS) ' in *' $(APP) '*) ;; *) echo 'Unknown/decommissioned app'; exit 1;; esac
|
||||
@test -z "$$(git status --porcelain)" || { echo 'Review/commit source changes first'; exit 1; }
|
||||
build: guard
|
||||
cargo test -p $(APP)
|
||||
CC_x86_64_unknown_linux_musl=musl-gcc cargo build --release --target x86_64-unknown-linux-musl -p $(APP)
|
||||
@if [ -f apps/$(APP)/frontend/package.json ]; then cd apps/$(APP)/frontend && npm ci && npm run build; fi
|
||||
docker build -f apps/$(APP)/Dockerfile -t $(IMAGE) .
|
||||
deploy: guard
|
||||
$(MAKE) build APP=$(APP) IMAGE=$(IMAGE)
|
||||
docker save $(IMAGE) | ssh $(DEPLOY_HOST) 'sudo k3s ctr -n k8s.io images import -'
|
||||
python3 scripts/release_remote.py --host $(DEPLOY_HOST) --namespace $(NAMESPACE) --deployment $(APP) --container $(APP) --image $(IMAGE)
|
||||
deploy-write:
|
||||
$(MAKE) -C apps/write deploy HOST=$(DEPLOY_HOST)
|
||||
Reference in New Issue
Block a user