Skip to content

refactor: refine build script #355

refactor: refine build script

refactor: refine build script #355

Workflow file for this run

name: Build - mac
on:
push:
branches:
- "**"
paths-ignore:
- "tools/**"
- "docs/**"
- ".vscode/**"
- ".devcontainer/**"
- ".github/**"
- "!.github/workflows/build_mac.yml"
- "**.md"
pull_request:
paths-ignore:
- "tools/**"
- "docs/**"
- ".vscode/**"
- ".devcontainer/**"
- ".github/**"
- "!.github/workflows/build_mac.yml"
- "**.md"
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_tests=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_tests=false
tgn build mac x64 ${{ matrix.build_type }}
tree -I 'gen|obj' out