-
Notifications
You must be signed in to change notification settings - Fork 0
131 lines (110 loc) · 3.57 KB
/
Copy pathmacos.yml
File metadata and controls
131 lines (110 loc) · 3.57 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
name: macOS Build & Test
on:
workflow_call:
inputs:
upload_release:
type: boolean
default: false
description: 'Upload to GitHub Release'
include_intel:
type: boolean
default: false
description: 'Include Intel (x86_64) runner'
workflow_dispatch:
inputs:
include_intel:
type: boolean
default: false
description: 'Include Intel (x86_64) runner'
jobs:
build-macos-arm64:
name: macOS Apple Silicon Build & Test
runs-on: macos-15
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable
with:
targets: aarch64-apple-darwin
- name: Install macOS system dependencies
run: |
brew install zstd jq curl
- name: Cache Cargo dependencies and build cache
uses: actions/cache@v4
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: ${{ runner.os }}-arm64-cargo-${{ hashFiles('**/Cargo.lock') }}
restore-keys: |
${{ runner.os }}-arm64-cargo-
- name: Cache Echolet Base Model Archive
uses: actions/cache@v4
with:
path: |
dist/model-*.tar.zst
key: echolet-base-model-${{ hashFiles('models/base-model.lock.json') }}
- name: Acquire native runtime and frozen base model
run: |
./scripts/macos/prepare-assets.sh arm64
- name: Run automated test suite
run: |
cargo test --release -- --nocapture
- name: Build and verify macOS release bundle
run: |
./scripts/macos/build-release.sh arm64
- name: Publish to GitHub Release
if: ${{ inputs.upload_release }}
uses: softprops/action-gh-release@v2
with:
files: dist/echolet-macos-arm64.zip
build-macos-x64:
name: macOS Intel Build & Test
if: inputs.include_intel == true || inputs.upload_release == true
runs-on: macos-15-intel
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable
with:
targets: x86_64-apple-darwin
- name: Install macOS system dependencies
run: |
brew install zstd jq curl
- name: Cache Cargo dependencies and build cache
uses: actions/cache@v4
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: ${{ runner.os }}-x64-cargo-${{ hashFiles('**/Cargo.lock') }}
restore-keys: |
${{ runner.os }}-x64-cargo-
- name: Cache Echolet Base Model Archive
uses: actions/cache@v4
with:
path: |
dist/model-*.tar.zst
key: echolet-base-model-${{ hashFiles('models/base-model.lock.json') }}
- name: Acquire native runtime and frozen base model
run: |
./scripts/macos/prepare-assets.sh x64
- name: Run automated test suite
run: |
cargo test --release -- --nocapture
- name: Build and verify macOS release bundle
run: |
./scripts/macos/build-release.sh x64
- name: Publish to GitHub Release
if: ${{ inputs.upload_release }}
uses: softprops/action-gh-release@v2
with:
files: dist/echolet-macos-x64.zip