update README.md in javascript
[liba.git] / .github / workflows / linux.yml
blobea14c46dc6c5d3b8c715d838c4799f2bd0dd2a31
1 name: linux
2 on:
3   workflow_dispatch:
4 jobs:
5   Linux:
6     strategy:
7       fail-fast: false
8       matrix:
9         include: [
10           { cc: gcc, cxx: g++, type: Debug },
11           { cc: clang, cxx: clang++, type: Debug },
12           { cc: gcc, cxx: g++, type: RelWithDebInfo },
13           { cc: clang, cxx: clang++, type: RelWithDebInfo },
14         ]
15     runs-on: ubuntu-latest
16     steps:
17       - uses: actions/checkout@v4
18         with:
19           lfs: true
20           submodules: true
21       - name: Run setup
22         env:
23           CC: ${{ matrix.cc }}
24           CXX: ${{ matrix.cxx }}
25         run: |
26           python3 -m venv venv
27           source venv/bin/activate
28           python3 -m pip install -r requirements.txt
29           env
30       - uses: mymindstorm/setup-emsdk@v13
31       - name: Run cmake
32         env:
33           CC: ${{ matrix.cc }}
34           CXX: ${{ matrix.cxx }}
35         run: |
36           source venv/bin/activate
37           set -x
38           cmake -S . -B build/${{ matrix.cc }} -DCMAKE_BUILD_TYPE=${{ matrix.type }} \
39             -DBUILD_TESTING=1 \
40             -DLIBA_WARNINGS=1 \
41             -DLIBA_SANITIZE=1 \
42             -DLIBA_JAVASCRIPT=1 \
43             -DLIBA_WITH_LUA=1 \
44             -DLIBA_PYTHON=1 \
45             -DLIBA_VCPKG=1 \
46             -DLIBA_JAVA=1
47           cmake --build build/${{ matrix.cc }} --config ${{ matrix.type }} --target package
48       - name: Run vcpkg
49         if: ${{ matrix.type == 'Debug' }}
50         env:
51           CC: ${{ matrix.cc }}
52           CXX: ${{ matrix.cxx }}
53         run: |
54           set -x
55           cp -r build/${{ matrix.cc }}/vcpkg/* $VCPKG_INSTALLATION_ROOT
56           vcpkg install liba[ipo,pkgconfig]
57       - name: Run ctest
58         env:
59           CTEST_OUTPUT_ON_FAILURE: 1
60         run: |
61           set -x
62           cmake --build build/${{ matrix.cc }} --target test