Skip to content
Merged
Show file tree
Hide file tree
Changes from 6 commits
Commits
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
3 changes: 3 additions & 0 deletions .envrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
if has devenv; then
eval "$(devenv print-dev-env)"
fi
172 changes: 172 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,172 @@
name: CI

on:
push:
branches: [main]
pull_request:
branches: [main]

env:
CARGO_TERM_COLOR: always
RUSTFLAGS: -Dwarnings

jobs:
check:
name: Check
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
submodules: recursive

- uses: dtolnay/rust-toolchain@stable

- uses: Swatinem/rust-cache@v2

- name: Install protoc
uses: arduino/setup-protoc@v3
with:
version: "27.x"
repo-token: ${{ secrets.GITHUB_TOKEN }}

- name: Check (default features)
run: cargo check

- name: Check (all features)
run: cargo check --all-features

fmt:
name: Format
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- uses: dtolnay/rust-toolchain@stable
with:
components: rustfmt

- name: Check formatting
run: cargo fmt --check

clippy:
name: Clippy
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
submodules: recursive

- uses: dtolnay/rust-toolchain@stable
with:
components: clippy

- uses: Swatinem/rust-cache@v2

- name: Install protoc
uses: arduino/setup-protoc@v3
with:
version: "27.x"
repo-token: ${{ secrets.GITHUB_TOKEN }}

- name: Clippy (default features)
run: cargo clippy -- -D warnings

- name: Clippy (all features)
run: cargo clippy --all-features -- -D warnings

test:
name: Test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
submodules: recursive

- uses: dtolnay/rust-toolchain@stable

- uses: Swatinem/rust-cache@v2

- name: Install protoc
uses: arduino/setup-protoc@v3
with:
version: "27.x"
repo-token: ${{ secrets.GITHUB_TOKEN }}

- name: Start SpiceDB
run: |
docker run -d \
--name spicedb \
-p 50051:50051 \
authzed/spicedb:latest \
serve \
--grpc-preshared-key "test-key" \
--datastore-engine memory \
--grpc-no-tls
for i in $(seq 1 30); do
if docker logs spicedb 2>&1 | grep -q "grpc server started serving"; then
echo "SpiceDB is ready"
break
fi
echo "Waiting for SpiceDB... ($i/30)"
sleep 1
done

- name: Tests (default features)
run: cargo test
env:
SPICEDB_ENDPOINT: http://localhost:50051
SPICEDB_TOKEN: test-key

- name: Tests (all features)
run: cargo test --all-features
env:
SPICEDB_ENDPOINT: http://localhost:50051
SPICEDB_TOKEN: test-key

- name: SpiceDB logs
if: failure()
run: docker logs spicedb

doc:
name: Documentation
runs-on: ubuntu-latest
env:
RUSTDOCFLAGS: -Dwarnings
steps:
- uses: actions/checkout@v4
with:
submodules: recursive

- uses: dtolnay/rust-toolchain@stable

- uses: Swatinem/rust-cache@v2

- name: Install protoc
uses: arduino/setup-protoc@v3
with:
version: "27.x"
repo-token: ${{ secrets.GITHUB_TOKEN }}

- name: Build docs
run: cargo doc --all-features --no-deps

msrv:
name: MSRV (1.75)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
submodules: recursive

- uses: dtolnay/rust-toolchain@1.75

- uses: Swatinem/rust-cache@v2

- name: Install protoc
uses: arduino/setup-protoc@v3
with:
version: "27.x"
repo-token: ${{ secrets.GITHUB_TOKEN }}

- name: Check MSRV
run: cargo check --all-features
21 changes: 21 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Rust build artifacts
/target/

# Nix/devenv
.devenv/
.devenv.flake.nix
.pre-commit-config.yaml

# direnv
.direnv/

# OS files
.DS_Store

# Editor
*.swp
*.swo
*~

# Test binary (remove later)
test2
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[submodule "proto/authzed-api"]
path = proto/authzed-api
url = https://github.com/authzed/api.git
Loading
Loading