-
Notifications
You must be signed in to change notification settings - Fork 4
127 lines (115 loc) · 4.15 KB
/
test-base.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
name: Run Tests
on:
pull_request:
branches:
- "**"
jobs:
test-native:
runs-on: ${{ matrix.os }}
strategy:
matrix:
# verbose labels make things easier to read in GitHub Actions
# platform gets converted to os, preset
platform:
# - windows-gcc-x86_64
# - windows-gcc-ansi-x86_64
# - windows-msvc-x86
# - windows-msvc-x64
# - macos-clang-x86_64
- linux-clang-x86_64
- linux-clang-ansi-x86_64
- linux-gcc-x86_64
- linux-gcc-ansi-x86_64
# build-shared gets converted to cmake option
build-shared:
- static
- shared
# convert verbose labels to usable values (which don't appear in name)
include:
# use Release for everything
- cmake-build-type: Release
# platform -> os, preset
# - platform: windows-gcc-x86_64
# os: windows-latest
# preset: patomic-ci-unix-gcc
# - platform: windows-gcc-ansi-x86_64
# os: windows-latest
# preset: patomic-ci-unix-gcc-ansi
# - platform: windows-msvc-x86
# os: windows-latest
# preset: patomic-ci-windows-msvc -A Win32
# - platform: windows-msvc-x64
# os: windows-latest
# preset: patomic-ci-windows-msvc -A x64
# - platform: macos-clang-x86_64
# os: macos-latest
# preset: patomic-ci-unix-clang
- platform: linux-clang-x86_64
os: ubuntu-latest
preset: patomic-ci-unix-clang
- platform: linux-clang-ansi-x86_64
os: ubuntu-latest
preset: patomic-ci-unix-clang-ansi
- platform: linux-gcc-x86_64
os: ubuntu-latest
preset: patomic-ci-unix-gcc
- platform: linux-gcc-ansi-x86_64
os: ubuntu-latest
preset: patomic-ci-unix-gcc-ansi
# build-shared -> cmake-build-shared
- build-shared: static
cmake-build-shared: OFF
- build-shared: shared
cmake-build-shared: ON
steps:
- name: Checkout patomic
uses: actions/checkout@v4
with:
path: patomic
- name: Checkout GoogleTest
uses: actions/checkout@v4
with:
repository: google/googletest
path: googletest
- name: Build and Install GoogleTest
run: |
cd googletest
cp ../patomic/CMakePresets.json .
mkdir build
cd build
cmake --preset ${{ matrix.preset }} -DCMAKE_CXX_FLAGS="" -DBUILD_SHARED_LIBS=${{ matrix.cmake-build-shared }} -DCMAKE_BUILD_TYPE=${{ matrix.cmake-build-type }} -Dgtest_force_shared_crt=ON -Dgtest_hide_internal_symbols=ON ..
cmake --build . --config ${{ matrix.cmake-build-type }}
cmake --install . --config ${{ matrix.cmake-build-type }} --prefix install
- name: Build patomic
run: |
cd patomic
mkdir build
cd build
cmake --preset ${{ matrix.preset }} -DBUILD_SHARED_LIBS=${{ matrix.cmake-build-shared }} -DCMAKE_BUILD_TYPE=${{ matrix.cmake-build-type }} -DGTest_ROOT:PATH="../../googletest/build/install/lib/cmake/GTest" ..
cmake --build . --verbose --config ${{ matrix.cmake-build-type }}
- name: Test patomic
continue-on-error: true
run: |
cd patomic/build
ctest --verbose --build-config ${{ matrix.cmake-build-type }} .
- name: Prepare Test Results
run: |
mkdir upload
mkdir upload/${{ matrix.platform }}
mkdir upload/${{ matrix.platform }}/${{ matrix.build-shared }}
cp patomic/build/Testing/Temporary/* upload/${{ matrix.platform }}/${{ matrix.build-shared }}
- name: Upload Test Results
uses: actions/upload-artifact@v3
with:
name: test-native-results
path: upload/
test-qemu:
runs-on: ubuntu-latest
steps:
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
with:
platforms: arm64
- name: Check uname
run: |
docker run --rm arm64v8/alpine uname -a