Skip to content

[add] preliminary support for a more flexible defpymodule #105

[add] preliminary support for a more flexible defpymodule

[add] preliminary support for a more flexible defpymodule #105

Workflow file for this run

on: [push, pull_request]
jobs:
test:
name: ${{ matrix.lisp }}, ${{ matrix.os }}
strategy:
matrix:
lisp: [sbcl]
os: [macos-13, macos-14]
runs-on: ${{ matrix.os }}
timeout-minutes: 3
continue-on-error: true
steps:
- uses: actions/checkout@v2
- name: Update $PATH
run: |
echo $PATH
echo "PATH=$HOME/bin:$PATH" >> $GITHUB_ENV
- name: Check $PATH
run: echo $PATH
- name: Download implementation
env:
LISP: ${{ matrix.lisp }}
OS: ${{ matrix.os }}
run: |
pwd
ls -l
bash <(curl -s https://raw.githubusercontent.com/digikar99/lisp-travis-lite/master/run.sh)
- name: Test without numpy
run: |
ls
cl --eval '(push #P"./" ql:*local-project-directories*)' --eval '(ql:quickload "py4cl2-cffi")' --eval '(print cl:*features*)' --eval '(assert (= 5 (py4cl2-cffi:pyeval 5)))' --eval '(print py4cl2-cffi:*internal-features*)'
# We avoid caching the apt and python modules; need to deal with recursive dependencies
- name: Install python modules
run: |
brew install [email protected]
python -m ensurepip --upgrade
python3 -m venv ./py4cl2-cffi/
source ./py4cl2-cffi/bin/activate
pip3 install numpy
pip3 install networkx
pip3 install matplotlib
- name: Run python-config
run: |
source ./py4cl2-cffi/bin/activate
python3 --version
python3-config --libs
python3-config --includes
python3-config --ldflags
find '/usr/lib' -name "libpython*.so"
- name: Download download-dependencies
run: |
git clone https://github.com/digikar99/download-dependencies $HOME/quicklisp/local-projects/download-dependencies
- name: Download Tests
run: |
git clone https://github.com/digikar99/py4cl2-cffi-tests ./tests
pwd
ls -l
- name: Download Test Dependencies
run: >
cl --eval '(ql:quickload "download-dependencies")' \
--eval '(in-package :download-dependencies)' \
--eval '(push #P"./" ql:*local-project-directories*)' \
--eval '(let ((*dependencies-home* (first ql:*local-project-directories*))) (ensure-system "py4cl2-cffi-tests"))'
- name: Test numpy
run: |
source ./py4cl2-cffi/bin/activate
python3 -c 'import numpy; print(numpy.__version__, numpy.__path__[0])'
- name: Compile Tests
run: |
source ./py4cl2-cffi/bin/activate
cl --load "$HOME/work/py4cl2-cffi/py4cl2-cffi/ci-pre-test.lisp"
# Testing it on the second load confirms that functionalities do not
# solely eval-when compile-toplevel, and that they persist across multiple loads.
- name: Run Tests
run: |
source ./py4cl2-cffi/bin/activate
cl --load "$HOME/work/py4cl2-cffi/py4cl2-cffi/ci-test.lisp" || cl --load "$HOME/work/py4cl2-cffi/py4cl2-cffi/ci-test.lisp"