Testing Playground Refactor #921
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: Ersilia tests, installation checks, and cleanup of model request template | |
on: | |
pull_request: | |
branches: [master] | |
push: | |
branches: [master] | |
workflow_dispatch: | |
jobs: | |
install-ersilia: | |
strategy: | |
matrix: | |
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"] | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@f677139bbe7f9c59b41e40162b753c062f5d49a3 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install Ersilia | |
run: | | |
python -m pip install git+https://github.com/ersilia-os/bentoml-ersilia.git | |
python -m pip install -e . | |
- name: Test help command | |
run: | | |
ersilia --help | |
ersilia --version | |
test-docker: | |
strategy: | |
matrix: | |
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"] | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@f677139bbe7f9c59b41e40162b753c062f5d49a3 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install Ersilia without pre-installing BentoML | |
run: | | |
python -m pip install -e . | |
- name: Test help command again | |
run: | | |
ersilia --help | |
ersilia --version | |
- name: Fetch molecular weight model from DockerHub | |
run: | | |
ersilia -v fetch molecular-weight --from_dockerhub | |
test-os: | |
strategy: | |
matrix: | |
platform: [ubuntu-22.04, macos-latest] | |
runs-on: ${{ matrix.platform }} | |
defaults: | |
run: | |
shell: bash -el {0} | |
steps: | |
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # pin@v3.5.3 | |
- uses: conda-incubator/setup-miniconda@v3 | |
with: | |
auto-update-conda: true | |
python-version: "3.10.10" | |
- name: Install dependencies | |
run: | | |
conda install git-lfs -c conda-forge | |
git-lfs install | |
conda install gh -c conda-forge | |
- name: Install ersilia from source | |
run: | | |
python --version | |
python -m pip install -e . | |
- name: Ersilia help | |
run: | | |
ersilia --help | |
run-pytest: | |
runs-on: ubuntu-22.04 | |
defaults: | |
run: | |
shell: bash -el {0} | |
steps: | |
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # pin@v3.5.3 | |
- uses: conda-incubator/setup-miniconda@v3 | |
with: | |
auto-update-conda: true | |
python-version: "3.10.10" | |
- name: Install dependencies | |
run: | | |
conda install git-lfs -c conda-forge | |
git-lfs install | |
conda install gh -c conda-forge | |
python -m pip install -e .[test] | |
- name: Run pytest | |
run: | | |
pip install pytest pytest-benchmark pytest-asyncio rdkit-pypi nox rich fuzzywuzzy scipy pyairtable | |
pytest | |
run-cli-test-single: | |
needs: run-pytest | |
runs-on: ubuntu-22.04 | |
defaults: | |
run: | |
shell: bash -el {0} | |
steps: | |
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # pin@v3.5.3 | |
- uses: conda-incubator/setup-miniconda@v3 | |
with: | |
auto-update-conda: true | |
python-version: "3.10.10" | |
- name: Install dependencies | |
run: | | |
conda install git-lfs -c conda-forge | |
git-lfs install | |
conda install gh -c conda-forge | |
python -m pip install -e .[test] | |
- name: Run CLI Test Default | |
run: | | |
nox -f test/playground/noxfile.py -s execute -p 3.10 -- --cli delete fetch --fetch from_github | |
nox -f test/playground/noxfile.py -s execute -p 3.10 -- --cli delete fetch --fetch from_dockerhub | |
nox -f test/playground/noxfile.py -s clean | |
nox -f test/playground/noxfile.py -s execute -p 3.10 -- --cli delete fetch --fetch from_s3 | |
nox -f test/playground/noxfile.py -s execute -p 3.10 -- --cli serve run catalog example | |
nox -f test/playground/noxfile.py -s execute -p 3.10 -- --cli close | |
nox -f test/playground/noxfile.py -s clean | |
nox -f test/playground/noxfile.py -s execute -p 3.10 -- --cli delete test | |
run-cli-test-multiple: | |
needs: run-pytest | |
defaults: | |
run: | |
shell: bash -el {0} | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # pin@v3.5.3 | |
- uses: conda-incubator/setup-miniconda@v3 | |
with: | |
auto-update-conda: true | |
python-version: "3.10.10" | |
- name: Install dependencies | |
run: | | |
conda install git-lfs -c conda-forge | |
git-lfs install | |
conda install gh -c conda-forge | |
python -m pip install -e .[test] | |
- name: Run CLI Test Multiple | |
run: | | |
nox -f test/playground/noxfile.py -s execute -p 3.10 -- --cli fetch serve --fetch from_dockerhub --runner multiple | |
test-colab-notebook: | |
defaults: | |
run: | |
shell: bash -el {0} | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # pin@v3.5.3 | |
- uses: conda-incubator/setup-miniconda@v3 | |
with: | |
auto-update-conda: true | |
python-version: "3.10.10" | |
- name: Install dependencies | |
run: | | |
conda install google-colab -c conda-forge | |
pip install --upgrade nbconvert nbformat jsonschema pandas jupyter | |
jupyter --version | |
- name: Test Google Colab Notebook with CLI shell commands | |
run: | | |
jupyter nbconvert --to notebook --execute notebooks/test-colab-notebook-cli.ipynb --output=output-cli.ipynb --ExecutePreprocessor.timeout=-1 | |
- name: Test Google Colab Notebook with Python API commands | |
run: | | |
echo "Skipping Python API notebook due to unresolved issue" | |
#jupyter nbconvert --to notebook --execute notebooks/test-colab-notebook-python-api.ipynb --output=output-python-api.ipynb --ExecutePreprocessor.timeout=-1 | |
- name: Upload Output of the Google Colab Notebook CLI | |
uses: actions/upload-artifact@6f51ac03b9356f520e9adb1b1b7802705f340c2b # pin@v4.5.0 | |
with: | |
name: output-cli.ipynb | |
path: notebooks/output-cli.ipynb | |
retention-days: 7 | |
update-model-request_template: | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@v4.2.2 | |
- name: Path Filter | |
id: filter | |
uses: dorny/paths-filter@v3 | |
with: | |
filters: | | |
tag-file: | |
- 'ersilia/hub/content/metadata/tag.txt' | |
- name: Set up Python | |
if: steps.filter.outputs.tag-file == 'true' | |
uses: actions/setup-python@v5 | |
with: | |
python-version: "3.10" | |
- name: Install dependencies | |
if: steps.filter.outputs.tag-file == 'true' | |
run: | | |
python -m pip install --upgrade pip | |
pip install pyyaml | |
- name: Run update_model_request_template.py | |
if: steps.filter.outputs.tag-file == 'true' | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
run: python .github/scripts/update_model_request_template.py | |
- name: Commit and push changes | |
if: steps.filter.outputs.tag-file == 'true' | |
uses: actions-js/push@5a7cbd780d82c0c937b5977586e641b2fd94acc5 # pin@v1.5 | |
with: | |
author_name: "ersilia-bot" | |
author_email: "ersilia-bot@users.noreply.github.com" | |
message: "Update model request template [skip ci]" | |
repository: "ersilia-os/ersilia" | |
github_token: ${{ secrets.GITHUB_TOKEN }} | |
force: true | |
branch: "master" |