fix: resuming when auto-instantiate is false #2960
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: | |
# Turbocache | |
TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }} | |
TURBO_TEAM: marimo | |
TURBO_API: "https://cache.turbocache.build" | |
TURBO_RUN_SUMMARY: true | |
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/cancel-workflow-action@0.12.1 | |
- 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: 18 | |
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 turbo test | |
- name: 📦 Build | |
run: pnpm turbo build | |
test_python: | |
name: Tests on ${{ matrix.os }}, Python ${{ matrix.python-version }} with ${{ matrix.dependencies }} dependencies | |
runs-on: ${{ matrix.os }} | |
timeout-minutes: 10 | |
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: | |
- uses: actions/checkout@v4 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
cache: "pip" | |
# 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: | | |
python -m venv marimo-dev-env | |
if [ "$RUNNER_OS" == "Windows" ]; then | |
marimo-dev-env\\Scripts\\activate | |
else | |
source marimo-dev-env/bin/activate | |
fi | |
python -m pip install --upgrade pip | |
pip install .[dev] | |
- name: Lint | |
run: | | |
if [ "$RUNNER_OS" == "Windows" ]; then | |
marimo-dev-env\\Scripts\\activate | |
else | |
source marimo-dev-env/bin/activate | |
fi | |
ruff marimo/ | |
- name: Typecheck | |
if: ${{ matrix.python-version == '3.9' || matrix.python-version == '3.10' }} | |
run: | | |
if [ "$RUNNER_OS" == "Windows" ]; then | |
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: | | |
python -m venv marimo-test-env | |
if [ "$RUNNER_OS" == "Windows" ]; then | |
marimo-test-env\\Scripts\\activate | |
else | |
source marimo-test-env/bin/activate | |
fi | |
python -m pip install --upgrade pip | |
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: | | |
python -m venv marimo-test-optional-env | |
if [ "$RUNNER_OS" == "Windows" ]; then | |
marimo-test-optional-env\\Scripts\\activate | |
else | |
source marimo-test-optional-env/bin/activate | |
fi | |
python -m pip install --upgrade pip | |
pip install .[testcore,testoptional] | |
# Only collect coverage on the 3.11 | |
if [ "${{ matrix.python-version }}" == "3.11" ]; then | |
pytest -v tests/ -k "not test_cli" --cov=marimo --cov-branch | |
else | |
pytest -v tests/ -k "not test_cli" | |
fi | |
- name: Upload coverage reports to Codecov | |
if: ${{ matrix.python-version == '3.11' && matrix.os == 'ubuntu-latest' }} | |
uses: codecov/codecov-action@v3 | |
env: | |
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} | |
typos: | |
name: Check for typos | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: crate-ci/typos@v1.18.2 |