Skip to content

Commit 6be4269

Browse files
authored
Merge pull request #32 from Piebald-AI/signadou/release-ci
Setup automatic building in CI
2 parents 94a2acd + 10e4b04 commit 6be4269

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

50 files changed

+1204
-540
lines changed

.github/workflows/ci.yml

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,6 @@ on:
99
jobs:
1010
lint:
1111
runs-on: ubuntu-latest
12-
13-
strategy:
14-
matrix:
15-
node-version: [22.x]
16-
1712
steps:
1813
- name: Checkout code
1914
uses: actions/checkout@v4
@@ -26,13 +21,15 @@ jobs:
2621
- name: Setup Node.js
2722
uses: actions/setup-node@v4
2823
with:
29-
node-version: ${{ matrix.node-version }}
30-
cache: "pnpm"
24+
node-version: 22.x
25+
cache: pnpm
3126
cache-dependency-path: "frontend/pnpm-lock.yaml"
3227

3328
- name: Setup Rust
3429
uses: dtolnay/rust-toolchain@stable
3530

31+
- uses: Swatinem/rust-cache@v2
32+
3633
- uses: taiki-e/install-action@just
3734

3835
- name: Install dependencies

.github/workflows/release.yml

Lines changed: 76 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,18 @@ name: Release & Publish
33
on:
44
push:
55
tags:
6-
- 'v*'
6+
- "v*"
77

88
jobs:
99
release:
10-
runs-on: ubuntu-latest
10+
name: ${{ matrix.os }}
11+
runs-on: ${{ matrix.os }}
12+
strategy:
13+
fail-fast: false
14+
matrix:
15+
os: [ubuntu-22.04, macos-13, macos-14, windows-2025]
1116
permissions:
1217
contents: write
13-
id-token: write
14-
1518
steps:
1619
- name: Checkout code
1720
uses: actions/checkout@v4
@@ -26,18 +29,80 @@ jobs:
2629
with:
2730
node-version: 22.x
2831
cache: pnpm
29-
cache-dependency-path: 'frontend/pnpm-lock.yaml'
30-
registry-url: https://registry.npmjs.org
32+
cache-dependency-path: "frontend/pnpm-lock.yaml"
33+
34+
- name: Setup Rust
35+
uses: dtolnay/rust-toolchain@stable
36+
37+
- uses: Swatinem/rust-cache@v2
38+
with:
39+
cache-on-failure: "true"
40+
41+
- uses: taiki-e/install-action@just
42+
43+
- name: Install build dependencies
44+
if: matrix.os == 'ubuntu-22.04'
45+
run: |
46+
sudo apt-get update
47+
sudo apt-get install -y libgdk-pixbuf-2.0-dev \
48+
libpango1.0-dev \
49+
libjavascriptcoregtk-4.1-dev \
50+
libatk1.0-dev \
51+
libsoup-3.0-dev \
52+
libwebkit2gtk-4.1-dev \
53+
librsvg2-dev
3154
3255
- name: Install dependencies
33-
working-directory: frontend
34-
run: pnpm install --frozen-lockfile
56+
run: just deps
3557

3658
- name: Build project
37-
working-directory: frontend
38-
run: pnpm tauri build
59+
run: just build-all
60+
61+
- name: Archive `gemini-desktop-web` executable (macOS/Linux)
62+
if: matrix.os != 'windows-2025'
63+
run: |
64+
cd target/release
65+
case "${{ matrix.os }}" in
66+
ubuntu-22.04) PLATFORM="linux-x64-gnu";;
67+
macos-13) PLATFORM="macos-x64";;
68+
macos-14) PLATFORM="macos-arm64";;
69+
*) echo "Invalid OS: ${{ matrix.os }}"; exit 1;;
70+
esac
71+
tar -czf gemini-desktop-web-${PLATFORM}.tar.gz gemini-desktop-web
72+
73+
- name: Archive `gemini-desktop-web` executable (Windows)
74+
if: matrix.os == 'windows-2025'
75+
run: |
76+
cd target/release
77+
7z a -tzip gemini-desktop-web-windows-x64-msvc.zip gemini-desktop-web.exe
78+
79+
- name: Build Windows installer
80+
if: matrix.os == 'windows-2025'
81+
run: |
82+
winget install --id JRSoftware.InnoSetup --disable-interactivity --accept-source-agreements --accept-package-agreements
83+
& "$env:LOCALAPPDATA\Programs\Inno Setup 6\ISCC.exe" installer.iss
84+
85+
- name: Remove spaces from installer names
86+
if: matrix.os != 'windows-2025'
87+
run: |
88+
cd target/release/bundle
89+
90+
find appimage rpm deb dmg -maxdepth 1 -type f -name 'Gemini Desktop*' 2>/dev/null \
91+
-exec bash -c '
92+
for f; do
93+
mv "$f" "$(dirname "$f")/$(basename "$f" | sed "s/^Gemini Desktop/GeminiDesktop/")"
94+
done
95+
' _ {} + || true
3996
4097
- name: Create GitHub Release
4198
uses: softprops/action-gh-release@v2
4299
with:
43-
generate_release_notes: true
100+
files: |
101+
target/release/bundle/dmg/*.dmg
102+
target/release/bundle/deb/*.deb
103+
target/release/bundle/rpm/*.rpm
104+
target/release/bundle/appimage/*.AppImage
105+
target/release/GeminiDesktopSetup.exe
106+
target/release/gemini-desktop-web-*.tar.gz
107+
target/release/gemini-desktop-web-*.zip
108+
generate_release_notes: true

0 commit comments

Comments
 (0)