111 lines
2.5 KiB
YAML
111 lines
2.5 KiB
YAML
# .github/workflows/test.yml
|
|
name: Tests
|
|
|
|
on:
|
|
push:
|
|
branches: [main, develop]
|
|
pull_request:
|
|
branches: [main, develop]
|
|
|
|
jobs:
|
|
test-typescript:
|
|
name: TypeScript Tests
|
|
runs-on: ubuntu-latest
|
|
|
|
services:
|
|
postgres:
|
|
image: postgres:16
|
|
env:
|
|
POSTGRES_DB: test_db
|
|
POSTGRES_USER: test_user
|
|
POSTGRES_PASSWORD: test_password
|
|
options: >-
|
|
--health-cmd pg_isready
|
|
--health-interval 10s
|
|
--health-timeout 5s
|
|
--health-retries 5
|
|
ports:
|
|
- 5432:5432
|
|
|
|
redis:
|
|
image: redis:7-alpine
|
|
options: >-
|
|
--health-cmd "redis-cli ping"
|
|
--health-interval 10s
|
|
--health-timeout 5s
|
|
--health-retries 5
|
|
ports:
|
|
- 6379:6379
|
|
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- uses: actions/setup-node@v4
|
|
with:
|
|
node-version: "20"
|
|
cache: "bun"
|
|
|
|
- name: Install Doppler CLI
|
|
uses: dopplerhq/cli-action@v3
|
|
|
|
- name: Install dependencies
|
|
run: bun install
|
|
|
|
- name: Run tests with coverage
|
|
env:
|
|
DOPPLER_TOKEN: ${{ secrets.DOPPLER_TOKEN_TEST }}
|
|
run: doppler run --config test -- bun run test:coverage
|
|
|
|
- name: Upload coverage
|
|
uses: codecov/codecov-action@v4
|
|
with:
|
|
files: ./coverage/coverage-final.json
|
|
|
|
test-python:
|
|
name: Python Tests
|
|
runs-on: ubuntu-latest
|
|
|
|
services:
|
|
postgres:
|
|
image: postgres:16
|
|
env:
|
|
POSTGRES_DB: test_db
|
|
POSTGRES_USER: test_user
|
|
POSTGRES_PASSWORD: test_password
|
|
options: >-
|
|
--health-cmd pg_isready
|
|
--health-interval 10s
|
|
--health-timeout 5s
|
|
--health-retries 5
|
|
ports:
|
|
- 5432:5432
|
|
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- uses: actions/setup-python@v5
|
|
with:
|
|
python-version: "3.12"
|
|
cache: "pip"
|
|
|
|
- name: Install Doppler CLI
|
|
uses: dopplerhq/cli-action@v3
|
|
|
|
- name: Install dependencies
|
|
run: |
|
|
python -m venv .venv
|
|
source .venv/bin/activate
|
|
pip install -r requirements.txt -r requirements-dev.txt
|
|
|
|
- name: Run tests with coverage
|
|
env:
|
|
DOPPLER_TOKEN: ${{ secrets.DOPPLER_TOKEN_TEST }}
|
|
run: |
|
|
source .venv/bin/activate
|
|
doppler run --config test -- pytest --cov=app --cov-report=xml
|
|
|
|
- name: Upload coverage
|
|
uses: codecov/codecov-action@v4
|
|
with:
|
|
files: ./coverage.xml
|