buster/.github/workflows/cli-testing.yml

55 lines
1.9 KiB
YAML

name: CLI Testing
on:
pull_request:
branches:
- main
paths:
- 'cli/**' # Trigger on changes in the cli directory
- '.github/workflows/cli-testing.yml' # Also run if the workflow file itself changes
- '.github/actions/setup-test-environment/action.yml' # Rerun if common setup changes
- '.github/actions/stop-supabase/action.yml'
jobs:
test:
runs-on: blacksmith-16vcpu-ubuntu-2204 # Using a powerful runner as requested
# Service container for Redis (needed by the setup action)
services:
redis:
image: redis
ports:
- 6379:6379
options: >-
--health-cmd "redis-cli ping"
--health-interval 10s
--health-timeout 5s
--health-retries 5
steps:
- name: Checkout code
uses: actions/checkout@v4
# Node.js setup removed - not needed for cargo test
- name: Setup Test Environment
uses: ./.github/actions/setup-test-environment
- name: Run CLI Tests
working-directory: ./cli # Tests run from the cli directory
run: cargo test --workspace # Run tests for all packages in the cli workspace
env:
# Use hardcoded default values and secrets
DATABASE_URL: postgres://postgres:postgres@127.0.0.1:54322/postgres
REDIS_URL: redis://localhost:6379 # Connect to the Redis service container
JWT_SECRET: ${{ secrets.GH_ACTIONS_SUPABASE_JWT_SECRET }} # Use secret
SUPABASE_URL: http://127.0.0.1:54321 # Default local URL
SUPABASE_SERVICE_ROLE_KEY: ${{ secrets.GH_ACTIONS_SUPABASE_SERVICE_ROLE_KEY }} # Use secret
RUST_LOG: debug # Or adjust as needed
# Add any other environment variables your CLI tests might require
- name: Stop Supabase # Use the cleanup action
uses: ./.github/actions/stop-supabase
if: always() # Ensure Supabase is stopped even if tests fail