-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
548a185
commit df2d1c5
Showing
1 changed file
with
17 additions
and
84 deletions.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,91 +1,24 @@ | ||
# Installs the Python dependencies, installs MyoFInDer, and checks that it works as expected | ||
name: Test Python Package | ||
|
||
on: | ||
# Runs on pull requests targeting the default branch | ||
pull_request: | ||
types: [opened, edited, reopened, synchronize] | ||
branches: ["main"] | ||
|
||
# May also be started manually | ||
workflow_dispatch: | ||
|
||
# Runs automatically every first day of the month | ||
schedule: | ||
- cron: '0 12 1 * *' | ||
|
||
jobs: | ||
test-python-package: | ||
runs-on: ${{ matrix.os }} | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
# Run on all the supported Python versions | ||
python-version: ["3.7", "3.8", "3.9", "3.10"] | ||
# Run on all the supported platforms | ||
os: [ubuntu-latest, windows-latest, macos-13] | ||
|
||
minimal: | ||
runs-on: macos-13 | ||
steps: | ||
# Checkout the repository | ||
- name: Checkout | ||
uses: actions/checkout@v4 | ||
# Set up the correct version of Python | ||
- name: Set up Python ${{ matrix.python-version }} on ${{ matrix.os }} | ||
uses: actions/setup-python@v5 | ||
with: | ||
python-version: ${{ matrix.python-version }} | ||
# Install the build dependencies | ||
- name: Install Dependencies | ||
run: python -m pip install --upgrade pip wheel build setuptools | ||
# Install the MyoFInDer Python module | ||
- name: Install MyoFInDer | ||
run: python -m pip install . | ||
# On Windows, MyoFInDer can run even though there is no graphical environment | ||
# Running the unit tests to check that everything's working as expected | ||
- name: Test MyoFInDer (Windows) | ||
if: runner.os == 'Windows' | ||
run: python -m unittest -v tests | ||
# On Linux, the Xvfb virtual X server can be used | ||
# Therefore, it is possible to run the automated test suite | ||
- name: Import MyoFInDer (Linux) | ||
if: runner.os == 'Linux' | ||
run: | | ||
export DISPLAY=:99 | ||
Xvfb :99 -screen 0 1920x1080x24 & python -m unittest -v tests | ||
# On macOS, it is not possible to set up a virtual graphical environment | ||
# Therefore, no automated tests can be run on macOS | ||
# Also, tkinter needs to be separately configured, but python-tk is only available for Python 3.9 and 3.10 | ||
- name: Workaround (macOS <3.9) | ||
if: | | ||
runner.os == 'macOS' && | ||
contains(fromJSON('["3.7", "3.8"]'), matrix.python-version) | ||
run: | | ||
brew install tcl-tk | ||
version=$(brew info tcl-tk --json | jq -r '.[].installed[].version') | ||
echo $version | ||
ln -s /usr/local/Cellar/tcl-tk/$version/lib/libtcl8.6.dylib /usr/local/lib/libtcl8.6.dylib | ||
ln -s /usr/local/Cellar/tcl-tk/$version/lib/libtk8.6.dylib /usr/local/lib/libtk8.6.dylib | ||
- name: Import MyoFInDer (macOS <3.9) | ||
if: | | ||
runner.os == 'macOS' && | ||
contains(fromJSON('["3.7", "3.8"]'), matrix.python-version) | ||
run: | | ||
brew install [email protected] | ||
python -c "import myofinder;print(myofinder.__version__)" | ||
- name: Workaround (macOS 3.9+) | ||
if: | | ||
runner.os == 'macOS' && | ||
contains(fromJSON('["3.9", "3.10"]'), matrix.python-version) | ||
run: | | ||
brew install tcl-tk | ||
version=$(brew info tcl-tk --json | jq -r '.[].installed[].version') | ||
echo $version | ||
ln -s /usr/local/Cellar/tcl-tk/$version/lib/libtcl8.6.dylib /usr/local/lib/libtcl8.6.dylib | ||
ln -s /usr/local/Cellar/tcl-tk/$version/lib/libtk8.6.dylib /usr/local/lib/libtk8.6.dylib | ||
- name: Import MyoFInDer (macOS 3.9+) | ||
if: | | ||
runner.os == 'macOS' && | ||
contains(fromJSON('["3.9", "3.10"]'), matrix.python-version) | ||
run: | | ||
brew install python-tk@${{ matrix.python-version }} | ||
python -c "import myofinder;print(myofinder.__version__)" | ||
- name: Install Python | ||
uses: actions/setup-python@v5 | ||
with: | ||
python-version: "3.10" | ||
- name: Install tcl/tk | ||
run: brew install tcl-tk | ||
- name: Symlink tcl/tk | ||
run: | | ||
version=$(brew info tcl-tk --json | jq -r '.[].installed[].version') | ||
ln -s /usr/local/Cellar/tcl-tk/$version/lib/libtcl8.6.dylib /usr/local/lib/libtcl8.6.dylib | ||
ln -s /usr/local/Cellar/tcl-tk/$version/lib/libtk8.6.dylib /usr/local/lib/libtk8.6.dylib | ||
- name: Install python-tk | ||
run: brew install python-tk@$3.10 | ||
- name: import tkinter | ||
run: python -c "import tkinter" |