Skip to content

Commit 3eaa8cb

Browse files
committed
ci: add macOS (ARM + Intel) and Windows builds
1 parent 3e6f37f commit 3eaa8cb

1 file changed

Lines changed: 101 additions & 47 deletions

File tree

.github/workflows/release.yml

Lines changed: 101 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -14,49 +14,21 @@ jobs:
1414
runs-on: ubuntu-22.04
1515
steps:
1616
- uses: actions/checkout@v4
17-
18-
- name: Install pnpm
19-
uses: pnpm/action-setup@v4
20-
with:
21-
version: 9
22-
23-
- name: Setup Node.js
24-
uses: actions/setup-node@v4
25-
with:
26-
node-version: 22
27-
cache: pnpm
28-
29-
- name: Install Rust stable
30-
uses: dtolnay/rust-toolchain@stable
31-
32-
- name: Rust cache
33-
uses: swatinem/rust-cache@v2
34-
with:
35-
workspaces: src-tauri
36-
17+
- uses: pnpm/action-setup@v4
18+
with: { version: 9 }
19+
- uses: actions/setup-node@v4
20+
with: { node-version: 22, cache: pnpm }
21+
- uses: dtolnay/rust-toolchain@stable
22+
- uses: swatinem/rust-cache@v2
23+
with: { workspaces: src-tauri }
3724
- name: Install Linux dependencies
38-
run: |
39-
sudo apt-get update
40-
sudo apt-get install -y libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf libgtk-3-dev
41-
42-
- name: Install frontend dependencies
43-
run: pnpm install --no-frozen-lockfile
44-
45-
- name: Install Tauri CLI
46-
run: pnpm add -Dw @tauri-apps/cli
47-
48-
- name: Build frontend
49-
run: pnpm --filter @telomere/web build
50-
51-
- name: Build Tauri app
52-
run: pnpm tauri build
53-
env:
54-
CI: true
55-
56-
- name: List artifacts
57-
run: find src-tauri/target/release/bundle -type f \( -name "*.deb" -o -name "*.AppImage" -o -name "*.rpm" \) ! -name "*.sig" | head -20
58-
59-
- name: Create Release & Upload
25+
run: sudo apt-get update && sudo apt-get install -y libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf libgtk-3-dev
26+
- run: pnpm install --no-frozen-lockfile
27+
- run: pnpm add -Dw @tauri-apps/cli
28+
- run: pnpm --filter @telomere/web build
29+
- run: pnpm tauri build
30+
env: { CI: true }
31+
- name: Upload artifacts
6032
uses: softprops/action-gh-release@v2
6133
with:
6234
tag_name: ${{ github.ref_name }}
@@ -65,11 +37,9 @@ jobs:
6537
Free, open-source genetic analysis desktop app.
6638
6739
**Download for your platform:**
68-
- `.deb` — Debian/Ubuntu
69-
- `.AppImage` — Universal Linux
70-
- `.rpm` — Fedora/RHEL
71-
72-
macOS and Windows builds coming soon.
40+
- `.dmg` — macOS
41+
- `.exe` / `.msi` — Windows
42+
- `.deb` / `.AppImage` / `.rpm` — Linux
7343
7444
Your DNA never leaves your computer.
7545
draft: false
@@ -79,3 +49,87 @@ jobs:
7949
src-tauri/target/release/bundle/appimage/*.AppImage
8050
src-tauri/target/release/bundle/rpm/*.rpm
8151
fail_on_unmatched_files: false
52+
53+
build-macos-arm:
54+
runs-on: macos-latest
55+
steps:
56+
- uses: actions/checkout@v4
57+
- uses: pnpm/action-setup@v4
58+
with: { version: 9 }
59+
- uses: actions/setup-node@v4
60+
with: { node-version: 22, cache: pnpm }
61+
- uses: dtolnay/rust-toolchain@stable
62+
with: { targets: aarch64-apple-darwin }
63+
- uses: swatinem/rust-cache@v2
64+
with: { workspaces: src-tauri }
65+
- run: pnpm install --no-frozen-lockfile
66+
- run: pnpm add -Dw @tauri-apps/cli
67+
- run: pnpm --filter @telomere/web build
68+
- run: pnpm tauri build --target aarch64-apple-darwin
69+
env: { CI: true }
70+
- name: Upload artifacts
71+
uses: softprops/action-gh-release@v2
72+
with:
73+
tag_name: ${{ github.ref_name }}
74+
name: 'Telomere AI ${{ github.ref_name }}'
75+
draft: false
76+
prerelease: false
77+
files: |
78+
src-tauri/target/aarch64-apple-darwin/release/bundle/dmg/*.dmg
79+
fail_on_unmatched_files: false
80+
81+
build-macos-intel:
82+
runs-on: macos-13
83+
steps:
84+
- uses: actions/checkout@v4
85+
- uses: pnpm/action-setup@v4
86+
with: { version: 9 }
87+
- uses: actions/setup-node@v4
88+
with: { node-version: 22, cache: pnpm }
89+
- uses: dtolnay/rust-toolchain@stable
90+
with: { targets: x86_64-apple-darwin }
91+
- uses: swatinem/rust-cache@v2
92+
with: { workspaces: src-tauri }
93+
- run: pnpm install --no-frozen-lockfile
94+
- run: pnpm add -Dw @tauri-apps/cli
95+
- run: pnpm --filter @telomere/web build
96+
- run: pnpm tauri build --target x86_64-apple-darwin
97+
env: { CI: true }
98+
- name: Upload artifacts
99+
uses: softprops/action-gh-release@v2
100+
with:
101+
tag_name: ${{ github.ref_name }}
102+
name: 'Telomere AI ${{ github.ref_name }}'
103+
draft: false
104+
prerelease: false
105+
files: |
106+
src-tauri/target/x86_64-apple-darwin/release/bundle/dmg/*.dmg
107+
fail_on_unmatched_files: false
108+
109+
build-windows:
110+
runs-on: windows-latest
111+
steps:
112+
- uses: actions/checkout@v4
113+
- uses: pnpm/action-setup@v4
114+
with: { version: 9 }
115+
- uses: actions/setup-node@v4
116+
with: { node-version: 22, cache: pnpm }
117+
- uses: dtolnay/rust-toolchain@stable
118+
- uses: swatinem/rust-cache@v2
119+
with: { workspaces: src-tauri }
120+
- run: pnpm install --no-frozen-lockfile
121+
- run: pnpm add -Dw @tauri-apps/cli
122+
- run: pnpm --filter @telomere/web build
123+
- run: pnpm tauri build
124+
env: { CI: true }
125+
- name: Upload artifacts
126+
uses: softprops/action-gh-release@v2
127+
with:
128+
tag_name: ${{ github.ref_name }}
129+
name: 'Telomere AI ${{ github.ref_name }}'
130+
draft: false
131+
prerelease: false
132+
files: |
133+
src-tauri/target/release/bundle/nsis/*.exe
134+
src-tauri/target/release/bundle/msi/*.msi
135+
fail_on_unmatched_files: false

0 commit comments

Comments
 (0)