Skip to content

fix(deps): update module github.com/go-widgets/toolkit to v0.300.0 #227

fix(deps): update module github.com/go-widgets/toolkit to v0.300.0

fix(deps): update module github.com/go-widgets/toolkit to v0.300.0 #227

Workflow file for this run

name: CI
on:
push:
branches: [main]
pull_request:
branches: [main]
permissions:
contents: read
env:
GOWORK: "off"
CGO_ENABLED: "0"
jobs:
test:
name: Build + test + 100% coverage gate
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- uses: actions/setup-go@v7
with:
go-version: "1.27.0"
check-latest: true
cache: true
- name: go vet
run: go vet ./...
- name: Test library packages with coverage
run: go test -coverprofile=coverage.out $(go list ./... | grep -v '/cmd/')
- name: Assert 100% statement coverage (library packages)
run: |
total=$(go tool cover -func=coverage.out | awk 'END { gsub(/%/,"",$3); print $3 }')
echo "total coverage: ${total}%"
if [ "$(printf '%.0f' "$total")" != "100" ]; then
echo "::error::coverage below 100% (got ${total}%)"
go tool cover -func=coverage.out | grep -v "100.0%"
exit 1
fi
- name: Test cmd packages (also gated at 100%)
# cmd/tui-snapshot factors main() through a run(...)int seam +
# runFunc/osExit dependency injection, so the whole package
# holds 100% statement coverage — no reason to relax the gate
# here just because it's under cmd/.
run: |
go test -coverprofile=coverage-cmd.out ./cmd/...
total=$(go tool cover -func=coverage-cmd.out | awk 'END { gsub(/%/,"",$3); print $3 }')
echo "cmd coverage: ${total}%"
if [ "$(printf '%.0f' "$total")" != "100" ]; then
echo "::error::cmd coverage below 100% (got ${total}%)"
go tool cover -func=coverage-cmd.out | grep -v "100.0%"
exit 1
fi
- name: E2E pty tests (cell-level, keymap-demo)
# Spawns the real keymap-demo binary under a pseudo-terminal, types
# key streams, and asserts on the decoded cell grid (chords, scope
# resolution, hot rebind). Gated behind the `integration` build tag so
# the fast unit/coverage steps above never spawn a pty.
run: go test -tags integration ./cmd/keymap-demo/
- name: Cross-compile smoke (all 6 64-bit arches + wasm + darwin)
run: |
for arch in amd64 arm64 riscv64 loong64 ppc64le s390x; do
echo "== linux/$arch =="
GOOS=linux GOARCH=$arch go build ./...
done
GOOS=js GOARCH=wasm go build ./...
GOOS=darwin GOARCH=arm64 go build ./...