/turbo-tauri

🚀🦀 A customizable Github Actions workflow for building Tauri applications with Turborepo

MIT LicenseMIT

🚀🦀 Turbo Tauri

This project belongs to Project Graph, a next-generation node diagram drawing tool. If you need some examples of Turbo Tauri, please check the .github/workflows directory of Project Graph.

GIVE ME A STAR

Important

This workflow is still in beta. Please report any issues you encounter to the issue tracker.

Important

We'll never support iOS!

Introduction

Turbo Tauri is a GitHub Actions workflow designed to automate the building and releasing of Tauri applications. This workflow supports multiple platforms including Linux, Windows, macOS, and Android, offering lots of customization options.

Features

  • ⚡ Remote Cache support for faster builds (Powered by Turbo)
  • 📔 Automatically creates GitHub releases
  • 🔨 Builds the frontend interface
  • 🦀 Builds and releases Tauri applications
  • ⬆️ Generates updater JSON files (Only supports Linux (for now))
  • 📦 Updates AUR package versions

Usage

To use the Turbo Tauri workflow, add the following configuration to your GitHub repository:

# .github/workflows/build.yml
name: Build
on:
  push:
    branches:
      - master
jobs:
  build:
    uses: LiRenTech/turbo-tauri/.github/workflows/turbo-tauri.yml@master
    permissions:
      contents: write # To create releases
    with:
      # See below
      android_key_path:
      app_root:
      app_version:
      app_version_android:
      aur_key_algorithm:
      aur_package_name:
      delete_release:
      prerelease:
      release_name:
      release_notes:
      release_tag:
      task_build:
      task_build_android:
      turbo_team:
    secrets:
      # See below
      ANDROID_KEY_ALIAS:
      ANDROID_KEYSTORE:
      ANDROID_KEYSTORE_PASSWORD:
      AUR_SSH_PRIVATE_KEY:
      BUILD_ENV:
      TAURI_SIGNING_PRIVATE_KEY:
      TAURI_SIGNING_PRIVATE_KEY_PASSWORD:
      TURBO_TOKEN:

Workflow Parameters

Parameter Description Required Default
app_root The root directory of the application. Yes .
app_version The version of the application. Yes "0.0.0"
app_version_android The application version for Android, CANNOT be 0.0.0 No "0.0.1"
release_name The name of the release. Yes "Release"
release_notes The release notes. No ""
release_tag The tag used for the release. Yes "v0.0.0"
prerelease Whether to mark the release as a prerelease. No false
delete_release Whether to delete the release. No true
turbo_team The team used for Turbo. Yes N/A
android_key_path The path to the Android key file, relative to app_root No "upload.jks"
aur_package_name The name of the AUR package. No ""
aur_key_algorithm The algorithm used for the AUR key. No "ed25519"
task_build The task to run for building the app. No "tauri:build"
task_build_android The task to run for building the app for Android. No "tauri:build:android"

Secrets

Secret Description Required Default
TURBO_TOKEN Token used to enable Turbo remote caching. No N/A
TAURI_SIGNING_PRIVATE_KEY Private key used to sign application binaries for updater support. No N/A
TAURI_SIGNING_PRIVATE_KEY_PASSWORD Password for the signing key. No N/A
ANDROID_KEYSTORE Base64 of jks file for APK signing. No N/A
ANDROID_KEYSTORE_PASSWORD Password for the keystore. No N/A
ANDROID_KEY_ALIAS Alias for the key. No N/A
BUILD_ENV Environment variables to pass to tauri build. Format: key1=value1\\nkey2=value2\\n.... No N/A
AUR_SSH_PRIVATE_KEY SSH private key for AUR publishing. No N/A

Workflow Steps

  1. Create Release: Automatically creates a GitHub release.
  2. Build Frontend: Builds the frontend interface using pnpm and Node.js.
  3. Publish Tauri: Builds and releases Tauri applications for various platforms.
  4. Generate Updater JSON: Generates a JSON file containing version information and release notes.
  5. Bump AUR Version: Updates the version information of the AUR package.

Notes

  • Ensure your GitHub repository contains the source code and configuration files for your Tauri application.
  • Adjust the parameters and steps in the workflow according to your application's requirements.

Contribution

If you have any suggestions or feature requests, please submit an Issue or Pull Request.