update workflow in github
[liba.git] / .github / workflows / msvc.yml
blob18ad0909954ff1991f62d5578cb16852475cd825
1 name: msvc
2 on:
3   workflow_dispatch:
4 jobs:
5   MSVC:
6     strategy:
7       fail-fast: false
8       matrix:
9         include: [
10           { triple: x64, arch: x64, type: Debug },
11           { triple: x86, arch: win32, type: Debug },
12           { triple: x64, arch: x64, type: Release },
13           { triple: x86, arch: win32, type: Release },
14           { triple: arm64, arch: ARM64, type: Release },
15           { triple: arm, arch: ARM, type: Release },
16         ]
17     runs-on: windows-latest
18     steps:
19       - uses: actions/checkout@v4
20         with:
21           lfs: true
22           submodules: true
23       - name: Run setup
24         run: |
25           choco install ninja
26           python -m venv venv
27           venv/Scripts/Activate.ps1
28           python -m pip install -r requirements.txt
29           Get-ChildItem Env: | Sort Name
30       - name: Run cmake
31         env:
32           LIBA_OPENMP: 1
33         run: |
34           venv/Scripts/Activate.ps1
35           Set-PSDebug -Trace 1
36           cmake -S . -B build -A ${{ matrix.arch }} `
37             -DBUILD_TESTING=1 `
38             -DLIBA_WARNINGS=1 `
39             -DLIBA_SANITIZE=1 `
40             -DLIBA_WITH_LUA=1 `
41             -DLIBA_PYTHON=1 `
42             -DLIBA_VCPKG=1 `
43             -DLIBA_JAVA=1
44           cmake --build build --config ${{ matrix.type }} --target package -- -noLogo
45       - name: Run vcpkg
46         if: ${{ matrix.type == 'Release' }}
47         run: |
48           Set-PSDebug -Trace 1
49           cp -r -Force build/vcpkg/* $ENV:VCPKG_INSTALLATION_ROOT
50           vcpkg install liba[ipo,pkgconfig]:${{ matrix.triple }}-windows
51           vcpkg install liba[ipo,pkgconfig]:${{ matrix.triple }}-windows-static
52       - name: Run ctest
53         if: ${{ startsWith(matrix.triple, 'x') }}
54         env:
55           CTEST_OUTPUT_ON_FAILURE: 1
56         run: |
57           Set-PSDebug -Trace 1
58           cmake --build build --config ${{ matrix.type }} --target run_tests -- -noLogo
59       - uses: mymindstorm/setup-emsdk@v13
60         if: ${{ matrix.arch == 'x64' }}
61       - name: Run cmake
62         if: ${{ matrix.arch == 'x64' }}
63         env:
64           LIBA_OPENMP: 1
65         run: |
66           venv/Scripts/Activate.ps1
67           Set-PSDebug -Trace 1
68           cmake -S . -B build.llvm -G "Ninja Multi-Config" --toolchain cmake/UseClang.cmake `
69             -DBUILD_TESTING=1 `
70             -DLIBA_WARNINGS=1 `
71             -DLIBA_JAVASCRIPT=1 `
72             -DLIBA_JAVASCRIPT_BIGINT=1 `
73             -DLIBA_JAVASCRIPT_DEBUG=1 `
74             -DLIBA_JAVASCRIPT_TSGEN=1 `
75             -DLIBA_WITH_LUA=1 `
76             -DLIBA_PYTHON=1 `
77             -DLIBA_VCPKG=1 `
78             -DLIBA_JAVA=1
79           cmake --build build.llvm --config ${{ matrix.type }} --target package
80       - name: Run ctest
81         if: ${{ matrix.arch == 'x64' }}
82         env:
83           CTEST_OUTPUT_ON_FAILURE: 1
84         run: |
85           Set-PSDebug -Trace 1
86           cmake --build build.llvm --config ${{ matrix.type }} --target test