CI base
This commit is contained in:
@@ -0,0 +1,22 @@
|
|||||||
|
name: Deploy
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: [main]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
deploy:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Build (frontend + API via make)
|
||||||
|
run: make web server
|
||||||
|
|
||||||
|
- name: Deploy to box
|
||||||
|
run: |
|
||||||
|
mkdir -p ~/apps/hub/dist
|
||||||
|
cp -r web/dist/* ~/apps/hub/dist/
|
||||||
|
cp bin/hub-api ~/apps/hub/hub-api
|
||||||
|
chmod +x ~/apps/hub/hub-api
|
||||||
|
systemctl --user restart hub-api
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
.PHONY: proto web server dev test
|
.PHONY: proto web server release dev test
|
||||||
|
|
||||||
proto: ## Regenerate Go + TS code from proto
|
proto: ## Regenerate Go + TS code from proto
|
||||||
PATH="$(shell go env GOPATH)/bin:$$PATH" protoc \
|
PATH="$(shell go env GOPATH)/bin:$$PATH" protoc \
|
||||||
@@ -12,10 +12,13 @@ proto: ## Regenerate Go + TS code from proto
|
|||||||
web: ## Build frontend into web/dist (tsc + vite)
|
web: ## Build frontend into web/dist (tsc + vite)
|
||||||
cd web && pnpm install --frozen-lockfile && pnpm build
|
cd web && pnpm install --frozen-lockfile && pnpm build
|
||||||
|
|
||||||
server: ## Build Go binary
|
server: ## Build Go binary → bin/hub-api
|
||||||
go build -o bin/server ./server
|
go build -o bin/hub-api ./server
|
||||||
|
|
||||||
dev: ## Dev: Go server on :8080 + Vite on :5173 (use http://localhost:5173)
|
release: ## CI build: static binary for the box (run on the box itself, native arch)
|
||||||
|
CGO_ENABLED=0 go build -o bin/hub-api ./server
|
||||||
|
|
||||||
|
dev: ## Dev: Go server + Vite on :5173 (use http://localhost:5173)
|
||||||
go run ./server & cd web && pnpm dev
|
go run ./server & cd web && pnpm dev
|
||||||
|
|
||||||
dev-srv:
|
dev-srv:
|
||||||
@@ -25,8 +28,8 @@ dev-web:
|
|||||||
cd web && pnpm dev
|
cd web && pnpm dev
|
||||||
|
|
||||||
test: ## Smoke-test the RPC endpoints
|
test: ## Smoke-test the RPC endpoints
|
||||||
@go build -o bin/server ./server
|
@go build -o bin/hub-api ./server
|
||||||
@./bin/server & sleep 1; \
|
@./bin/hub-api & sleep 1; \
|
||||||
curl -sf -X POST localhost:8080/homelab.v1.HomelabService/ListSections -H 'Content-Type: application/json' -d '{}' | grep -q '"cpu"' || exit 1; \
|
curl -sf -X POST localhost:8080/homelab.v1.HomelabService/ListSections -H 'Content-Type: application/json' -d '{}' | grep -q '"cpu"' || exit 1; \
|
||||||
curl -sf -X POST localhost:8080/homelab.v1.HomelabService/RunScript -H 'Content-Type: application/json' -d '{"name":"greet","args":["pony","42"]}' | grep -q 'arg1: pony' || exit 1; \
|
curl -sf -X POST localhost:8080/homelab.v1.HomelabService/RunScript -H 'Content-Type: application/json' -d '{"name":"greet","args":["pony","42"]}' | grep -q 'arg1: pony' || exit 1; \
|
||||||
kill %1; echo OK
|
kill %1; echo OK
|
||||||
|
|||||||
+8
-1
@@ -219,5 +219,12 @@ func main() {
|
|||||||
HTML5: true,
|
HTML5: true,
|
||||||
}))
|
}))
|
||||||
|
|
||||||
e.Logger.Fatal(e.Start(":8080"))
|
e.Logger.Fatal(e.Start(port()))
|
||||||
|
}
|
||||||
|
|
||||||
|
func port() string {
|
||||||
|
if p := os.Getenv("PORT"); p != "" {
|
||||||
|
return ":" + p
|
||||||
|
}
|
||||||
|
return ":8080"
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user