name: Test on: - push - pull_request jobs: test_linux: name: Test (Linux) runs-on: ubuntu-latest env: OS: Linux strategy: matrix: include: - python-version: 3.5 python-release: v3.5 python-impl: CPython - python-version: 3.6 python-release: v3.6 python-impl: CPython - python-version: 3.7 python-release: v3.7 python-impl: CPython - python-version: 3.8 python-release: v3.8 python-impl: CPython - python-version: 3.9 python-release: v3.9 python-impl: CPython - python-version: pypy-3.6 python-release: v3.6 python-impl: PyPy - python-version: pypy-3.7 python-release: v3.7 python-impl: PyPy steps: - name: Checkout code uses: actions/checkout@v2 with: submodules: true - name: Cache Python requirements uses: actions/cache@v2 with: path: ~/.cache/pip key: ${{ runner.os }}-pip-${{ matrix.python-version }} restore-keys: ${{ runner.os }}-pip-${{ matrix.python-version }} - name: Cache built C files uses: actions/cache@v2 with: path: build key: ${{ runner.os }}-build-${{ matrix.python-version }} restore-keys: ${{ runner.os }}-build-${{ matrix.python-version }} - name: Setup Python ${{ matrix.python-version }} uses: actions/setup-python@v2 with: python-version: ${{ matrix.python-version }} - name: Update pip run: python -m pip install -U pip wheel setuptools - name: Install Python requirements run: python -m pip install -r .github/workflows/requirements.txt - name: "Install Boost::math" run: sudo apt-get install -y libboost-math-dev - name: Build C extension run: python setup.py build_ext --inplace --debug - name: Install numpy run: python -m pip install numpy - name: Install tests requirements run: python -m pip install -r pyfastani/tests/requirements.txt - name: Test with coverage run: python -m coverage run -m unittest discover -vv - name: Upload to Codecov uses: codecov/codecov-action@v1 with: flags: ${{ matrix.python-impl }},${{ matrix.python-release }},${{ env.OS }} name: test-python-${{ matrix.python-version }} fail_ci_if_error: true token: ${{ secrets.CODECOV_TOKEN }} test_osx: name: Test (OSX) runs-on: macos-latest env: OS: OSX strategy: matrix: include: - python-version: 3.5 python-release: v3.5 python-impl: CPython - python-version: 3.6 python-release: v3.6 python-impl: CPython - python-version: 3.7 python-release: v3.7 python-impl: CPython - python-version: 3.8 python-release: v3.8 python-impl: CPython - python-version: 3.9 python-release: v3.9 python-impl: CPython - python-version: pypy-3.6 python-release: v3.6 python-impl: PyPy - python-version: pypy-3.7 python-release: v3.7 python-impl: PyPy steps: - name: Checkout code uses: actions/checkout@v2 with: submodules: true - name: Cache Python requirements uses: actions/cache@v2 with: path: ~/.cache/pip key: ${{ runner.os }}-pip-${{ matrix.python-version }} restore-keys: ${{ runner.os }}-pip-${{ matrix.python-version }} - name: Cache built C files uses: actions/cache@v2 with: path: build key: ${{ runner.os }}-build-${{ matrix.python-version }} restore-keys: ${{ runner.os }}-build-${{ matrix.python-version }} - name: Setup Python ${{ matrix.python-version }} uses: actions/setup-python@v2 with: python-version: ${{ matrix.python-version }} - name: Update pip run: python -m pip install -U pip wheel setuptools - name: Install Python requirements run: python -m pip install -r .github/workflows/requirements.txt - name: "Install Boost::math" run: brew install boost - name: Build C extension run: python setup.py build_ext --inplace --debug - name: Install numpy run: python -m pip install numpy - name: Install tests requirements run: python -m pip install -r pyfastani/tests/requirements.txt - name: Test with coverage run: python -m coverage run -m unittest discover -vv - uses: codecov/codecov-action@v1 with: flags: ${{ matrix.python-impl }},${{ matrix.python-release }},${{ env.OS }} name: test-python-${{ matrix.python-version }} fail_ci_if_error: true token: ${{ secrets.CODECOV_TOKEN }} # test_windows: # name: Test (Windows) # runs-on: windows-latest # env: # OS: Windows # strategy: # matrix: # include: # - python-version: 3.5 # python-release: v3.5 # python-impl: CPython # - python-version: 3.6 # python-release: v3.6 # python-impl: CPython # - python-version: 3.7 # python-release: v3.7 # python-impl: CPython # - python-version: 3.8 # python-release: v3.8 # python-impl: CPython # - python-version: 3.9 # python-release: v3.9 # python-impl: CPython # - python-version: pypy-3.6 # python-release: v3.6 # python-impl: PyPy # - python-version: pypy-3.7 # python-release: v3.7 # python-impl: PyPy # steps: # - name: Checkout code # uses: actions/checkout@v2 # with: # submodules: true # - name: Cache built C files # uses: actions/cache@v2 # with: # path: build # key: ${{ runner.os }}-build-${{ matrix.python-version }} # restore-keys: ${{ runner.os }}-build-${{ matrix.python-version }} # - name: Setup Python ${{ matrix.python-version }} # uses: actions/setup-python@v2 # with: # python-version: ${{ matrix.python-version }} # architecture: x64 # - name: Update pip # run: python -m pip install -U pip wheel setuptools # - name: Install Python requirements # run: python -m pip install -r .github/workflows/requirements.txt # - name: Build C extension # run: python setup.py build_ext --inplace # - name: Install tests requirements # run: python -m pip install -r pyfastani/tests/requirements.txt # - name: Test with coverage # run: python -m coverage run -m unittest discover -vv # - name: Upload to Codecov # uses: codecov/codecov-action@v1 # with: # flags: ${{ matrix.python-impl }},${{ matrix.python-release }},${{ env.OS }} # name: test-python-${{ matrix.python-version }} # fail_ci_if_error: true # token: ${{ secrets.CODECOV_TOKEN }}