-
Notifications
You must be signed in to change notification settings - Fork 0
129 lines (118 loc) · 3.58 KB
/
build-matrix.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
128
129
name: CMake Build Matrix
on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]
jobs:
Test:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os:
- windows-2022
- ubuntu-24.04
compiler:
- llvm-18.1.6
# - gcc-latest
# `llvm-13.0.0`.
include:
- os: "windows-2022"
compiler: "msvc"
steps:
- uses: actions/[email protected]
- name: Cache
uses: actions/[email protected]
with:
path: |
~/vcpkg
./build/vcpkg_installed
${{ env.HOME }}/.cache/vcpkg/archives
${{ env.XDG_CACHE_HOME }}/vcpkg/archives
${{ env.LOCALAPPDATA }}\vcpkg\archives
${{ env.APPDATA }}\vcpkg\archives
key: ${{ runner.os }}-${{ matrix.compiler }}-${{ env.BUILD_TYPE }}-${{ hashFiles('**/CMakeLists.txt') }}-${{ hashFiles('./vcpkg.json')}}
restore-keys: |
${{ runner.os }}-${{ env.BUILD_TYPE }}-
- name: Setup Cpp
uses: aminya/setup-cpp@v1
with:
compiler: ${{ matrix.compiler }}
vcvarsall: ${{ contains(matrix.os, 'windows') }}
cmake: true
ninja: true
vcpkg: true
- name: Configure CMake
run: |
cmake -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE=${{ github.workspace }}/vcpkg/scripts/buildsystems/vcpkg.cmake
- name: Build
run: |
cmake --build build --config Release
- name: List contents of output directory
run: |
echo "Contents of output directory:"
ls -R ${{ github.workspace }}/output/bin/release
#jobs:
# build:
# runs-on: ${{ matrix.os }}
# strategy:
# matrix:
# os: [ windows-latest, ubuntu-latest ]
# include:
# - os: windows-latest
# compiler: msvc
# # - os: ubuntu-latest
# # compiler: gcc-linux
# - os: ubuntu-latest
# compiler: gcc-linux
#
# steps:
# - name: Checkout code
# uses: actions/[email protected]
#
#
# - name: Setup Compiler on Ubuntu (GCC or Clang)
# if: matrix.os == 'ubuntu-latest'
# uses: rlalik/[email protected]
# with:
# compiler: latest
#
# - name: vcpkg installation
# shell: bash
# run: |
# git clone https://github.com/microsoft/vcpkg.git
# cd vcpkg
# if [[ "${{ runner.os }}" == "Windows" ]]; then
# ./bootstrap-vcpkg.bat
# else
# ./bootstrap-vcpkg.sh
# fi
# ./vcpkg integrate install
# ./vcpkg install
#
# - name: Cache vcpkg packages
# uses: actions/[email protected]
# with:
# path: |
# ${{ github.workspace }}/vcpkg/installed
# ${{ github.workspace }}/vcpkg/vcpkg
# key: ${{ runner.os }}-vcpkg-${{ hashFiles('vcpkg.json') }}
# restore-keys: |
# ${{ runner.os }}-vcpkg-
#
# - name: Configure CMake
# run: |
# cmake -B build -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE=${{ github.workspace }}/vcpkg/scripts/buildsystems/vcpkg.cmake
#
# - name: Build
# run: |
# cmake --build build --config Release
#
# - name: List contents of output directory
# run: |
# echo "Contents of output directory:"
# ls -R ${{ github.workspace }}/output/bin/release
# - name: Run tests
# run: |
# ctest --test-dir ${{ github.workspace }}/output/bin/release --output-on-failure -C Release