Pytest CLI test using partial mocking #504
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: 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 | |
steps: | |
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # [email protected] | |
- name: Add conda to system path | |
run: echo $CONDA/bin >> $GITHUB_PATH | |
- name: Source conda | |
run: source $CONDA/etc/profile.d/conda.sh | |
- name: Set Python to 3.10.10 | |
run: conda install -y python=3.10.10 | |
- name: Install dependencies | |
run: | | |
source activate | |
conda init | |
conda install git-lfs -c conda-forge | |
git-lfs install | |
conda install gh -c conda-forge | |
- name: Install ersilia | |
run: | | |
source activate | |
python --version | |
echo "After conda init" | |
conda init | |
python -m pip install -e .[test] | |
- name: Run pytest | |
run: | | |
source activate | |
pip install pytest pytest-benchmark pytest-asyncio rdkit-pypi | |
pytest | |
test-colab-notebook: | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # [email protected] | |
- name: Add conda to system path | |
run: echo $CONDA/bin >> $GITHUB_PATH | |
- name: Source conda | |
run: source $CONDA/etc/profile.d/conda.sh | |
- name: Set Python to 3.10.10 | |
run: conda install -y python=3.10.10 | |
- name: Install dependencies | |
run: | | |
source activate | |
conda init | |
conda install google-colab -c conda-forge | |
jupyter --version | |
pip install --upgrade nbconvert nbformat jsonschema pandas | |
- 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@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # [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" |