-
-
Notifications
You must be signed in to change notification settings - Fork 0
128 lines (117 loc) Β· 5.22 KB
/
Copy pathmacOS.yaml
File metadata and controls
128 lines (117 loc) Β· 5.22 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
# πΊπ Violet: Extended C++ standard library
# Copyright (c) 2025-2026 Noelware, LLC. <team@noelware.org>, et al.
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
# copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in all
# copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.
name: "macOS / CI"
on:
workflow_dispatch: {}
push:
branches:
- "issues/gh-**"
- "feat/**"
- master
paths-ignore:
- '.github/**'
- '.vscode/**'
- 'hack/**'
- '.ci/**'
- 'nix/**'
- 'docs/**'
- 'buildsystem/bazel/version.bzl'
- 'tools/bazeldist'
- 'tools/hotpatch-release.py'
- .noeldoc.yml
- CHANGELOG.md
- renovate.json
- flake.lock
- .violet-version
- .*ignore
- .clangd
- .envrc
pull_request:
types: [opened, synchronize]
branches:
- "issues/gh-**"
- "noel/**"
- "feat/**"
- master
paths:
- "**"
permissions:
contents: read
checks: write
concurrency:
group: ${{github.workflow}}-${{github.ref}}
cancel-in-progress: true
jobs:
bazel:
name: "Bazel [exceptions=${{matrix.exceptions}} rtti=${{matrix.rtti}} abseil=${{matrix.abseil}}]"
runs-on: macos-26
strategy:
fail-fast: false
matrix:
exceptions: ["yes", "no"]
abseil: ["yes", "no"]
rtti: ["yes", "no"]
env:
USE_BAZEL_VERSION: "8.6.0"
BAZELFLAGS: "--config=ci --config=cxx26 --action_env=SDKROOT --host_action_env=SDKROOT --cxxopt=${{matrix.exceptions == 'yes' && '-fexceptions' || '-fno-exceptions'}} --host_cxxopt=${{matrix.exceptions == 'yes' && '-fexceptions' || '-fno-exceptions'}} --cxxopt=${{matrix.rtti == 'yes' && '-frtti' || '-fno-rtti'}} --host_cxxopt=${{matrix.rtti == 'yes' && '-frtti' || '-fno-rtti'}} ${{matrix.abseil == 'yes' && '--//buildsystem/bazel/flags:abseil=True' || ''}}"
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
- uses: ./.github/actions/setup-macos
- uses: bazel-contrib/setup-bazel@c5acdfb288317d0b5c0bbd7a396a3dc868bb0f86 # 0.19.0
with:
bazelisk-cache: true
repository-cache: true
disk-cache: macos-${{matrix.exceptions == 'yes' && 'exceptions' || 'no-exceptions'}}-${{matrix.exceptions == 'yes' && 'rtti' || 'nortti'}}-${{matrix.abseil == 'yes' && 'abseil' || 'no-abseil'}}
- run: bazel test //... ${{env.BAZELFLAGS}}
id: test
continue-on-error: true
- name: Collect Crash Diagnostics
if: steps.test.outcome == 'failure'
run: |
echo "::group::== Crash Reports =="
find ~/Library/Logs/DiagnosticReports -name "*.crash" -newer /tmp/testStartTime -print -exec cat {} \; 2>/dev/null || true
find ~/Library/Logs/DiagnosticReports -name "*.ips"
echo "::endgroup::"
echo "::group::== Core Dumps =="
find /cores -name "core.*" -newer /tmp/testStartDate 2>/dev/null | while read core; do
echo "---- $core ----"
lldb --batch -c "$core" -o "bt all" -o "quit" 2>/dev/null || true
done
echo "::endgroup::"
echo "::group::== Test Logs ==="
find bazel-testlogs -name "test.log" -exec grep -l "FAIL\|SEGV\|ABRT\|Segmentation" {} \; | while read log; do
echo "--- $log ---"
cat "$log"
done
echo "::endgroup::"
- name: upload crash artifacts
if: steps.test.outcome == 'failure'
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
with:
retention-days: 7
name: macos-crash-diagnostics
path: |
~/Library/Logs/DiagnosticReports/*.crash
~/Library/Logs/DiagnosticReports/*.ips
bazel-testlogs/**/test.log
/cores/core.*
- run: exit 1
if: steps.test.outcome == 'failure'