Skip to content

build(deps): bump the minor-and-patch group across 1 directory with 15 updates #98

build(deps): bump the minor-and-patch group across 1 directory with 15 updates

build(deps): bump the minor-and-patch group across 1 directory with 15 updates #98

Workflow file for this run

name: CI
on:
push:
branches: [main]
pull_request:
branches: [main]
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
permissions:
contents: read
jobs:
# ─── Go Build & Test (root module) ────────────────────────────────────
go:
name: Go
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
go-version: ["1.26.0"]
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Set up Go ${{ matrix.go-version }}
uses: actions/setup-go@v6
with:
go-version: ${{ matrix.go-version }}
cache: true
cache-dependency-path: go.sum
- name: Download modules
run: go mod download
- name: Verify module tidy
run: |
go mod tidy
git diff --exit-code go.mod go.sum
- name: Build
run: go build ./...
- name: Test
run: go test -race -count=1 -coverprofile=coverage.out ./...
- name: Upload coverage
if: github.event_name == 'pull_request'
uses: actions/upload-artifact@v6
with:
name: coverage-go${{ matrix.go-version }}
path: coverage.out
retention-days: 7
# ─── Driver Sub-Modules ──────────────────────────────────────────────
drivers:
name: Driver (${{ matrix.driver }})
runs-on: ubuntu-latest
needs: go
strategy:
fail-fast: false
matrix:
driver:
- pgdriver
- mysqldriver
- sqlitedriver
- mongodriver
- tursodriver
- clickhousedriver
- esdriver
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Set up Go
uses: actions/setup-go@v6
with:
go-version: "1.26.0"
cache: true
cache-dependency-path: drivers/${{ matrix.driver }}/go.sum
- name: Download modules
working-directory: drivers/${{ matrix.driver }}
run: go mod download
- name: Verify module tidy
working-directory: drivers/${{ matrix.driver }}
run: |
go mod tidy
git diff --exit-code go.mod go.sum
- name: Build
working-directory: drivers/${{ matrix.driver }}
run: go build ./...
- name: Test
working-directory: drivers/${{ matrix.driver }}
run: go test -race -count=1 ./...
# ─── Extension Module ─────────────────────────────────────────────────
extension:
name: Extension
runs-on: ubuntu-latest
needs: go
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Set up Go
uses: actions/setup-go@v6
with:
go-version: "1.26.0"
cache: true
cache-dependency-path: extension/go.sum
- name: Download modules
working-directory: extension
run: go mod download
- name: Verify module tidy
working-directory: extension
run: |
go mod tidy
git diff --exit-code go.mod go.sum
- name: Build
working-directory: extension
run: go build ./...
# ─── KV Module ──────────────────────────────────────────────────────
kv:
name: KV
runs-on: ubuntu-latest
needs: go
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Set up Go
uses: actions/setup-go@v6
with:
go-version: "1.26.0"
cache: true
cache-dependency-path: kv/go.sum
- name: Download modules
working-directory: kv
run: go mod download
- name: Verify module tidy
working-directory: kv
run: |
go mod tidy
git diff --exit-code go.mod go.sum
- name: Build
working-directory: kv
run: go build ./...
- name: Test
working-directory: kv
run: go test -race -count=1 -coverprofile=coverage.out ./...
- name: Upload coverage
if: github.event_name == 'pull_request'
uses: actions/upload-artifact@v6
with:
name: coverage-kv
path: kv/coverage.out
retention-days: 7
# ─── KV Driver Sub-Modules ──────────────────────────────────────────
kv-drivers:
name: KV Driver (${{ matrix.driver }})
runs-on: ubuntu-latest
needs: [go, kv]
strategy:
fail-fast: false
matrix:
driver:
- badgerdriver
- boltdriver
- dynamodriver
- memcacheddriver
- redisdriver
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Set up Go
uses: actions/setup-go@v6
with:
go-version: "1.26.0"
cache: true
cache-dependency-path: kv/drivers/${{ matrix.driver }}/go.sum
- name: Download modules
working-directory: kv/drivers/${{ matrix.driver }}
run: go mod download
- name: Verify module tidy
working-directory: kv/drivers/${{ matrix.driver }}
run: |
go mod tidy
git diff --exit-code go.mod go.sum
- name: Build
working-directory: kv/drivers/${{ matrix.driver }}
run: go build ./...
- name: Test
working-directory: kv/drivers/${{ matrix.driver }}
run: go test -race -count=1 ./...
# ─── Lint ───────────────────────────────────────────────────────────
lint:
name: Lint
runs-on: ubuntu-latest
needs: go
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Set up Go
uses: actions/setup-go@v6
with:
go-version: "1.26.0"
cache: true
cache-dependency-path: go.sum
- name: golangci-lint
uses: golangci/golangci-lint-action@v9
with:
version: latest
args: --timeout 10m
# ─── Format Check ──────────────────────────────────────────────────
format:
name: Format
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Set up Go
uses: actions/setup-go@v6
with:
go-version: "1.26.0"
cache: true
cache-dependency-path: go.sum
- name: Install goimports
run: go install golang.org/x/tools/cmd/goimports@latest
- name: Check formatting (goimports)
run: |
OUTPUT=$(goimports -l -local github.com/xraph/grove .)
if [ -n "$OUTPUT" ]; then
echo "::error::The following files need goimports formatting:"
echo "$OUTPUT"
exit 1
fi
# ─── CRDT JS Client ────────────────────────────────────────────────
crdt-js:
name: CRDT JS
runs-on: ubuntu-latest
defaults:
run:
working-directory: crdt-js
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Set up Node.js
uses: actions/setup-node@v6
with:
node-version: 22
- name: Install dependencies
run: npm ci
- name: Build
run: npm run build
- name: Test
run: npm test
# ─── Docs ───────────────────────────────────────────────────────────
docs:
name: Docs
runs-on: ubuntu-latest
defaults:
run:
working-directory: docs
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Set up Node.js
uses: actions/setup-node@v6
with:
node-version: 22
- name: Install pnpm
uses: pnpm/action-setup@v4
with:
version: 10
- name: Get pnpm store directory
shell: bash
run: echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV
- name: Cache pnpm
uses: actions/cache@v5
with:
path: ${{ env.STORE_PATH }}
key: ${{ runner.os }}-pnpm-${{ hashFiles('docs/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Type check
run: pnpm types:check
- name: Lint
run: pnpm lint
- name: Build
run: pnpm build