-
Notifications
You must be signed in to change notification settings - Fork 2.4k
133 lines (125 loc) · 3.91 KB
/
amd64_linux_cmake_dotnet.yml
File metadata and controls
133 lines (125 loc) · 3.91 KB
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
130
131
132
133
# ref: https://github.com/actions/runner-images
name: amd64 Linux CMake .Net
on:
push:
branches:
- main
- v99bugfix
workflow_dispatch:
concurrency:
group: ${{github.workflow}}-${{github.ref}}
cancel-in-progress: true
# Building using the github runner environement directly.
env:
CCACHE_BASEDIR: ${{github.workspace}}
CCACHE_DIR: ${{github.workspace}}/.ccache
jobs:
native:
strategy:
matrix:
config: [
{name: "examples", flags: "-DBUILD_DOTNET_EXAMPLES=ON -DBUILD_DOTNET_SAMPLES=OFF"},
{name: "samples", flags: "-DBUILD_DOTNET_EXAMPLES=OFF -DBUILD_DOTNET_SAMPLES=ON"},
]
fail-fast: false
name: amd64•Linux•CMake•.Net(${{matrix.config.name}})
runs-on: ubuntu-latest
env:
deps_src_key: amd64_linux_dotnet_deps_src
deps_build_key: amd64_linux_dotnet_deps_build
ccache_key: amd64_linux_dotnet_ccache
steps:
- uses: actions/checkout@v6
- name: Install Dependencies
run: |
sudo apt update
sudo apt install -y ninja-build ccache swig
swig -version
- name: Setup .NET 8.0
uses: actions/setup-dotnet@v5
with:
dotnet-version: 8.0.x
- name: Check dotnet
run: dotnet --info
# RESTORING CACHES
- name: Restore CMake dependency source code
uses: actions/cache/restore@v5
id: deps_src_restore
with:
key: ${{env.deps_src_key}}-${{hashFiles('CMakeLists.txt', 'cmake/**')}}
path: ${{github.workspace}}/build/_deps/*-src
- name: Restore CMake dependency build
uses: actions/cache/restore@v5
id: deps_build_restore
with:
key: ${{env.deps_build_key}}-${{hashFiles('CMakeLists.txt', 'cmake/**')}}
path: |
${{github.workspace}}/build/_deps/*-build
${{github.workspace}}/build/_deps/*-subbuild
- name: Restore CCache
uses: actions/cache/restore@v5
id: ccache_restore
with:
key: ${{env.ccache_key}}-${{github.sha}}
restore-keys: ${{env.ccache_key}}-
path: ${{env.CCACHE_DIR}}
- name: Check CMake
run: cmake --version
- name: Configure
run: >
cmake -S. -Bbuild
-G "Ninja"
-DCMAKE_BUILD_TYPE=Release
-DBUILD_CXX_SAMPLES=OFF -DBUILD_CXX_EXAMPLES=OFF
${{matrix.config.flags}}
-DBUILD_DOTNET=ON
-DCMAKE_INSTALL_PREFIX=install
- name: Build
run: >
cmake --build build
--config Release
--target all
-v -j2
- name: Test
run: >
CTEST_OUTPUT_ON_FAILURE=1
cmake --build build
--config Release
--target test
-v
- name: Install
run: >
cmake --build build
--config Release
--target install
-v
- name: CCache stats
run: |
ccache --show-stats
ccache --zero-stats
# SAVING CACHES
- name: Save CCache
if: github.ref == 'refs/heads/main'
uses: actions/cache/save@v5
with:
key: ${{steps.ccache_restore.outputs.cache-primary-key}}
path: ${{env.CCACHE_DIR}}
- name: Save CMake dependency build
if: github.ref == 'refs/heads/main'
uses: actions/cache/save@v5
with:
key: ${{steps.deps_build_restore.outputs.cache-primary-key}}
path: |
${{github.workspace}}/build/_deps/*-build
${{github.workspace}}/build/_deps/*-subbuild
- name: Save CMake dependency source code
if: github.ref == 'refs/heads/main'
uses: actions/cache/save@v5
with:
key: ${{steps.deps_src_restore.outputs.cache-primary-key}}
path: ${{github.workspace}}/build/_deps/*-src
amd64_linux_cmake_dotnet:
runs-on: ubuntu-latest
needs: native
steps:
- uses: actions/checkout@v6