Skip to content

[NOMERGE] Test macOS CI workflow without Roswell #9

[NOMERGE] Test macOS CI workflow without Roswell

[NOMERGE] Test macOS CI workflow without Roswell #9

name: macOS without Roswell
on:
push:
branches: [ "main" ]
paths-ignore:
- 'README.org'
pull_request:
branches: [ "main" ]
workflow_dispatch:
schedule:
- cron: '0 0 1 * *'
jobs:
test:
name: ${{ matrix.lisp }} (${{ matrix.cffi }}) / ${{ matrix.quicklisp-dist }} on ${{ matrix.os }} with duckdb ${{ matrix.duckdb }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
ecl: [23.9.9]
os: [macos-latest]
quicklisp-dist:
- ultralisp
duckdb: [0.8.1, 0.8.0, 0.7.1]
cffi: [default, static]
env:
DUCKDB_VERSION: ${{ matrix.duckdb }}
QUICKLISP_DIST: ${{ matrix.quicklisp-dist }}
steps:
- uses: actions/checkout@v3
- name: dostuff (macOS)
if: runner.os == 'macOS'
shell: bash
run: |
aria2c "https://github.com/duckdb/duckdb/releases/download/v${DUCKDB_VERSION}/libduckdb-osx-universal.zip"
7z x libduckdb-osx-universal.zip
git clone --depth 1 --branch ${{ matrix.ecl }} https://gitlab.com/embeddable-common-lisp/ecl.git
cd ecl
./configure CC=clang LD=ld.lld --enable-threads --with-defsystem --enable-boehm=included && make -j2 && make install
cd ../
wget https://beta.quicklisp.org/quicklisp.lisp
ecl --load quicklisp.lisp --eval '(progn (quicklisp-quickstart:install) (quit))'
export DYLD_LIBRARY_PATH=./
export LD_LIBRARY_PATH=./
if [ ${{ matrix.cffi }} = 'static' ]; then export CL_DUCKDB_USE_SFFI=t; fi
export CL_DUCKDB_LIBRARY_PATH="${{ github.workspace }}"
if [ ${{ matrix.os }} = 'macos-latest' ]; then sudo cp ./libduckdb.dylib /usr/local/lib/; fi
cp -r `pwd` ~/quicklisp/local-projects/cl-duckdb
ecl --load ~/quicklisp/setup.lisp --eval "(progn (ql-dist:install-dist \"http://dist.ultralisp.org/\" :prompt nil) (ql:quickload :duckdb/test) (uiop:quit (if (uiop:symbol-call :fiveam '#:run! :duckdb) 0 1)))"