mirror of
https://github.com/tiennm99/goclaw.git
synced 2026-10-03 05:20:01 +00:00
ci: add CI workflow, Makefile targets, and fix typing keepalive race (#41)
- Add GitHub Actions CI with parallel Go (build/test -race/vet) and Web UI (pnpm build) jobs - Add Makefile targets: test, vet, check-web, setup, ci - Fix data race in typing keepalive: remove nil assignment after close(keepaliveDone) so the goroutine can safely read the channel without holding the mutex Co-Authored-By: Duc Nguyen <me@vanducng.dev> Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
1 parent
6991f9ae1c
commit
043149bd43
3 files changed
+57
-2
No files matched your search
@@ -0,0 +1,41 @@
|
||||
name: CI
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [main]
|
||||
pull_request:
|
||||
branches: [main]
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
go:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: actions/setup-go@v5
|
||||
with:
|
||||
go-version-file: go.mod
|
||||
cache-dependency-path: go.sum
|
||||
- run: go build ./...
|
||||
- run: go test -race ./...
|
||||
- run: go vet ./...
|
||||
|
||||
web:
|
||||
runs-on: ubuntu-latest
|
||||
defaults:
|
||||
run:
|
||||
working-directory: ui/web
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- uses: pnpm/action-setup@v4
|
||||
with:
|
||||
version: 10
|
||||
- uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: 22
|
||||
cache: pnpm
|
||||
cache-dependency-path: ui/web/pnpm-lock.yaml
|
||||
- run: pnpm install --frozen-lockfile
|
||||
- run: pnpm build
|
||||
@@ -2,7 +2,7 @@ VERSION ?= $(shell git describe --tags --always --dirty 2>/dev/null || echo dev)
|
||||
LDFLAGS = -s -w -X github.com/nextlevelbuilder/goclaw/cmd.Version=$(VERSION)
|
||||
BINARY = goclaw
|
||||
|
||||
.PHONY: build run clean version up down logs reset
|
||||
.PHONY: build run clean version up down logs reset test vet check-web setup ci
|
||||
|
||||
build:
|
||||
CGO_ENABLED=0 go build -ldflags="$(LDFLAGS)" -o $(BINARY) .
|
||||
@@ -30,3 +30,18 @@ logs:
|
||||
reset:
|
||||
$(COMPOSE) down -v
|
||||
$(COMPOSE) up -d --build
|
||||
|
||||
test:
|
||||
go test -race ./...
|
||||
|
||||
vet:
|
||||
go vet ./...
|
||||
|
||||
check-web:
|
||||
cd ui/web && pnpm install --frozen-lockfile && pnpm build
|
||||
|
||||
setup:
|
||||
go mod download
|
||||
cd ui/web && pnpm install --frozen-lockfile
|
||||
|
||||
ci: build test vet check-web
|
||||
@@ -152,7 +152,6 @@ func (c *Controller) forceStop() {
|
||||
// Stop keepalive loop
|
||||
if c.keepaliveDone != nil {
|
||||
close(c.keepaliveDone)
|
||||
c.keepaliveDone = nil
|
||||
}
|
||||
|
||||
// Send stop signal
|
||||
|
||||
Reference in new issue
Block a user