-
Notifications
You must be signed in to change notification settings - Fork 0
114 lines (99 loc) · 3.96 KB
/
release.yml
File metadata and controls
114 lines (99 loc) · 3.96 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
name: 'Publish Release'
on:
push:
tags:
- 'v*'
jobs:
publish-tauri:
permissions:
contents: write
# Skip this job if the tag contains pre-release indicators
if: ${{ startsWith(github.ref, 'refs/tags/v') && !contains(github.ref_name, 'alpha') && !contains(github.ref_name, 'beta') && !contains(github.ref_name, 'rc') }}
strategy:
fail-fast: false
matrix:
include:
- platform: 'macos-latest'
args: '--target aarch64-apple-darwin'
- platform: 'macos-latest'
args: '--target x86_64-apple-darwin'
- platform: 'ubuntu-latest'
args: ''
- platform: 'windows-latest'
args: '--target x86_64-pc-windows-msvc'
runs-on: ${{ matrix.platform }}
steps:
- uses: actions/checkout@v4
- name: Setup Bun
uses: oven-sh/setup-bun@v2
with:
bun-version: latest
- name: Setup Rust
uses: dtolnay/rust-toolchain@stable
with:
targets: ${{ matrix.platform == 'macos-latest' && 'aarch64-apple-darwin,x86_64-apple-darwin' || '' }}
- name: Cache Rust build
uses: swatinem/rust-cache@v2
with:
workspaces: './src-tauri -> target'
- name: Install Linux dependencies
if: matrix.platform == 'ubuntu-latest'
run: |
sudo apt-get update
sudo apt-get install -y \
build-essential \
curl \
wget \
file \
pkg-config \
libglib2.0-dev \
libwebkit2gtk-4.1-dev \
libssl-dev \
libayatana-appindicator3-dev \
librsvg2-dev \
patchelf
# Verify pkg-config can find required libraries
pkg-config --modversion glib-2.0 || echo "ERROR: glib-2.0 not found"
pkg-config --modversion gobject-2.0 || echo "ERROR: gobject-2.0 not found"
pkg-config --modversion gio-2.0 || echo "ERROR: gio-2.0 not found"
- name: Set PKG_CONFIG_PATH for Linux
if: matrix.platform == 'ubuntu-latest'
run: |
echo "PKG_CONFIG_PATH=/usr/lib/x86_64-linux-gnu/pkgconfig:/usr/lib/pkgconfig:/usr/share/pkgconfig:${PKG_CONFIG_PATH}" >> $GITHUB_ENV
- name: Install frontend dependencies
run: bun install --frozen-lockfile
- name: Set build environment variables
shell: bash
run: |
echo "GIT_COMMIT_HASH=$(git rev-parse --short HEAD)" >> $GITHUB_ENV
echo "GIT_BRANCH=${GITHUB_REF_NAME}" >> $GITHUB_ENV
echo "BUILD_TIMESTAMP=$(date -u +"%Y-%m-%d %H:%M:%S UTC")" >> $GITHUB_ENV
- name: Build Tauri App
uses: tauri-apps/tauri-action@v0
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
TAURI_SIGNING_PRIVATE_KEY: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY }}
TAURI_SIGNING_PRIVATE_KEY_PASSWORD: ${{ secrets.TAURI_SIGNING_PRIVATE_KEY_PASSWORD }}
GIT_COMMIT_HASH: ${{ env.GIT_COMMIT_HASH }}
GIT_BRANCH: ${{ env.GIT_BRANCH }}
BUILD_TIMESTAMP: ${{ env.BUILD_TIMESTAMP }}
with:
tagName: v__VERSION__
releaseName: 'OBS Sync v__VERSION__'
releaseBody: |
## What's Changed
- Auto-generated release from GitHub Actions
- Built from commit: ${{ env.GIT_COMMIT_HASH }}
- Branch: ${{ env.GIT_BRANCH }}
- Build time: ${{ env.BUILD_TIMESTAMP }}
## Download
Select the appropriate installer for your platform:
- **Windows**: `.msi` file
- **macOS**: `.dmg` file
- **Linux**: `.AppImage` or `.deb` file
## Auto-Update
This release supports automatic updates. The app will check for updates on startup and you can manually check via the system tray menu.
See the assets below to download and install this version.
releaseDraft: false
includeUpdaterJson: true
args: ${{ matrix.args }}