Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
43 commits
Select commit Hold shift + click to select a range
ad37a43
ci(go): add lint/unit/integration/apicompat workflow
josephschorr May 27, 2026
440582a
ci(python): add lint/unit/integration/apicompat workflow
josephschorr May 27, 2026
adb7fca
ci(typescript): add lint/unit/integration/apicompat workflow
josephschorr May 27, 2026
a768650
ci(csharp): add lint/unit/integration/apicompat workflow
josephschorr May 27, 2026
e59330b
ci(java): add lint/unit/integration/apicompat workflow
josephschorr May 27, 2026
d4d9164
ci(ruby): add lint/unit/integration workflow
josephschorr May 27, 2026
5422713
ci(rust): add lint/unit/integration/apicompat workflow
josephschorr May 27, 2026
1b6bff2
ci(spicedb-gen): add unit + per-language integration workflow
josephschorr May 27, 2026
43d646f
ci(meta): add gen-nodiff, yaml-lint, markdown-lint workflow
josephschorr May 27, 2026
f7eff55
ci: add Dependabot config for all language ecosystems
josephschorr May 27, 2026
389443f
ci: pin third-party actions to commit SHAs
josephschorr May 27, 2026
fe6ed93
docs(design): add CI Workflow Conventions section
josephschorr May 27, 2026
30f829d
ci(ruby): install proto-client gems in unit and integration jobs
josephschorr May 27, 2026
6519d92
ci(rust): bump apicompat runner to arm-4 for cargo-semver-checks build
josephschorr May 27, 2026
9871f7f
ci: add spicedb-gen testdata dirs to Dependabot coverage
josephschorr May 27, 2026
a64d7e1
ci(meta): install yamllint without --user to avoid PATH issues
josephschorr May 27, 2026
0eeecf4
fix(ci/go): install golangci-lint before lint step
josephschorr May 27, 2026
b957a45
fix(ci/python): install ruff before lint, sync dev deps before tests
josephschorr May 27, 2026
58b3539
fix(ci): specify pnpm version in package.json
josephschorr May 27, 2026
c68edb1
fix(ci/meta): add markdownlint config to suppress MD013/MD033/MD041
josephschorr May 27, 2026
e5bc2ce
fix(ci/ruby): use bundler-cache: false to fix frozen checksum error
josephschorr May 27, 2026
11c6c84
fix(ci/rust): add missing go.sum for spicedb-rust-proto Magefile
josephschorr May 27, 2026
0c58069
fix(ci/csharp): upgrade dotnet version to 10.0.x
josephschorr May 27, 2026
9e27f50
fix(ci/python): also sync spicedb-python dev deps in unit job
josephschorr May 27, 2026
7b178ff
fix(ci/meta): disable additional markdown lint rules violated in exis…
josephschorr May 27, 2026
864a91d
fix(ci/typescript): build @spicedb/proto before running mage targets
josephschorr May 27, 2026
a2cecaf
fix(ci): build @spicedb/proto and @spicedb/client before TypeScript-u…
josephschorr May 27, 2026
1943b41
fix(ruby): use local path dependency for spicedb-proto
josephschorr May 27, 2026
20b0db6
fix(csharp): drop --no-build from IntegrationTest dotnet test invocation
josephschorr May 27, 2026
eafa155
fix(java): add Spotless plugin and apply googleJavaFormat to all Java…
josephschorr May 27, 2026
371c472
fix(python): restrict unit test target to tests/ dir only
josephschorr May 27, 2026
6cfe1f2
fix(rust-proto): disable doctests to fix JSON-in-doc-comment parse er…
josephschorr May 27, 2026
11c7de2
fix(rust): apply cargo fmt to all Rust source files
josephschorr May 27, 2026
f326d1e
fix(ruby): add .rubocop.yml and autocorrect all rubocop violations
josephschorr May 27, 2026
30848aa
fix(gen): skip claude invocation in proto Gen() when buf produces no …
josephschorr May 27, 2026
3eb8dc8
fix(ruby): replace top-level attr_reader with explicit method def in …
josephschorr May 27, 2026
8a9ddad
fix(ruby): disable Style/TrivialAccessors for spec_helper top-level m…
josephschorr May 27, 2026
137f35e
fix(proto-clients): roll back buf changes when claude is unavailable …
josephschorr May 27, 2026
7f8a867
fix(proto-clients): skip claude when CI env var is set (not just abse…
josephschorr May 27, 2026
f9a369b
fix(spicedb-rust-proto): use connect_lazy for plaintext to avoid conn…
josephschorr May 27, 2026
500012a
fix(spicedb-java-proto): use git status --porcelain and git clean to …
josephschorr May 27, 2026
522d539
fix(proto-clients): clean untracked buf-generated files on rollback
josephschorr May 27, 2026
20aca2a
fix(java): scope unit test target to :lib only
josephschorr May 27, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
104 changes: 104 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
version: 2
updates:
# GitHub Actions
- package-ecosystem: github-actions
directory: /
schedule:
interval: weekly
groups:
actions:
patterns: ["*"]

# Go (root + every dir that has its own go.mod for mage)
- package-ecosystem: gomod
directories:
- /
- /spicedb-gen
- /spicedb-gen/testdata/go
- /spicedb-go
- /spicedb-python
- /spicedb-typescript
- /spicedb-csharp
- /spicedb-java
- /spicedb-ruby
- /spicedb-rust
- /proto-clients/spicedb-go-proto
- /proto-clients/spicedb-python-proto
- /proto-clients/spicedb-typescript-proto
- /proto-clients/spicedb-csharp-proto
- /proto-clients/spicedb-java-proto
- /proto-clients/spicedb-ruby-proto
- /proto-clients/spicedb-rust-proto
schedule:
interval: weekly
groups:
gomod:
patterns: ["*"]

# Python (uv)
- package-ecosystem: pip
directories:
- /proto-clients/spicedb-python-proto
- /spicedb-gen/testdata/python
- /spicedb-python
schedule:
interval: weekly
groups:
pip:
patterns: ["*"]

# TypeScript (pnpm)
- package-ecosystem: npm
directories:
- /
- /proto-clients/spicedb-typescript-proto
- /spicedb-typescript
schedule:
interval: weekly
groups:
npm:
patterns: ["*"]

# C# (NuGet)
- package-ecosystem: nuget
directories:
- /proto-clients/spicedb-csharp-proto
- /spicedb-csharp
schedule:
interval: weekly
groups:
nuget:
patterns: ["*"]

# Java (Gradle)
- package-ecosystem: gradle
directories:
- /proto-clients/spicedb-java-proto
- /spicedb-java
schedule:
interval: weekly
groups:
gradle:
patterns: ["*"]

# Ruby (Bundler)
- package-ecosystem: bundler
directories:
- /proto-clients/spicedb-ruby-proto
- /spicedb-ruby
schedule:
interval: weekly
groups:
bundler:
patterns: ["*"]

# Rust (Cargo)
- package-ecosystem: cargo
directories:
- /proto-clients/spicedb-rust-proto
- /spicedb-rust
schedule:
interval: weekly
groups:
cargo:
patterns: ["*"]
107 changes: 107 additions & 0 deletions .github/workflows/csharp.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
# yaml-language-server: $schema=https://json.schemastore.org/github-workflow.json
---
name: CSharp
on:
push:
branches: [main]
pull_request:
branches: ["*"]
merge_group:
types: [checks_requested]
permissions:
contents: read
concurrency:
group: "csharp-${{ github.event.pull_request.number || github.sha }}"
cancel-in-progress: true
jobs:
paths-filter:
runs-on: depot-ubuntu-24.04-arm-small
outputs:
changed: ${{ steps.filter.outputs.changed }}
steps:
- uses: actions/checkout@v6
- uses: dorny/paths-filter@d1c1ffe0248fe513906c8e24db8ea791d46f8590 # v3
id: filter
with:
filters: |
changed:
- '.github/workflows/csharp.yaml'
- 'Magefile.go'
- 'go.mod'
- 'go.sum'
- 'proto-clients/spicedb-csharp-proto/**'
- 'spicedb-csharp/**'

lint:
needs: paths-filter
if: needs.paths-filter.outputs.changed == 'true'
runs-on: depot-ubuntu-24.04-arm-4
steps:
- uses: actions/checkout@v6
- uses: actions/setup-go@v5
with:
go-version-file: go.mod
- uses: actions/setup-dotnet@v4
with:
dotnet-version: 10.0.x
- name: Install mage
run: go install github.com/magefile/mage@latest
- name: Lint
run: mage -d spicedb-csharp lint

unit:
needs: paths-filter
if: needs.paths-filter.outputs.changed == 'true'
runs-on: depot-ubuntu-24.04-arm-4
steps:
- uses: actions/checkout@v6
- uses: actions/setup-go@v5
with:
go-version-file: go.mod
- uses: actions/setup-dotnet@v4
with:
dotnet-version: 10.0.x
- name: Install mage
run: go install github.com/magefile/mage@latest
- name: Proto client tests
run: mage -d proto-clients/spicedb-csharp-proto test
- name: Idiomatic client tests
run: mage -d spicedb-csharp test

integration:
needs: paths-filter
if: needs.paths-filter.outputs.changed == 'true'
runs-on: depot-ubuntu-24.04-arm-4
steps:
- uses: actions/checkout@v6
- uses: actions/setup-go@v5
with:
go-version-file: go.mod
- uses: actions/setup-dotnet@v4
with:
dotnet-version: 10.0.x
- name: Install mage
run: go install github.com/magefile/mage@latest
- name: Integration test
run: mage -d spicedb-csharp integrationTest

apicompat:
needs: paths-filter
if: needs.paths-filter.outputs.changed == 'true' && github.event_name == 'pull_request'
runs-on: depot-ubuntu-24.04-arm-small
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 0
- uses: actions/setup-go@v5
with:
go-version-file: go.mod
- uses: actions/setup-dotnet@v4
with:
dotnet-version: 10.0.x
- name: Install mage
run: go install github.com/magefile/mage@latest
- name: Install Microsoft.DotNet.ApiCompat.Tool
run: dotnet tool install --global Microsoft.DotNet.ApiCompat.Tool
- name: API compatibility check
run: mage -d spicedb-csharp apiCompat origin/${{ github.base_ref }}
98 changes: 98 additions & 0 deletions .github/workflows/go.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
# yaml-language-server: $schema=https://json.schemastore.org/github-workflow.json
---
name: Go
on:
push:
branches: [main]
pull_request:
branches: ["*"]
merge_group:
types: [checks_requested]
permissions:
contents: read
concurrency:
group: "go-${{ github.event.pull_request.number || github.sha }}"
cancel-in-progress: true
jobs:
paths-filter:
runs-on: depot-ubuntu-24.04-arm-small
outputs:
changed: ${{ steps.filter.outputs.changed }}
steps:
- uses: actions/checkout@v6
- uses: dorny/paths-filter@d1c1ffe0248fe513906c8e24db8ea791d46f8590 # v3
id: filter
with:
filters: |
changed:
- '.github/workflows/go.yaml'
- 'Magefile.go'
- 'go.mod'
- 'go.sum'
- 'proto-clients/spicedb-go-proto/**'
- 'spicedb-go/**'

lint:
needs: paths-filter
if: needs.paths-filter.outputs.changed == 'true'
runs-on: depot-ubuntu-24.04-arm-4
steps:
- uses: actions/checkout@v6
- uses: actions/setup-go@v5
with:
go-version-file: go.mod
- uses: golangci/golangci-lint-action@55c2c1448f86e01eaae002a5a3a9624417608d84 # v6
with:
working-directory: spicedb-go
- name: Install mage
run: go install github.com/magefile/mage@latest
- name: Lint
run: mage -d spicedb-go lint

unit:
needs: paths-filter
if: needs.paths-filter.outputs.changed == 'true'
runs-on: depot-ubuntu-24.04-arm-4
steps:
- uses: actions/checkout@v6
- uses: actions/setup-go@v5
with:
go-version-file: go.mod
- name: Install mage
run: go install github.com/magefile/mage@latest
- name: Proto client tests
run: mage -d proto-clients/spicedb-go-proto test
- name: Idiomatic client tests
run: mage -d spicedb-go test

integration:
needs: paths-filter
if: needs.paths-filter.outputs.changed == 'true'
runs-on: depot-ubuntu-24.04-arm-4
steps:
- uses: actions/checkout@v6
- uses: actions/setup-go@v5
with:
go-version-file: go.mod
- name: Install mage
run: go install github.com/magefile/mage@latest
- name: Integration test
run: mage -d spicedb-go integrationTest

apicompat:
needs: paths-filter
if: needs.paths-filter.outputs.changed == 'true' && github.event_name == 'pull_request'
runs-on: depot-ubuntu-24.04-arm-small
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 0
- uses: actions/setup-go@v5
with:
go-version-file: go.mod
- name: Install mage
run: go install github.com/magefile/mage@latest
- name: Install go-apidiff
run: go install github.com/joelanford/go-apidiff@latest
- name: API compatibility check
run: mage -d spicedb-go apiCompat origin/${{ github.base_ref }}
Loading
Loading