feat: make Metric the basic unit for metrics, not str #98
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Run tests and upload coverage | |
on: | |
pull_request: | |
types: [opened, synchronize, reopened, ready_for_review] | |
jobs: | |
test: | |
name: Run tests with pytest | |
if: ${{ !github.event.pull_request.draft }} # Skip draft PRs | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: ["ubuntu-latest", "windows-latest"] | |
python-version: ["3.9", "3.10", "3.11", "3.12"] | |
exclude: | |
- os: windows-latest | |
python-version: "3.9" | |
- os: windows-latest | |
python-version: "3.11" | |
- os: windows-latest | |
python-version: "3.12" | |
fail-fast: false | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Python ${{ matrix.python-version }} on ${{ matrix.os }} | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
allow-prereleases: true | |
# Step for Windows: Create and activate a virtual environment | |
- name: Create and activate a virtual environment (Windows) | |
if: ${{ runner.os == 'Windows' }} | |
run: | | |
irm https://astral.sh/uv/install.ps1 | iex | |
$env:Path = "C:\Users\runneradmin\.local\bin;$env:Path" | |
uv venv .venv | |
"VIRTUAL_ENV=.venv" | Out-File -FilePath $env:GITHUB_ENV -Append | |
"$PWD/.venv/Scripts" | Out-File -FilePath $env:GITHUB_PATH -Append | |
# Step for Unix: Create and activate a virtual environment | |
- name: Create and activate a virtual environment (Unix) | |
if: ${{ runner.os != 'Windows' }} | |
run: | | |
curl -LsSf https://astral.sh/uv/install.sh | sh | |
uv venv .venv | |
echo "VIRTUAL_ENV=.venv" >> $GITHUB_ENV | |
echo "$PWD/.venv/bin" >> $GITHUB_PATH | |
# Install dependencies using uv pip | |
- name: Install dependencies | |
run: make install-no-pre-commit | |
# Run tests with coverage | |
- name: Run tests under coverage | |
run: | | |
coverage run -m pytest | |
coverage report | |
# Upload results to Codecov | |
- name: Upload results to Codecov | |
uses: codecov/codecov-action@v4 | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} |