-
Notifications
You must be signed in to change notification settings - Fork 43
118 lines (103 loc) · 3.52 KB
/
build_mac.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
name: Build - mac
on:
push:
branches:
- "**"
paths-ignore:
- "tools/**"
- "docs/**"
- ".vscode/**"
- ".devcontainer/**"
- ".github/**"
- "!.github/workflows/build_mac.yml"
- "**.md"
pull_request:
jobs:
build-arm64:
runs-on: macos-latest
strategy:
matrix:
build_type: [debug, release]
steps:
- uses: actions/checkout@v4
with:
fetch-depth: "0"
submodules: "true"
- uses: actions/setup-python@v5
with:
python-version: "3.10"
- uses: actions/setup-go@v5
with:
go-version: "stable"
cache: false
- name: Install tools and dependencies
run: |
if [ ${{ matrix.build_type }} == "debug" ]; then
# Since the TEN runtime and TEN manager are a combination of C and
# Rust, to enable ASan, the ASan versions used by both the C and
# Rust compilation environments must be consistent. Therefore, it is
# necessary to lock the LLVM and Rust versions to enable ASan.
brew install llvm@18
rustup default nightly-2024-07-19
else
rustup default nightly
fi
brew install tree
pip3 install --use-pep517 python-dotenv jinja2
go install golang.org/dl/go1.20.12@latest && go1.20.12 download
go env -w GOFLAGS="-buildvcs=false"
cargo install --force cbindgen
- name: Build
run: |
if [ ${{ matrix.build_type }} == "debug" ]; then
export PATH="/opt/homebrew/opt/llvm@18/bin:$PATH"
fi
export PATH=$(pwd)/core/ten_gn:$PATH
echo $PATH
tgn gen mac arm64 ${{ matrix.build_type }} -- log_level=1 enable_serialized_actions=true ten_enable_test=false
tgn build mac arm64 ${{ matrix.build_type }}
tree -I 'gen|obj' out
build-x64:
runs-on: macos-13
strategy:
matrix:
build_type: [release]
steps:
- uses: actions/checkout@v4
with:
fetch-depth: "0"
submodules: "true"
- uses: actions/setup-python@v5
with:
python-version: "3.10"
- uses: actions/setup-go@v5
with:
go-version: "stable"
cache: false
- name: Install tools and dependencies
run: |
if [ ${{ matrix.build_type }} == "debug" ]; then
# Since the TEN runtime and TEN manager are a combination of C and
# Rust, to enable ASan, the ASan versions used by both the C and
# Rust compilation environments must be consistent. Therefore, it is
# necessary to lock the LLVM and Rust versions to enable ASan.
brew install llvm@18
rustup default nightly-2024-07-19
else
rustup default nightly
fi
brew install tree
pip3 install --use-pep517 python-dotenv jinja2
go install golang.org/dl/go1.20.12@latest && go1.20.12 download
go env -w GOFLAGS="-buildvcs=false"
cargo install --force cbindgen
- name: Build
run: |
if [ ${{ matrix.build_type }} == "debug" ]; then
export PATH="/usr/local/opt/llvm@18/bin:$PATH"
fi
export PATH=$(pwd)/core/ten_gn:$PATH
echo $PATH
tgn gen mac x64 ${{ matrix.build_type }} -- log_level=1 enable_serialized_actions=true ten_enable_test=false
tgn build mac x64 ${{ matrix.build_type }}
tree -I 'gen|obj' out