Skip to content

ARM

ARM #159

Workflow file for this run

name: ARM
on:
push:
branches: [ "main" ]
paths-ignore:
- 'README.org'
pull_request:
branches: [ "main" ]
workflow_dispatch:
schedule:
- cron: '0 0 1 * *'
jobs:
test:
name: ECL (${{ matrix.cffi }}) with duckdb ${{ matrix.duckdb }} on ARM
runs-on: ubuntu-latest
strategy:
matrix:
ecl: [23.9.9]
cffi: [static]
duckdb: [0.9.1]
env:
DUCKDB_VERSION: ${{ matrix.duckdb }}
steps:
- uses: actions/checkout@v3
- name: Install dependencies & run tests
uses: pguyot/arm-runner-action@v2
with:
cpu: cortex-a53
base_image: raspios_lite_arm64:latest
image_additional_mb: 2048
commands: |
apt-get --yes install git build-essential aria2 unzip clang m4 libgc-dev libffi-dev lld
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 && make -j2 && make install
cd ../
wget https://beta.quicklisp.org/quicklisp.lisp
ecl --load quicklisp.lisp --eval '(progn (quicklisp-quickstart:install) (quit))'
aria2c "https://github.com/duckdb/duckdb/releases/download/v${DUCKDB_VERSION}/libduckdb-linux-aarch64.zip"
unzip libduckdb-linux-aarch64.zip -d /usr/lib/
mkdir ~/quicklisp/local-projects/cl-duckdb
cp -r `pwd` ~/quicklisp/local-projects/cl-duckdb
if [ ${{ matrix.cffi }} = 'static' ]; then export CL_DUCKDB_USE_SFFI=t; fi
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)))"