-
Notifications
You must be signed in to change notification settings - Fork 2.4k
141 lines (133 loc) · 4.5 KB
/
amd64_macos_cmake_python.yml
File metadata and controls
141 lines (133 loc) · 4.5 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
134
135
136
137
138
139
140
141
# ref: https://github.com/actions/runner-images
name: amd64 MacOS CMake Python
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:
cmake: [
{name: "Xcode", generator: "Xcode", config: Release, build_target: ALL_BUILD, test_target: RUN_TESTS, install_target: install},
{name: "Make", generator: "Unix Makefiles", config: Release, build_target: all, test_target: test, install_target: install},
]
python: [
#{version: "3.9"},
#{version: "3.10"},
#{version: "3.11"},
#{version: "3.12"},
{version: "3.13"},
{version: "3.14"},
]
fail-fast: false
name: amd64•MacOS•CMake(${{matrix.cmake.name}})•Python-${{matrix.python.version}}
runs-on: macos-15-intel
env:
deps_src_key: amd64_macos_python_deps_src
deps_build_key: amd64_macos_python_deps_build_${{matrix.cmake.name}}
ccache_key: amd64_macos_python_ccache_${{matrix.cmake.name}}
steps:
- uses: actions/checkout@v6
- name: Install Dependencies
run: |
brew install ccache swig
swig -version
- name: Setup Python
uses: actions/setup-python@v6
with:
python-version: ${{matrix.python.version}}
- name: Update Path
run: |
echo "$HOME/Library/Python/${{matrix.python.version}}/bin" >> $GITHUB_PATH
echo "$HOME/.local/bin" >> $GITHUB_PATH
# 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 "${{matrix.cmake.generator}}"
-DCMAKE_BUILD_TYPE=${{matrix.cmake.config}}
-DBUILD_CXX_SAMPLES=OFF -DBUILD_CXX_EXAMPLES=OFF
-DBUILD_PYTHON=ON
-DCMAKE_INSTALL_PREFIX=install
- name: Build
run: >
cmake --build build
--config ${{matrix.cmake.config}}
--target ${{matrix.cmake.build_target}}
-v -j2
- name: Test
run: >
CTEST_OUTPUT_ON_FAILURE=1
cmake --build build
--config ${{matrix.cmake.config}}
--target ${{matrix.cmake.test_target}}
-v
- name: Install
run: >
cmake --build build
--config ${{matrix.cmake.config}}
--target ${{matrix.cmake.install_target}}
-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_macos_cmake_python:
runs-on: ubuntu-latest
needs: native
steps:
- uses: actions/checkout@v6