name: Execute Notebooks on: push: branches: [ main ] pull_request: branches: [ main ] workflow_dispatch: permissions: contents: read jobs: run-notebooks: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Set up Python uses: actions/setup-python@v4 with: python-version: '3.10' - name: Install dependencies run: | python -m pip install --upgrade pip pip install -r requirements.txt - name: Execute notebooks run: | mkdir -p executed for nb in $(git ls-files '*.ipynb'); do echo "Executing $nb" jupyter nbconvert --to notebook --inplace --execute "$nb" --ExecutePreprocessor.timeout=600 jupyter nbconvert --to html "$nb" --output-dir executed --output "$(basename "$nb" .ipynb)" done - name: Upload executed notebooks (HTML) uses: actions/upload-artifact@v4 with: name: executed-notebooks path: executed/