-
Notifications
You must be signed in to change notification settings - Fork 2.4k
126 lines (118 loc) · 4.03 KB
/
amd64_macos_cmake_java.yml
File metadata and controls
126 lines (118 loc) · 4.03 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
# ref: https://github.com/actions/runner-images
name: amd64 MacOS CMake Java
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},
]
fail-fast: false
name: amd64•MacOS•CMake(${{matrix.cmake.name}})•Java
runs-on: macos-15-intel
env:
deps_src_key: amd64_macos_java_deps_src
deps_build_key: amd64_macos_java_deps_build_${{matrix.cmake.name}}
ccache_key: amd64_macos_java_ccache_${{matrix.cmake.name}}
steps:
- uses: actions/checkout@v6
- name: Install Dependencies
run: |
brew install ccache swig
swig -version
echo "JAVA_HOME=$JAVA_HOME_21_X64" >> $GITHUB_ENV
# 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_JAVA=ON -DSKIP_GPG=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_java:
runs-on: ubuntu-latest
needs: native
steps:
- uses: actions/checkout@v6