-
Notifications
You must be signed in to change notification settings - Fork 11
174 lines (173 loc) · 5.76 KB
/
tests_on_push.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
name: UnitTests
on:
push:
branches:
- main
pull_request:
branches:
- main
- develop
jobs:
UnitTest:
name: (${{ matrix.backend }}) Unittests on (${{ matrix.lisp }})
runs-on: ${{ matrix.os }}
timeout-minutes: 20
strategy:
fail-fast: false
matrix:
lisp: [sbcl-bin]
backend: [lisp, clang, native]
os: [ubuntu-latest]
target:
- normal
steps:
- uses: actions/checkout@v1
- name: Set up ${{ matrix.lisp }} via Roswell.
env:
LISP: sbcl-bin
run: |
curl -L https://raw.githubusercontent.com/roswell/roswell/master/scripts/install-for-ci.sh | sh
ros install ${{ matrix.lisp }}
ros use ${{ matrix.lisp }}
ros install rove qlot
- name: Set up Python 3.12
uses: actions/setup-python@v5
with:
python-version: 3.12
- name: Installing libisl-dev
run: |
sudo apt-get install -y libisl-dev
- name: pkg-config isl --modversion
run: |
pkg-config isl --modversion
- name: Update $PATH
run: |
echo $PATH
export PATH=/home/runner/.roswell/bin:$PATH
echo "PATH=$HOME/bin:$PATH" >> $GITHUB_ENV
- name: Installing Extra Dependency for testing
run: make install_extra
- name: Check $PATH
run: echo $PATH
- name: (Lisp) rove caten.asd
if: ${{ matrix.backend == 'lisp' }}
run: |
ros config set dynamic-space-size 8gb
ros -e '(ql:register-local-projects)' -q
CI=1 BACKEND=LISP OPTIMIZE=1 rove caten.asd
- name: (Clang) rove caten.asd
if: ${{ matrix.backend == 'clang' && matrix.lisp != 'ccl-bin/1.12.2' }}
run: |
ulimit -n 8192
ros config set dynamic-space-size 8gb
ros -e '(ql:register-local-projects)' -q
CI=1 BACKEND=CLANG OPTIMIZE=1 rove caten.asd
- name: (Native JIT) rove caten.asd
if: ${{ matrix.backend == 'native' }}
run: |
ros config set dynamic-space-size 8gb
ros -e '(ql:register-local-projects)' -q
CI=1 BACKEND=NATIVE OPTIMIZE=1 rove caten.asd
UnitTest_Metal:
name: (${{ matrix.backend }}) Unittests on (${{ matrix.lisp }})
runs-on: ${{ matrix.os }}
timeout-minutes: 20
strategy:
fail-fast: false
matrix:
lisp: [sbcl-bin]
backend: [metal]
os: [macos-14]
steps:
- uses: actions/checkout@v1
- name: Set up ${{ matrix.lisp }} via Roswell.
env:
LISP: sbcl-bin
run: |
curl -L https://raw.githubusercontent.com/roswell/roswell/master/scripts/install-for-ci.sh | sh
ros install ${{ matrix.lisp }}
ros use ${{ matrix.lisp }}
ros install rove qlot
- name: Set up Python 3.12
uses: actions/setup-python@v5
with:
python-version: 3.12
- name: Installing libisl-dev
run: |
brew install isl
- name: pkg-config isl --modversion
run: |
pkg-config isl --modversion
- name: Update $PATH
run: |
echo $PATH
export PATH=/Users/runner/.roswell/bin:$PATH
echo "PATH=$HOME/bin:$PATH" >> $GITHUB_ENV
- name: Installing Extra Dependency for testing
run: make install_extra
- name: Check $PATH
run: echo $PATH
- name: (Metal JIT) rove caten.asd
if: ${{ matrix.backend == 'metal' }}
run: |
ros config set dynamic-space-size 8gb
ros -e '(ql:register-local-projects)' -q
CI=1 BACKEND=METAL OPTIMIZE=1 make test
Documentation:
name: Test building documentations
runs-on: ubuntu-latest
timeout-minutes: 20
permissions:
contents: read
steps:
- uses: actions/checkout@v1
- name: Set up SBCL via Roswell.
run: |
curl -L https://raw.githubusercontent.com/roswell/roswell/master/scripts/install-for-ci.sh | sh
ros install sbcl-bin
ros use sbcl-bin
ros install qlot
- name: Set up Python 3.12
uses: actions/setup-python@v5
with:
python-version: 3.12
- name: Update $PATH
run: |
echo $PATH
export PATH=/home/runner/.roswell/bin:$PATH
echo "PATH=$HOME/bin:$PATH" >> $GITHUB_ENV
- name: Installing Dependencies
run: sudo apt-get install -y libisl-dev protobuf-compiler cmake
- name: Download and install Abseil
run: |
set -ex
git clone --recursive -b lts_2024_07_22 https://github.com/abseil/abseil-cpp $GITHUB_WORKSPACE/abseil-cpp
cd $GITHUB_WORKSPACE/abseil-cpp
sudo cmake . -DCMAKE_CXX_STANDARD=17 -DABSL_ENABLE_INSTALL=ON
sudo make -j20
sudo make install
sudo ldconfig
- name: Download and install protobuf
run: |
git clone --recursive -b 28.x https://github.com/protocolbuffers/protobuf
cd protobuf/cmake
mkdir build
cd build
cmake -DCMAKE_CXX_STANDARD=17 -Dprotobuf_BUILD_TESTS=OFF -Dprotobuf_ABSL_PROVIDER=package -DCMAKE_INSTALL_PREFIX=/usr/local/ ../..
sudo make install -j20
sudo ldconfig
- name: Set up cl-protobufs
run: |
git clone https://github.com/qitab/cl-protobufs.git
cd cl-protobufs/protoc
cmake . -DCMAKE_CXX_STANDARD=17
cmake --build . --target install --parallel 16
cd ../../
- name: Installing extra dependencies
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
qlot install
qlot exec make install_docs
- name: Building documentations
run: mkdir -p docs/packages && CI=1 BACKEND=LISP make build_docs