Skip to content

oddin-gg/ghostschema

Repository files navigation

Ghost Schema

Represents gRPC schema for Oddin.gg Ghost visualization service.

K6 gRPC Tests

Automated gRPC integration tests for Ghost using K6. Tests use Bragi to fetch match URNs, then validate Ghost endpoints.

Running locally

First, fetch bragi proto definitions:

cd k6
bash setup_protos.sh

Then run tests (auth tokens must be supplied via environment variables):

cd k6
k6 run \
  -e BRAGI_TOKEN=your-bragi-token \
  -e GHOST_TOKEN=your-ghost-token \
  ghost_match_status.js

To also override endpoints:

cd k6
k6 run \
  -e BRAGI_TOKEN=your-bragi-token \
  -e GHOST_TOKEN=your-ghost-token \
  -e GHOST_ADDR=your-ghost-host:443 \
  ghost_match_status.js

Test files

File gRPC Method Description
ghost_match_status.js GetMatchStatus Validates match status enum values
ghost_match_info.js GetMatchInfo Validates CS2/Dota2 match info fields

CI/CD

Tests run automatically via GitHub Actions on a self-hosted Linux runner (requires VPN/network access to internal endpoints):

  • Schedule: Daily at 06:00 UTC
  • Manual: Trigger via workflow_dispatch in the Actions tab

Required GitHub Secrets

Secret Description
BRAGI_TOKEN Auth token for the Bragi gRPC API
GHOST_TOKEN Auth token for the Ghost gRPC API

Environment variables

Variable Default Description
BRAGI_ADDR api-bragi-test.integration.oddin.dev:443 Bragi gRPC endpoint
GHOST_ADDR api-ghost-grpc-test-integration.oddin.dev:443 Ghost gRPC endpoint
BRAGI_TOKEN (required) Bragi auth token
GHOST_TOKEN (required) Ghost auth token
MATCH_URN (optional) Overrides match URN in ghost_match_status.js
CS2_MATCH_URN (optional) Overrides CS2 match URN in ghost_match_info.js
DOTA2_MATCH_URN (optional) Overrides Dota2 match URN in ghost_match_info.js

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors