Skip to content

feat: Merge Phase 1-2 changes to main #7

feat: Merge Phase 1-2 changes to main

feat: Merge Phase 1-2 changes to main #7

Workflow file for this run

name: Test Suite
on:
push:
branches: [ main, master, 'feat/**', 'fix/**' ]
pull_request:
branches: [ main, master ]
jobs:
unit-tests:
name: Unit Tests
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Python 3.12
uses: actions/setup-python@v5
with:
python-version: '3.12'
cache: 'pip'
cache-dependency-path: scripts/requirements.txt
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r scripts/requirements.txt
pip install pytest pytest-cov pytest-mock
- name: Run unit tests
run: |
pytest tests/ -m unit -v --tb=short
- name: Run tests without API (mock-safe tests)
run: |
pytest tests/test_validator.py tests/test_v2_server.py -v --tb=short
integration-tests:
name: Integration Tests
runs-on: ubuntu-latest
# Runs on all branches when secrets are configured
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Python 3.12
uses: actions/setup-python@v5
with:
python-version: '3.12'
cache: 'pip'
cache-dependency-path: scripts/requirements.txt
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r scripts/requirements.txt
pip install pytest pytest-mock
- name: Create secrets directory
run: mkdir -p secrets
- name: Configure Scribe credentials
env:
SCRIBE_TOKEN: ${{ secrets.SCRIBE_TOKEN }}
SCRIBE_ORG_ID: ${{ secrets.SCRIBE_ORG_ID }}
run: |
echo "SCRIBE_TOKEN=$SCRIBE_TOKEN" > secrets/.env
echo "SCRIBE_ORG_ID=$SCRIBE_ORG_ID" >> secrets/.env
- name: Run integration tests
env:
SCRIBE_TOKEN: ${{ secrets.SCRIBE_TOKEN }}
SCRIBE_ORG_ID: ${{ secrets.SCRIBE_ORG_ID }}
run: |
pytest tests/ -m integration -v --tb=short --maxfail=5
coverage:
name: Test Coverage
runs-on: ubuntu-latest
needs: unit-tests
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Python 3.12
uses: actions/setup-python@v5
with:
python-version: '3.12'
cache: 'pip'
cache-dependency-path: scripts/requirements.txt
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r scripts/requirements.txt
pip install pytest pytest-cov pytest-mock
- name: Run tests with coverage
run: |
pytest tests/test_validator.py tests/test_v2_server.py \
--cov=scripts \
--cov-report=xml \
--cov-report=term-missing \
-v --tb=short
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v4
with:
file: ./coverage.xml
fail_ci_if_error: false
verbose: true
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
lint:
name: Code Quality
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Python 3.12
uses: actions/setup-python@v5
with:
python-version: '3.12'
- name: Install linting tools
run: |
python -m pip install --upgrade pip
pip install ruff
- name: Run ruff linter
run: |
ruff check scripts/ tests/ --ignore=E501,F401 --exit-zero