Skip to content

0.8.9

0.8.9 #5735

Workflow file for this run

name: test
on:
push:
branches: [main]
pull_request: {}
env:
TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }}
TURBO_TEAM: marimo
MARIMO_SKIP_UPDATE_CHECK: 1
jobs:
test_frontend:
name: 🖥️ Lint, test, build frontend
runs-on: ubuntu-latest
timeout-minutes: 15
defaults:
run:
working-directory: ./frontend
shell: bash
steps:
- name: 🛑 Cancel Previous Runs
uses: styfle/[email protected]
- name: ⬇️ Checkout repo
uses: actions/checkout@v4
with:
fetch-depth: 0 # so we can run --since on the main branch and turbo can do faster cache hashing
- uses: pnpm/action-setup@v2
with:
version: 8
- name: ⎔ Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 20
cache: "pnpm"
cache-dependency-path: "**/pnpm-lock.yaml"
- uses: turbocache-build/turbocache-action@v1
- name: 📥 Install dependencies
run: pnpm install
- name: 📦 pnpm dedupe
if: github.event_name == 'pull_request'
run: pnpm dedupe --check
- name: 🧹 Lint
run: pnpm turbo lint
- name: 🔎 Type check
run: pnpm turbo typecheck
- name: 🧪 Test
run: pnpm test
- name: 📦 Build
run: pnpm turbo build
env:
NODE_ENV: production
- name: 📦 Build islands frontend
env:
NODE_ENV: production
VITE_MARIMO_ISLANDS: "true"
VITE_MARIMO_VERSION: "0.0.0"
run: |
npm version 0.0.0 --no-git-tag-version
pnpm turbo build:islands
./islands/validate.sh
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"
typos:
name: Check for typos
runs-on: ubuntu-latest
steps:
- name: 🛑 Cancel Previous Runs
uses: styfle/[email protected]
- uses: actions/checkout@v4
- uses: crate-ci/[email protected]