diff --git a/.github/workflows/doc.yml b/.github/workflows/doc.yml index fc3ab657d22dbcba00c5d98580c299e16c6d516d..7e1fb805e7919de4504a9ce09761b593d8f17ff8 100644 --- a/.github/workflows/doc.yml +++ b/.github/workflows/doc.yml @@ -5,9 +5,9 @@ name: Docs Deploy on: push: - branches: [ main, 'doc/*', 'dev/*' ] + branches: [ main, 'doc/*', 'dev/*', 'test/*' ] pull_request: - branches: [ main, 'doc/*', 'dev/*' ] + branches: [ main, 'doc/*', 'dev/*', 'test/*' ] release: types: [ published ] diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 1cb9facbfc2a46712b2e0108ccbfbd6c8d5e3770..58d445e8c1e3cd90b1ea68379a297cb31bf91ac8 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -1,7 +1,10 @@ name: Code Test on: - - push + push: + branches: [ main, 'dev/*', 'test/*', 'fix/*' ] + pull_request: + branches: [ main, 'dev/*', 'test/*', 'fix/*' ] jobs: unittest: @@ -12,26 +15,20 @@ jobs: matrix: os: - 'ubuntu-18.04' + - 'windows-2019' # need to be fixed, see: https://github.com/opendilab/treevalue/issues/41 + - 'macos-10.15' python-version: - - '3.6' - '3.7' - '3.8' - '3.9' numpy-version: - '1.18.0' - - '1.20.0' - '1.22.0' torch-version: - '1.2.0' - - '1.4.0' - '1.6.0' - - '1.8.0' - '1.10.0' exclude: - - python-version: '3.6' - numpy-version: '1.20.0' - - python-version: '3.6' - numpy-version: '1.22.0' - python-version: '3.7' numpy-version: '1.22.0' - python-version: '3.8' @@ -39,51 +36,86 @@ jobs: - python-version: '3.9' torch-version: '1.2.0' - python-version: '3.9' - torch-version: '1.4.0' - - python-version: '3.9' torch-version: '1.6.0' + - os: 'windows-2019' + torch-version: '1.2.0' + - os: 'windows-2019' + torch-version: '1.6.0' + - os: 'windows-2019' + python-version: '3.9' + numpy-version: '1.18.0' steps: + - name: Get system version for Linux + if: ${{ runner.os == 'Linux' }} + shell: bash + run: | + echo "OS_NAME=Linux" >> $GITHUB_ENV + echo "IS_WIN=" >> $GITHUB_ENV + echo "IS_MAC=" >> $GITHUB_ENV + - name: Get system version for Windows + if: ${{ runner.os == 'Windows' }} + shell: bash + run: | + echo "OS_NAME=Windows" >> $GITHUB_ENV + echo "IS_WIN=1" >> $GITHUB_ENV + echo "IS_MAC=" >> $GITHUB_ENV + - name: Get system version for MacOS + if: ${{ runner.os == 'macOS' }} + shell: bash + run: | + echo "OS_NAME=MacOS" >> $GITHUB_ENV + echo "IS_WIN=" >> $GITHUB_ENV + echo "IS_MAC=1" >> $GITHUB_ENV - name: Checkout code uses: actions/checkout@v2 with: fetch-depth: 20 - name: Set up system dependences on linux if: ${{ runner.os == 'Linux' }} + shell: bash run: | sudo apt-get update sudo apt-get install -y tree cloc wget curl make graphviz - sudo apt-get install -y libxml2-dev libxslt-dev python-dev # need by pypy3 + dot -V + - name: Set up system dependences on Windows + if: ${{ env.OS_NAME == 'Windows' }} + shell: bash + run: | + choco install tree cloc wget curl make zip graphviz + dot -V + - name: Set up system dependences on MacOS + if: ${{ env.OS_NAME == 'MacOS' }} + shell: bash + run: | + brew install tree cloc wget curl make zip graphviz dot -V - name: Set up python ${{ matrix.python-version }} uses: actions/setup-python@v2 with: python-version: ${{ matrix.python-version }} - name: Install basic dependencies + shell: bash run: | python -m pip install --upgrade pip pip install --upgrade flake8 setuptools wheel twine - - name: Install latest numpy - if: ${{ matrix.numpy-version == 'latest' }} - run: | - pip install 'numpy' - name: Install numpy v${{ matrix.numpy-version }} if: ${{ matrix.numpy-version != 'latest' }} + shell: bash run: | pip install 'numpy==${{ matrix.numpy-version }}' - - name: Install latest pytorch - if: ${{ matrix.torch-version == 'latest' }} - run: | - pip install 'torch' - name: Install pytorch v${{ matrix.torch-version }} if: ${{ matrix.torch-version != 'latest' }} + shell: bash run: | pip install 'torch==${{ matrix.torch-version }}' - name: Install dependencies + shell: bash run: | pip install -r requirements.txt pip install -r requirements-test.txt - name: Test the basic environment + shell: bash run: | python -V pip --version @@ -94,6 +126,7 @@ jobs: - name: Run unittest env: CI: 'true' + shell: bash run: | make unittest - name: Upload coverage to Codecov diff --git a/requirements.txt b/requirements.txt index 83b21a3717744b31ed96e5f60a4138d8a00c3730..753e304d6e693c5642801ce9ddfd0bb0c30a91f8 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,4 @@ treevalue>=1.4.1 torch>=1.1.0,<=1.12.1 -hbutils>=0.0.1 +hbutils>=0.6.13 numpy diff --git a/setup.py b/setup.py index 2dc332d79166d73e96e8b33123ed36a43f585679..30f589de4633a807812e9ab12d0fe91093f5240e 100644 --- a/setup.py +++ b/setup.py @@ -46,7 +46,7 @@ setup( url='https://github.com/opendilab/DI-treetensor', # environment - python_requires=">=3.6", + python_requires=">=3.7", install_requires=requirements, tests_require=group_requirements['test'], extras_require=group_requirements, @@ -56,7 +56,6 @@ setup( 'License :: OSI Approved :: Apache Software License', 'Programming Language :: Python', 'Programming Language :: Python :: 3', - 'Programming Language :: Python :: 3.6', 'Programming Language :: Python :: 3.7', 'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: 3.9', diff --git a/test/numpy/test_array.py b/test/numpy/test_array.py index 6a940d0edcfcbac2da939d997521f09df88e10c0..45a3ba8e42965c8896843d37f654e390026a0ff6 100644 --- a/test/numpy/test_array.py +++ b/test/numpy/test_array.py @@ -1,6 +1,9 @@ +import unittest + import numpy as np import pytest import torch +from hbutils.testing import OS import treetensor.numpy as tnp import treetensor.torch as ttorch @@ -52,7 +55,14 @@ class TestNumpyArray: assert self._DEMO_2.size == 15 assert self._DEMO_3.size == 15 - def test_nbytes(self): + @unittest.skipUnless(OS.windows, 'Windows only') + def test_nbytes_on_windows(self): + assert self._DEMO_1.nbytes == 72 + assert self._DEMO_2.nbytes == 72 + assert self._DEMO_3.nbytes == 72 + + @unittest.skipUnless(OS.linux or OS.macos, 'Linux or macos only') + def test_nbytes_on_linux_or_macos(self): assert self._DEMO_1.nbytes == 120 assert self._DEMO_2.nbytes == 120 assert self._DEMO_3.nbytes == 120