Follow-up #926: Add the test for jupyterlab exntension build #1167
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: tests | |
on: | |
pull_request: | |
branches: | |
- main | |
paths: | |
- '.github/workflows/python-tests.yml' | |
- '**.py' | |
- 'pyproject.toml' | |
jobs: | |
lint: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: '3.12' | |
architecture: x64 | |
- name: Install dependencies | |
run: | | |
python -m pip install --progress-bar off --upgrade pip setuptools | |
pip install --progress-bar off . | |
pip install --progress-bar off flake8 black isort mypy mypy-boto3-s3 | |
- run: flake8 . --show-source | |
- run: black --check --diff . | |
- run: isort --check --diff . | |
- run: mypy optuna_dashboard python_tests | |
build-python-package: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup Node | |
uses: actions/setup-node@v4 | |
with: | |
node-version: '20' | |
- name: Set up Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: '3.12' | |
- name: Install dependencies | |
run: | | |
python -m pip install --upgrade pip setuptools | |
pip install --progress-bar off wheel twine build | |
- run: make python-package | |
test: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
python-version: ['3.8', '3.9', '3.10', '3.11', '3.12', '3.13'] | |
optuna-version: ['optuna>=3.1.0'] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup Python${{ matrix.python-version }} | |
uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python-version }} | |
architecture: x64 | |
- name: Setup Optuna ${{ matrix.optuna-version }} | |
run: | | |
python -m pip install --progress-bar off --upgrade pip setuptools | |
python -m pip install --progress-bar off --upgrade ${{ matrix.optuna-version }} | |
- name: Install dependencies | |
run: | | |
pip install --progress-bar off .[optional] | |
pip install --progress-bar off .[test] | |
pip install --progress-bar off . | |
- name: Run python unit tests | |
run: | | |
pytest python_tests | |
test-with-optuna-master: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: '3.11' | |
architecture: x64 | |
- name: Install dependencies | |
run: | | |
python -m pip install --progress-bar off --upgrade pip setuptools | |
pip install --progress-bar off .[optional] | |
pip install --progress-bar off .[test] | |
pip install --progress-bar off . | |
python -m pip install --progress-bar off --upgrade git+https://github.com/optuna/optuna.git | |
- name: Run python unit tests | |
run: | | |
pytest python_tests | |
test-with-optuna-oldest: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: '3.11' | |
architecture: x64 | |
- name: Install dependencies | |
run: | | |
python -m pip install --progress-bar off --upgrade pip setuptools | |
pip install --progress-bar off .[optional] | |
pip install --progress-bar off .[test] | |
pip install --progress-bar off . | |
python -m pip install --progress-bar off --force-reinstall optuna==3.1.0 | |
- name: Run python unit tests | |
run: | | |
pytest python_tests | |
test-build: | |
name: Test build for JupyterLab extension | |
runs-on: ubuntu-latest | |
steps: | |
- name: Check out code | |
uses: actions/checkout@v4 | |
- name: Set up Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: '3.11' | |
architecture: x64 | |
- name: Install dependencies | |
run: | | |
python -m pip install --progress-bar off --upgrade pip setuptools build | |
pip install --progress-bar off jupyterlab | |
pip install --progress-bar off . | |
- name: Set up Node | |
uses: actions/setup-node@v4 | |
with: | |
node-version: '20' | |
cache: 'npm' | |
- run: make tslib | |
- name: Build JavaScript dependencies | |
working-directory: optuna_dashboard | |
run: | | |
npm install | |
npm run build:pkg | |
# Without a following step, it will be failed to build the jupyter lab extension by the below error | |
# Type Error Cannot read properties of undefined (reading .../jupyterlab/.pnp.cjs) | |
- name: Mysterious hack to fix the build error | |
working-directory: jupyterlab | |
run: yarn install | |
- name: editable install | |
working-directory: jupyterlab | |
run: | | |
pip install jupyterlab | |
jlpm install | |
- name: editable install | |
working-directory: jupyterlab | |
run: pip install -e . | |
- name: Build package | |
working-directory: jupyterlab | |
run: python -m build --sdist | |