mcp-server-strava
by rbctmz
- mcp-server-strava
- .github
- workflows
name: CI
on:
push:
branches: [ main, master, 'feature/*', 'fix/*', 'docs/*', 'test/*' ]
pull_request:
branches: [ main, master ]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.10'
- name: Get cache paths
id: cache-paths
run: |
echo "UV_CACHE=$(uv cache dir)" >> $GITHUB_OUTPUT
echo "VENV_PATH=$PWD/.venv" >> $GITHUB_OUTPUT
- name: Cache dependencies
uses: actions/cache@v4
with:
path: |
${{ steps.cache-paths.outputs.UV_CACHE }}
${{ steps.cache-paths.outputs.VENV_PATH }}
key: ${{ runner.os }}-deps-${{ hashFiles('pyproject.toml') }}
restore-keys: |
${{ runner.os }}-deps-
- name: Install uv and setup venv
run: |
curl -LsSf https://astral.sh/uv/install.sh | sh
uv venv
echo "VIRTUAL_ENV=$PWD/.venv" >> $GITHUB_ENV
echo "$PWD/.venv/bin" >> $GITHUB_PATH
- name: Install dependencies
run: |
uv pip install -e ".[dev]"
uv pip install ruff pytest pytest-cov
- name: Run linting
run: |
source .venv/bin/activate
which ruff
ruff --version
ruff format . --check
ruff check .
- name: Run tests
run: |
source .venv/bin/activate
pytest --cov=src --cov-report=xml
env:
STRAVA_CLIENT_ID: ${{ secrets.STRAVA_CLIENT_ID }}
STRAVA_CLIENT_SECRET: ${{ secrets.STRAVA_CLIENT_SECRET }}
STRAVA_REFRESH_TOKEN: ${{ secrets.STRAVA_REFRESH_TOKEN }}
- name: Upload coverage
uses: codecov/codecov-action@v4
with:
token: ${{ secrets.CODECOV_TOKEN }}
file: ./coverage.xml