Merge pull request #545 from WenjieDu/dev #809
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: CI | |
on: | |
push: | |
branches: | |
- main | |
- dev | |
- temp_test_branch # if in need, create such a temporary branch to test some functions | |
pull_request: | |
branches: | |
- dev | |
jobs: | |
CI-testing: | |
runs-on: ${{ matrix.os }} | |
defaults: | |
run: | |
shell: bash | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-latest, windows-latest, macOS-latest] | |
python-version: ["3.8", "3.11"] | |
pytorch-version: ["2.3.0"] | |
steps: | |
- name: Check out the repo code | |
uses: actions/checkout@v3 | |
- name: Set up Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python-version }} | |
check-latest: true | |
cache: pip | |
cache-dependency-path: | | |
requirements/requirements.txt | |
requirements/requirements_dev.txt | |
- name: Install PyTorch ${{ matrix.pytorch-version }}+cpu | |
# we have to install torch in advance because torch_sparse needs it for compilation, | |
# refer to https://github.com/rusty1s/pytorch_sparse/issues/156#issuecomment-1304869772 for details | |
run: | | |
which python | |
which pip | |
pip install torch==${{ matrix.pytorch-version }} -f https://download.pytorch.org/whl/cpu | |
python -c "import torch; print('PyTorch:', torch.__version__)" | |
- name: Install other dependencies | |
run: | | |
pip install -r requirements/requirements.txt | |
- name: Test building package | |
# we need to know if the package can be built successfully without optional dependencies | |
run: | | |
pip install build wheel | |
python -m build | |
- name: Continue to install torch-geometric dependencies | |
run: | | |
pip install torch-geometric torch-scatter torch-sparse -f "https://data.pyg.org/whl/torch-${{ matrix.pytorch-version }}+cpu.html" | |
pip install pypots[dev] | |
pip install numpy==1.24 # many libs not compatible with numpy 2.0. Note 3.12 requests for numpy>=2.0 | |
pip install pandas==1.5 # fix pandas version to avoid installing pandas 2.0, the same reason with numpy | |
python_site_path=`python -c "import site; print(site.getsitepackages()[0])"` | |
echo "python site-packages path: $python_site_path" | |
rm -rf $python_site_path/pypots | |
python -c "import shutil;import site;shutil.copytree('pypots',site.getsitepackages()[0]+'/pypots')" | |
- name: Fetch the test environment details | |
run: | | |
which python | |
pip list | |
- name: Test with pytest | |
run: | | |
rm -rf testing_results && rm -rf tests/__pycache__ && rm -rf tests/*/__pycache__ | |
python tests/global_test_config.py | |
python -m pytest -rA tests/*/* -s -n auto --cov=pypots --dist=loadgroup --cov-config=.coveragerc | |
- name: Generate the LCOV report | |
run: | | |
python -m coverage lcov | |
- name: Submit the report | |
uses: coverallsapp/github-action@master | |
continue-on-error: true | |
with: | |
github-token: ${{ secrets.GITHUB_TOKEN }} | |
path-to-lcov: "coverage.lcov" |