diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml new file mode 100644 index 00000000..8854b519 --- /dev/null +++ b/.github/workflows/ci.yaml @@ -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 diff --git a/Makefile b/Makefile index 82d4925b..2fb73a7f 100644 --- a/Makefile +++ b/Makefile @@ -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 diff --git a/internal/channels/typing/controller.go b/internal/channels/typing/controller.go index b0ae0cf6..a32d16c1 100644 --- a/internal/channels/typing/controller.go +++ b/internal/channels/typing/controller.go @@ -152,7 +152,6 @@ func (c *Controller) forceStop() { // Stop keepalive loop if c.keepaliveDone != nil { close(c.keepaliveDone) - c.keepaliveDone = nil } // Send stop signal