|
160
|
1 name: CI-win
|
|
|
2
|
|
|
3 on:
|
|
|
4 pull_request:
|
|
|
5 paths:
|
|
|
6 - '**'
|
|
|
7 - '!docs/**'
|
|
|
8 - '!src/unix/**'
|
|
|
9 - '!.**'
|
|
|
10 - '.github/workflows/CI-win.yml'
|
|
|
11 push:
|
|
|
12 branches:
|
|
|
13 - v[0-9].*
|
|
|
14 - master
|
|
|
15
|
|
|
16 jobs:
|
|
|
17 build-windows:
|
|
|
18 runs-on: windows-${{ matrix.config.server }}
|
|
|
19 name: build-${{ join(matrix.config.*, '-') }}
|
|
|
20 strategy:
|
|
|
21 fail-fast: false
|
|
|
22 matrix:
|
|
|
23 config:
|
|
|
24 - {toolchain: Visual Studio 17 2022, arch: Win32, server: 2022}
|
|
|
25 - {toolchain: Visual Studio 17 2022, arch: x64, server: 2022}
|
|
|
26 - {toolchain: Visual Studio 17 2022, arch: x64, server: 2022, config: ASAN}
|
|
|
27 - {toolchain: Visual Studio 17 2022, arch: x64, server: 2022, config: UBSAN}
|
|
|
28 - {toolchain: Visual Studio 17 2022, arch: arm64, server: 2022}
|
|
|
29 - {toolchain: Visual Studio 17 2022, arch: x64, server: 2025}
|
|
|
30 steps:
|
|
|
31 - uses: actions/checkout@v4
|
|
|
32 - name: Build
|
|
|
33 run:
|
|
|
34 cmake -S . -B build -DBUILD_TESTING=ON
|
|
|
35 -G "${{ matrix.config.toolchain }}" -A ${{ matrix.config.arch }}
|
|
|
36 ${{ matrix.config.config == 'ASAN' && '-DASAN=on -DCMAKE_MSVC_RUNTIME_LIBRARY=MultiThreaded' || '' }}
|
|
|
37
|
|
|
38 cmake --build build --config RelWithDebInfo
|
|
|
39
|
|
|
40 ${{ matrix.config.config == 'ASAN' && 'Copy-Item -Path "build\\*.exe" -Destination "build\\RelWithDebInfo\\"' || '' }}
|
|
|
41
|
|
|
42 ${{ matrix.config.config == 'ASAN' && 'Copy-Item -Path "build\\*.dll" -Destination "build\\RelWithDebInfo\\"' || '' }}
|
|
|
43
|
|
|
44 ls -l build
|
|
|
45
|
|
|
46 ls -l build\\RelWithDebInfo
|
|
|
47 - name: platform_output_a
|
|
|
48 if: ${{ matrix.config.arch != 'arm64' }}
|
|
|
49 shell: cmd
|
|
|
50 run:
|
|
|
51 build\\RelWithDebInfo\\uv_run_tests_a.exe platform_output
|
|
|
52 - name: platform_output
|
|
|
53 if: ${{ matrix.config.arch != 'arm64' }}
|
|
|
54 shell: cmd
|
|
|
55 run:
|
|
|
56 build\\RelWithDebInfo\\uv_run_tests.exe platform_output
|
|
|
57 - name: Test
|
|
|
58 # only valid with libuv-master with the fix for
|
|
|
59 # https://github.com/libuv/leps/blob/master/005-windows-handles-not-fd.md
|
|
|
60 if: ${{ matrix.config.config != 'ASAN' && matrix.config.arch != 'arm64' }}
|
|
|
61 shell: cmd
|
|
|
62 run:
|
|
|
63 cd build
|
|
|
64
|
|
|
65 ctest -C RelWithDebInfo -V
|
|
|
66 - name: Test only static
|
|
|
67 if: ${{ matrix.config.config == 'ASAN' && matrix.config.arch != 'arm64' }}
|
|
|
68 shell: cmd
|
|
|
69 run:
|
|
|
70 build\\RelWithDebInfo\\uv_run_tests_a.exe
|
|
|
71
|
|
|
72 build-mingw:
|
|
|
73 runs-on: ubuntu-latest
|
|
|
74 name: build-mingw-${{ matrix.config.arch }}
|
|
|
75 strategy:
|
|
|
76 fail-fast: false
|
|
|
77 matrix:
|
|
|
78 config:
|
|
|
79 - {arch: i686, server: 2022, libgcc: dw2 }
|
|
|
80 - {arch: x86_64, server: 2022, libgcc: seh }
|
|
|
81 steps:
|
|
|
82 - uses: actions/checkout@v4
|
|
|
83 - name: Install mingw32 environment
|
|
|
84 run: |
|
|
|
85 sudo apt update
|
|
|
86 sudo apt install mingw-w64 ninja-build -y
|
|
|
87 - name: Build
|
|
|
88 run: |
|
|
|
89 cmake -S . -B build -G Ninja -DHOST_ARCH=${{ matrix.config.arch }} -DBUILD_TESTING=ON -DCMAKE_TOOLCHAIN_FILE=cmake-toolchains/cross-mingw32.cmake
|
|
|
90 cmake --build build
|
|
|
91 cmake --install build --prefix "`pwd`/build/usr"
|
|
|
92 mkdir -p build/usr/test build/usr/bin
|
|
|
93 cp -av test/fixtures build/usr/test
|
|
|
94 cp -av build/uv_run_tests_a.exe build/uv_run_tests.exe build/uv_run_tests_a_no_ext build/uv_run_tests_no_ext \
|
|
|
95 `${{ matrix.config.arch }}-w64-mingw32-gcc -print-file-name=libgcc_s_${{ matrix.config.libgcc }}-1.dll` \
|
|
|
96 `${{ matrix.config.arch }}-w64-mingw32-gcc -print-file-name=libwinpthread-1.dll` \
|
|
|
97 `${{ matrix.config.arch }}-w64-mingw32-gcc -print-file-name=libatomic-1.dll` \
|
|
|
98 build/usr/bin
|
|
|
99 - name: Upload build artifacts
|
|
|
100 uses: actions/upload-artifact@v4
|
|
|
101 with:
|
|
|
102 name: mingw-${{ matrix.config.arch }}
|
|
|
103 path: build/usr/**/*
|
|
|
104 retention-days: 2
|
|
|
105
|
|
|
106 test-mingw:
|
|
|
107 runs-on: windows-${{ matrix.config.server }}
|
|
|
108 name: test-mingw-${{ matrix.config.arch }}
|
|
|
109 needs: build-mingw
|
|
|
110 strategy:
|
|
|
111 fail-fast: false
|
|
|
112 matrix:
|
|
|
113 config:
|
|
|
114 - {arch: i686, server: 2022}
|
|
|
115 - {arch: x86_64, server: 2022}
|
|
|
116 steps:
|
|
|
117 - name: Download build artifacts
|
|
|
118 uses: actions/download-artifact@v4
|
|
|
119 with:
|
|
|
120 name: mingw-${{ matrix.config.arch }}
|
|
|
121 - name: Test
|
|
|
122 shell: cmd
|
|
|
123 run: |
|
|
|
124 bin\uv_run_tests_a.exe
|
|
|
125 - name: Test
|
|
|
126 shell: cmd
|
|
|
127 run: |
|
|
|
128 bin\uv_run_tests.exe
|