Skip to content

Commit 129b3c1

Browse files
committed
Add Linux 32bit, Win32 and Cosmopolitan support CI
1 parent a4be486 commit 129b3c1

File tree

1 file changed

+77
-0
lines changed

1 file changed

+77
-0
lines changed

.github/workflows/ci.yml

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,25 @@ jobs:
3737
run: |
3838
make microbench
3939
40+
linux-32bit:
41+
name: Linux 32bit (Ubuntu)
42+
runs-on: ubuntu-latest
43+
strategy:
44+
fail-fast: false
45+
steps:
46+
- uses: actions/checkout@v4
47+
with:
48+
submodules: true
49+
- name: Install gcc-multilib
50+
run: |
51+
sudo apt install -y gcc-multilib
52+
- name: Build
53+
run: |
54+
make -j$(getconf _NPROCESSORS_ONLN) CONFIG_WERROR=y CONFIG_M32=y
55+
- name: Run built-in tests
56+
run: |
57+
make CONFIG_M32=y test
58+
4059
linux-asan:
4160
runs-on: ubuntu-latest
4261
steps:
@@ -142,6 +161,64 @@ jobs:
142161
./qjs -qd
143162
gmake test
144163
164+
cosmopolitan:
165+
name: Cosmopolitan
166+
runs-on: ubuntu-latest
167+
strategy:
168+
fail-fast: false
169+
steps:
170+
- uses: actions/checkout@v4
171+
with:
172+
submodules: true
173+
- name: Install Cosmopolitan
174+
run: |
175+
mkdir ~/cosmocc
176+
cd ~/cosmocc
177+
wget https://cosmo.zip/pub/cosmocc/cosmocc.zip
178+
unzip cosmocc.zip
179+
echo "$HOME/cosmocc/bin" >> "$GITHUB_PATH"
180+
- name: Build
181+
run: |
182+
make CONFIG_COSMO=y
183+
- name: Run built-in tests
184+
run: |
185+
make CONFIG_COSMO=y test
186+
187+
windows-mingw:
188+
name: MinGW cross-compile for Windows on Linux
189+
runs-on: ubuntu-latest
190+
strategy:
191+
fail-fast: false
192+
steps:
193+
- uses: actions/checkout@v4
194+
with:
195+
submodules: true
196+
- name: Install MinGW and Wine
197+
run: |
198+
sudo apt install -y wine mingw-w64
199+
- name: Setup Wine
200+
run: |
201+
wine --version
202+
winecfg /v win10
203+
# This would allow executing `make test` directly
204+
# however, GitHub Actions doesn't allow installing it
205+
#sudo apt install -y binfmt-support wine-binfmt
206+
#echo ":Wine:M::MZ::/usr/bin/wine:" > /etc/binfmt.d/wine.conf
207+
#sudo systemctl restart systemd-binfmt
208+
- name: Build
209+
run: |
210+
make CONFIG_WIN32=y
211+
- name: Run built-in tests
212+
run: |
213+
# If binfmt support worked, could just run `make CONFIG_WIN32=y test`
214+
echo "Running tests with wine"
215+
wine ./qjs.exe tests/test_closure.js
216+
wine ./qjs.exe tests/test_language.js
217+
wine ./qjs.exe --std tests/test_builtin.js
218+
wine ./qjs.exe tests/test_loop.js
219+
wine ./qjs.exe tests/test_bigint.js
220+
echo "Finished running tests with wine"
221+
145222
qemu-alpine:
146223
runs-on: ubuntu-latest
147224

0 commit comments

Comments
 (0)