[Tauri #03] Tauri v2 + GitHub Actions: 全OSビルドを通すための完全ガイド

[Tauri #03] Tauri v2 + GitHub Actions: 全OSビルドを通すための完全ガイド

はじめに

前回の記事「#02 デスクトップ時計ウィジェットの作成」では、Tauriを使って時計ウィジェットを実装しました。

今回は、完成したアプリをWindows、macOS、Linux (Ubuntu/Debian) の3つのOS向けに配布できるよう、GitHub Actionsを利用して自動ビルド(CI/CD)環境を構築します。

Tauri v1からv2への移行に伴い、依存ライブラリのバージョンや設定周りでつまずきやすいポイントがいくつかあります。本記事では、それらのエラーを回避し、一括でリリースを完了させるための完全な設定手順を解説します。

YouTube

スクリーンショット(ビルド成功)

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.icnsIcon.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

NO DATA FOUND IN THIS SECTOR.