-
Notifications
You must be signed in to change notification settings - Fork 0
80 lines (66 loc) · 2.21 KB
/
Copy pathrelease.yml
File metadata and controls
80 lines (66 loc) · 2.21 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
name: Release
on:
workflow_dispatch:
inputs:
version:
description: "Release version tag (e.g. v0.1.0-alpha)"
required: true
default: "v0.1.0-alpha"
# No push or tag triggers — release is always initiated manually.
jobs:
build:
name: Build (${{ matrix.os }})
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [macos-latest, ubuntu-latest, windows-latest]
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Node
uses: actions/setup-node@v4
with:
node-version: 22
cache: npm
cache-dependency-path: apps/desktop/package-lock.json
- name: Set up Rust
uses: dtolnay/rust-toolchain@stable
with:
components: rustfmt
- name: Cache Rust dependencies
uses: Swatinem/rust-cache@v2
with:
workspaces: apps/desktop/src-tauri
- name: Install system dependencies (Linux only)
if: runner.os == 'Linux'
run: |
sudo apt-get update
sudo apt-get install -y \
libwebkit2gtk-4.1-dev \
libgtk-3-dev \
libayatana-appindicator3-dev \
librsvg2-dev \
patchelf
- name: Install frontend dependencies
run: npm --prefix apps/desktop ci
- name: Fetch Rust dependencies
working-directory: apps/desktop/src-tauri
run: cargo fetch || (sleep 10 && cargo fetch)
- name: Run quality gates
run: npm --prefix apps/desktop run check
- name: Build Tauri app
run: npm --prefix apps/desktop run tauri:build
env:
# macOS notarization and Windows code-signing are not configured in this workflow.
# Set TAURI_SIGNING_PRIVATE_KEY and related secrets in repository settings
# when code-signing is ready to enable.
TAURI_SKIP_DEVSERVER_CHECK: "true"
- name: Upload build artifacts
uses: actions/upload-artifact@v4
with:
name: airbridge-${{ inputs.version }}-${{ runner.os }}
path: |
apps/desktop/src-tauri/target/release/bundle/
if-no-files-found: warn
retention-days: 30