Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Merge pull request #9 from GembaCore/feat/m4-workstream-b #596

Merge pull request #9 from GembaCore/feat/m4-workstream-b

Merge pull request #9 from GembaCore/feat/m4-workstream-b #596

Workflow file for this run

name: CI
on:
push:
branches: [main]
pull_request:
concurrency:
group: ci-${{ github.ref }}
cancel-in-progress: true
permissions:
contents: read
jobs:
build:
name: ${{ matrix.os }} · go ${{ matrix.go }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
# Windows is intentionally not in the matrix: the
# orchestration / hook / native-adapter family
# (cmd/gemba-{ask,bd-hook,bridge,mcp,state}, adapter/{bd,
# native,native/bridge,native/install,native/preamble}) is
# Unix-centric — tmux, git-hook +x bits, fs path semantics,
# and exec.Command shapes that don't translate. Re-add
# windows-2022 only after a Windows-port bead lands the
# build-tagged shims.
os: [ubuntu-22.04, macos-14]
# go.mod targets go 1.25. golangci-lint v2.5.0 (the lint
# tool we install below) was built with go1.25 and panics
# when asked to analyze go1.26 toolchain output, so the
# matrix is pinned to 1.25 only until golangci-lint ships
# a 1.26-aware build.
go: ['1.25']
defaults:
run:
shell: bash
steps:
- uses: actions/checkout@v4
- uses: actions/setup-go@v5
with:
go-version: ${{ matrix.go }}
cache: true
- uses: pnpm/action-setup@v4
with:
version: 9
- uses: actions/setup-node@v4
with:
node-version: '20'
cache: pnpm
cache-dependency-path: web/pnpm-lock.yaml
# actions/setup-node@v4 with `cache: pnpm` only restores the pnpm store
# cache — it does NOT run `pnpm install`. Without this step, web/node_modules
# is empty and `pnpm lint` fails with "eslint: command not found".
- name: Install frontend deps
working-directory: web
run: pnpm install --frozen-lockfile
- name: Install golangci-lint
# v2.5.0+ is built with go1.25 so it can analyze code whose
# go.mod targets go 1.25. The previous pin (v1.62.2) was
# built with go1.23 and tripped the "build go version lower
# than target" guard at config-load.
run: |
curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh \
| sh -s -- -b "$(go env GOPATH)/bin" v2.5.0
echo "$(go env GOPATH)/bin" >> "$GITHUB_PATH"
- name: make lint
run: make lint
# Decision-doc frontmatter linkage check (D6 / gm-d1m1). Runs
# in --docs-only mode because the runner has no bd/Dolt access;
# the bead-side cross-check is exercised locally via
# `make lint-decisions`.
- name: check decision linkage (frontmatter)
run: go run ./cmd/check-decisions --docs-only
- name: make test
run: make test
- name: make build
run: make build