[ENH] move tests for dependency checks and deep_equals
to utils
module
#758
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: Test | |
on: | |
push: | |
paths-ignore: | |
- 'docs/**' | |
branches: | |
- main | |
- 'release**' | |
pull_request: | |
branches: | |
- main | |
- 'release**' | |
paths-ignore: | |
- 'docs/**' | |
types: [opened, synchronize] | |
# Allows workflows to be manually triggered | |
workflow_dispatch: | |
permissions: | |
contents: read | |
# Needed for the 'trilom/file-changes-action' action | |
pull-requests: read | |
concurrency: | |
group: ${{ github.ref }} | |
cancel-in-progress: true | |
jobs: | |
# Look into replacing this with pre-commit.ci | |
code-quality: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-python@v4 | |
- id: file_changes | |
uses: trilom/[email protected] | |
with: | |
output: " " | |
- name: List changed files | |
run: echo '${{ steps.file_changes.outputs.files}}' | |
- uses: pre-commit/[email protected] | |
with: | |
extra_args: --files ${{ steps.file_changes.outputs.files}} | |
- name: Check for missing init files | |
run: build_tools/fail_on_missing_init_files.sh | |
shell: bash | |
test-nodevdeps: | |
needs: code-quality | |
runs-on: ubuntu-20.04 | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: 3.9 | |
- name: Display Python version | |
run: python -c "import sys; print(sys.version)" | |
- name: Install skbase and dependencies | |
run: | | |
python -m pip install . | |
- name: Run pytest-free tests | |
run: | | |
python skbase/_nopytest_tests.py | |
test-windows: | |
needs: code-quality | |
runs-on: windows-2019 | |
strategy: | |
fail-fast: false # to not fail all combinations if just one fail | |
matrix: | |
python-version: ['3.8', '3.9', '3.10', '3.11'] | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: conda-incubator/setup-miniconda@v2 | |
with: | |
auto-update-conda: true | |
python-version: ${{ matrix.python-version }} | |
channels: anaconda, conda-forge, | |
- run: conda --version | |
- run: which python | |
- name: Fix windows paths | |
if: ${{ runner.os == 'Windows' }} | |
run: echo "C:\Program Files (x86)\Windows Kits\10\bin\10.0.18362.0\x64" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append | |
- name: Install conda libpython | |
run: conda install -c anaconda libpython | |
- name: Install sktime and dependencies | |
run: python -m pip install .[test] | |
- name: Show dependencies | |
run: python -m pip list | |
- name: Run tests | |
run: | | |
mkdir -p testdir/ | |
cp setup.cfg testdir/ | |
python -m pytest | |
- name: Publish code coverage | |
uses: codecov/codecov-action@v3 | |
test-unix: | |
needs: code-quality | |
name: Test ${{ matrix.os }}-${{ matrix.python-version }} | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-latest, macOS-latest] | |
python-version: ['3.8', '3.9', '3.10', '3.11'] | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: conda-incubator/setup-miniconda@v2 | |
name: Set up conda | |
with: | |
# We want to come back and add a previous step (maybe our own github action) | |
# that will generate the test_env.yml file based on pyproject.toml | |
# Doing it this way is easier and lets us easily use conda to install everything | |
# But just have packages listed in pyproject.toml | |
# activate-environment: test_env | |
# environment-file: build_tools/test_env.yml | |
auto-update-conda: true | |
miniconda-version: "latest" | |
python-version: ${{ matrix.python-version }} | |
channels: anaconda, conda-forge | |
channel-priority: true | |
auto-activate-base: false | |
activate-environment: test | |
use-only-tar-bz2: true | |
# Useful for troubleshooting | |
- name: Check Conda Setup | |
shell: bash -l {0} | |
run: | | |
conda --version | |
conda info --envs | |
which python | |
which pip | |
# We want to replace this with the earlier step that | |
# auto generates a environment.yml (named based on pyproject.toml dep table name) | |
# that is installed by conda | |
# The downside of doing it this way is that pip will be greedy | |
# It could cause some dependencies all ready installed by conda to be | |
# installed in different verisons that break the installation | |
# in BaseObject this likelihood is not high, but creating this functionality | |
# will be a nice value add (and has uses outside of .github actions) | |
- name: Install dependencies | |
shell: bash -l {0} | |
run: | | |
python -VV | |
python -m pip install .[test] | |
# Commented out for now. Turn on once dependencies are shrunk. | |
# - name: Run Safety security check | |
# shell: bash -l {0} | |
# This will scan the installed python environment for all installed dependencies | |
# including transitive dependencies. Checks for dependencies with known CVEs | |
# Ignoring CVEs disputed by NumPy devs with IDs 44715, 44716, 44717 | |
# run: safety check --full-report -i 44715 -i 44716 -i 44717 | |
# Do not continue on error. Fail the action if safety returns a | |
# non-zero exit code indicating a vulnerability has been found | |
# continue-on-error: false | |
- name: Run tests | |
shell: bash -l {0} | |
run: | | |
python -m pytest | |
- name: Upload coverage to Codecov | |
uses: codecov/codecov-action@v3 |