Skip to content

SMOODEV-950: Circuit breaker — rate-based detection + onStateChange in Rust/Python/Go #58

SMOODEV-950: Circuit breaker — rate-based detection + onStateChange in Rust/Python/Go

SMOODEV-950: Circuit breaker — rate-based detection + onStateChange in Rust/Python/Go #58

Workflow file for this run

name: PR Checks
on:
pull_request:
branches: [main]
types: [opened, synchronize]
env:
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: 'true'
jobs:
validate:
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- uses: actions/checkout@v4
- name: Setup pnpm
uses: pnpm/action-setup@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 22
cache: 'pnpm'
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: '3.13'
- name: Setup uv
uses: astral-sh/setup-uv@v6
- name: Setup Rust toolchain
uses: dtolnay/rust-toolchain@stable
- name: Cache Rust build artifacts
uses: Swatinem/rust-cache@v2
with:
workspaces: |
rust/fetch -> rust/fetch/target
cache-on-failure: true
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version: '1.23'
cache-dependency-path: go/fetch/go.sum
- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
dotnet-version: |
8.0.x
9.0.x
10.0.x
- name: Install dependencies
run: pnpm install
- name: Sync Python dependencies
run: uv sync --group dev
working-directory: python
- name: Restore .NET dependencies
run: dotnet restore SmooAI.Fetch.sln
working-directory: dotnet
- name: Typecheck
run: pnpm typecheck
- name: Lint
run: pnpm lint
- name: Format check
run: pnpm format:check && pnpm python:format:check && pnpm rust:fmt:check && pnpm go:fmt:check && pnpm dotnet:format:check
- name: Test
run: pnpm test
- name: Build
run: pnpm build