Skip to content

Adds SymPy expression rendering support (#1412) #14

Adds SymPy expression rendering support (#1412)

Adds SymPy expression rendering support (#1412) #14

Workflow file for this run

name: Test BE
# Run on push to main and pull requests
# only for backend changes
on:
push:
branches: [main]
paths:
- 'marimo/**'
- 'tests/**'
- 'pyproject.toml'
pull_request:
paths:
- 'marimo/**'
- 'tests/**'
- 'pyproject.toml'
env:
MARIMO_SKIP_UPDATE_CHECK: 1
jobs:
test_python:
name: Tests on ${{ matrix.os }}, Python ${{ matrix.python-version }} with ${{ matrix.dependencies }} dependencies
runs-on: ${{ matrix.os }}
timeout-minutes: 15
defaults:
run:
shell: bash
strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
dependencies: ['core', 'core,optional']
python-version: ['3.8']
include:
- os: ubuntu-latest
python-version: '3.9'
dependencies: 'core'
- os: ubuntu-latest
python-version: '3.10'
dependencies: 'core'
- os: ubuntu-latest
python-version: '3.11'
dependencies: 'core'
- os: ubuntu-latest
python-version: '3.12'
dependencies: 'core'
- os: ubuntu-latest
python-version: '3.9'
dependencies: 'core,optional'
- os: ubuntu-latest
python-version: '3.10'
dependencies: 'core,optional'
- os: ubuntu-latest
python-version: '3.11'
dependencies: 'core,optional'
- os: ubuntu-latest
python-version: '3.12'
dependencies: 'core,optional'
steps:
- name: 🛑 Cancel Previous Runs
uses: styfle/[email protected]
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
cache: 'pip'
- name: 🐍 Setup uv
uses: yezz123/setup-uv@v4
# This step is needed since some of our tests rely on the index.html file
- name: Create assets directory, copy over index.html
run: |
mkdir -p marimo/_static/assets
cp frontend/index.html marimo/_static/index.html
cp frontend/public/favicon.ico marimo/_static/favicon.ico
# Lint, typecheck
# Each run command runs in a separate shell, so we need to
# reactivate the virtual environment every time
- name: Install marimo with dev dependencies
run: |
uv venv marimo-dev-env
if [ "$RUNNER_OS" == "Windows" ]; then
source marimo-dev-env\\Scripts\\activate
else
source marimo-dev-env/bin/activate
fi
uv pip install --upgrade pip
uv pip install .[dev]
- name: Lint
run: |
if [ "$RUNNER_OS" == "Windows" ]; then
source marimo-dev-env\\Scripts\\activate
else
source marimo-dev-env/bin/activate
fi
ruff check marimo/
- name: Typecheck
if: ${{ matrix.python-version == '3.11' || matrix.python-version == '3.12' }}
run: |
if [ "$RUNNER_OS" == "Windows" ]; then
source marimo-dev-env\\Scripts\\activate
else
source marimo-dev-env/bin/activate
fi
mypy --config-file pyproject.toml marimo/
# Test with minimal dependencies
- name: Test with minimal dependencies
if: ${{ matrix.dependencies == 'core' }}
run: |
uv venv marimo-test-env
if [ "$RUNNER_OS" == "Windows" ]; then
source marimo-test-env\\Scripts\\activate
else
source marimo-test-env/bin/activate
fi
uv pip install --upgrade pip
uv pip install .[testcore]
pytest -v tests/ -k "not test_cli"
# Test with optional dependencies
- name: Test with optional dependencies
if: ${{ matrix.dependencies == 'core,optional' }}
run: |
uv venv marimo-test-optional-env
if [ "$RUNNER_OS" == "Windows" ]; then
source marimo-test-optional-env\\Scripts\\activate
else
source marimo-test-optional-env/bin/activate
fi
uv pip install --upgrade pip
uv pip install .[testcore,testoptional]
pytest -v tests/ -k "not test_cli"