Skip to content

Fix csv serialization if input result is neither a dict nor a single … #981

Fix csv serialization if input result is neither a dict nor a single …

Fix csv serialization if input result is neither a dict nor a single … #981

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 # [email protected]
- 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 # [email protected]
- 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-default-cli-test:
needs: run-pytest
runs-on: ubuntu-22.04
defaults:
run:
shell: bash -el {0}
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # [email protected]
- 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 Default Default
run: |
nox -f test/playground/noxfile.py -s execute -p 3.12
generate-nox-parl-jobs:
needs: run-pytest
outputs:
session: ${{ steps.set-matrix.outputs.session }}
defaults:
run:
shell: bash -el {0}
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # [email protected]
- 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]
- id: set-matrix
run: echo "session=$(nox -f test/playground/noxfile.py --json -l | jq -c '[.[].session]')" | tee --append $GITHUB_OUTPUT
run-cli-test-parallel:
name: Session ${{ matrix.session }} on ${{ matrix.os }} - Fetch ${{ matrix.fetch_source }}
needs: generate-nox-parl-jobs
defaults:
run:
shell: bash -el {0}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-22.04, macos-latest]
session: ${{ fromJson(needs.generate-nox-parl-jobs.outputs.session) }}
fetch_source: ["from_github", "from_s3", "from_dockerhub"]
exclude:
- os: macos-latest
fetch_source: from_dockerhub
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # [email protected]
- 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]
- run: |
nox -f test/playground/noxfile.py -s "${{ matrix.session }}" -- --cli fetch serve run --fetch ${{ matrix.fetch_source }} --host gh
run-cli-test-multiple:
needs: run-pytest
defaults:
run:
shell: bash -el {0}
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # [email protected]
- 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.12 -- --cli 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 # [email protected]
- 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@65c4c4a1ddee5b72f698fdd19549f0f0fb45cf08 # [email protected]
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/[email protected]
- 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 # [email protected]
with:
author_name: "ersilia-bot"
author_email: "[email protected]"
message: "Update model request template [skip ci]"
repository: "ersilia-os/ersilia"
github_token: ${{ secrets.GITHUB_TOKEN }}
force: true
branch: "master"