0.8.9 #5735
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: 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] |