From 8c2810e905ad0a5eefa2be40115eae0c125264fa Mon Sep 17 00:00:00 2001 From: beads/crew/giles Date: Tue, 6 Jan 2026 19:34:25 -0800 Subject: [PATCH] fix(ci): restore Windows smoke tests instead of full test suite MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PR #904 incorrectly changed Windows from smoke tests to full `go test ./...` which times out (see bd-bmev). Windows full tests take 20+ minutes vs ~1min for smoke tests. Restore the original approach: - Linux/macOS: full test suite with `go test ./...` - Windows: smoke tests only (build + basic CRUD commands) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- .github/workflows/ci.yml | 45 +++++++++++++++++++++++++++++++++------- 1 file changed, 38 insertions(+), 7 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 651e5c43..04f1be2f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -43,15 +43,14 @@ jobs: fi echo "No .beads/issues.jsonl changes detected" - # Cross-platform test matrix - # Catches platform-specific bugs like GH#880 (macOS path casing) and GH#387 (Windows daemon) + # Cross-platform test matrix (Linux/macOS only - Windows uses smoke tests) test: name: Test (${{ matrix.os }}) runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: - os: [ubuntu-latest, macos-latest, windows-latest] + os: [ubuntu-latest, macos-latest] include: # Linux: full test suite with coverage - os: ubuntu-latest @@ -61,10 +60,6 @@ jobs: - os: macos-latest coverage: false test-flags: '-v -race -short' - # Windows: full test suite, no race detector (slower on Windows) - - os: windows-latest - coverage: false - test-flags: '-v -short -timeout=30m' steps: - uses: actions/checkout@v6 @@ -107,6 +102,42 @@ jobs: file: ./coverage.out fail_ci_if_error: false + # Windows smoke tests only - full test suite times out (see bd-bmev) + # Linux/macOS run comprehensive tests; Windows just verifies binary works + test-windows: + name: Test (Windows - smoke) + runs-on: windows-latest + steps: + - uses: actions/checkout@v6 + + - name: Set up Go + uses: actions/setup-go@v5 + with: + go-version: '1.24' + + - name: Configure Git + run: | + git config --global user.name "CI Bot" + git config --global user.email "ci@beads.test" + + - name: Build + run: go build -v -o bd.exe ./cmd/bd + + - name: Smoke test - version + run: ./bd.exe version + + - name: Smoke test - init and CRUD + run: | + ./bd.exe init --quiet --prefix smoke + $output = ./bd.exe create --title "Windows smoke test" --type task + $id = ($output | Select-String -Pattern "smoke-\w+").Matches.Value + echo "Created issue: $id" + ./bd.exe list + ./bd.exe show $id + ./bd.exe update $id --status in_progress + ./bd.exe close $id + echo "All smoke tests passed!" + lint: name: Lint runs-on: ubuntu-latest