[Tauri #03] Tauri v2 + GitHub Actions: 全OSビルドを通すための完全ガイド
はじめに
前回の記事「#02 デスクトップ時計ウィジェットの作成」では、Tauriを使って時計ウィジェットを実装しました。
[Tauri #02] Astroで作ったアナログ時計を完全透過デスクトップガジェット化 // PROTOCOL.LAIN
Web技術でデスクトップアプリを作るTauriの実践編。Astroで作った時計を移植し、背景の完全透過、ドラッグ移動、スライダーによるウィンドウのリサイズなど、ガジェット化に必要な設定を解説します。
lain-lab.com今回は、完成したアプリをWindows、macOS、Linux (Ubuntu/Debian) の3つのOS向けに配布できるよう、GitHub Actionsを利用して自動ビルド(CI/CD)環境を構築します。
Tauri v1からv2への移行に伴い、依存ライブラリのバージョンや設定周りでつまずきやすいポイントがいくつかあります。本記事では、それらのエラーを回避し、一括でリリースを完了させるための完全な設定手順を解説します。
YouTube
Lain Clock - Desktop Widget (Open Source) #tauri #rust
Tauri v2 + Rustで、lainの世界観をデスクトップに再現する時計ウィジェット「Lain Clock」を開発しました。軽量・高速・透過デザイン。Windows / Mac / Linux (Ubuntu) 全OS対応のインストーラーをGitHubにてオープンソースで無料配布中です。📥 ダウンロードは...
www.youtube.comスクリーンショット(ビルド成功)
1. ビルド前の重要確認事項(よくあるエラーの原因)
GitHub Actionsでビルドを回す前に、src-tauri/tauri.conf.json の設定を確認してください。ここで設定が間違っていると、ビルドの中盤で必ずエラーになります。
識別子 (Identifier) のフォーマット
identifier は必ず ドット区切り(逆ドメイン形式) にしてください。ハイフン(-)が含まれていると、特にmacOSのビルドでパッケージングに失敗することがあります。
// ❌ 失敗する例
"identifier": "com.lain-clock",
// ⭕️ 成功する例
"identifier": "com.lain.clock",
アイコンの配置
Tauriはビルド時にインストーラー用のアイコンを生成・バンドルします。アイコンファイルは必ず src-tauri/icons ディレクトリ内に配置し、tauri.conf.json で正しく参照されている必要があります。ファイル名の大文字・小文字(例: icon.icns と Icon.icns)の違いでもエラーになるため注意してください。
2. GitHub Actions 設定ファイル (release.yml)
リポジトリのルートに .github/workflows/release.yml というファイルを作成し、以下の内容を記述します。
この設定は、Gitで v から始まるタグ(例: v0.1.0)をプッシュした際に自動で走り、全OSのインストーラーを作成してGitHub Releasesにドラフトとしてアップロードする構成になっています。
name: "release"
on:
push:
tags:
- 'v*'
jobs:
publish:
permissions:
contents: write
strategy:
fail-fast: false
matrix:
include:
- platform: 'macos-latest'
- platform: 'windows-latest'
- platform: 'ubuntu-22.04'
runs-on: ${{ matrix.platform }}
steps:
- uses: actions/checkout@v4
- name: setup node
uses: actions/setup-node@v4
with:
node-version: lts/*
- name: install Rust stable
uses: dtolnay/rust-toolchain@stable
with:
targets: x86_64-unknown-linux-gnu
# Linux (Ubuntu) 環境構築用の依存ライブラリインストール (Tauri v2対応版)
- name: install dependencies (ubuntu only)
if: matrix.platform == 'ubuntu-22.04'
run: |
sudo apt-get update
sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf libjavascriptcoregtk-4.1-dev
- name: install frontend dependencies
run: npm install
- name: build tauri
uses: tauri-apps/tauri-action@v0
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tagName: v__VERSION__
releaseName: "Lain Clock v__VERSION__"
releaseDraft: true
prerelease: false
設定のポイント (Tauri v2特有の注意点)
Ubuntu(Linux)向けの依存ライブラリの指定に注意が必要です。Tauri v1の古い情報では libwebkit2gtk-4.0-dev となっていることが多いですが、Tauri v2では 4.1-dev 系(libwebkit2gtk-4.1-dev, libjavascriptcoregtk-4.1-dev)が要求されるケースが多く、ここが合っていないとLinuxビルドのみがコケる原因となります。
3. デプロイの実行
コードをコミットし、バージョンタグを打ってプッシュするだけで、ビルドが開始されます。
git add .
git commit -m "chore: prepare release"
git push origin main
# リリースタグを作成してプッシュ
git tag v0.1.0
git push origin v0.1.0
GitHubリポジトリの「Actions」タブを開くと、3つのOS(macOS, Windows, Ubuntu)でのビルドが並行して進んでいるのが確認できます。完了までおおよそ10分〜15分程度かかります。
すべてが「Success(緑色のチェック)」になれば成功です。リポジトリの「Releases」ページに、各OS向けのインストーラー(.dmg, .msi, .deb など)が自動生成されています。
まとめ
手元のローカル環境で都度ビルドを行うのは手間ですが、一度GitHub Actionsのワークフローを整備してしまえば、今後はタグをプッシュするだけで全OS向けの配布ファイルが自動で生成されます。
エラーが出た際は、ログの下部にある赤文字のエラーメッセージを確認し、パスのズレやライブラリの不足がないか見直してみてください。
COMM_LOG: tauri-03-github-actions-auto-build