mcp-server-strava

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