Build Guide - beqare/RustTube GitHub Wiki

Build Guide

This page explains how to build RustTube and how the build workflow is set up.

Build Scripts

RustTube uses:

  • scripts/build.ps1
  • scripts/build.bat

The batch file is only a small launcher for the PowerShell script.

Main Build Options

When you run the build script, you can choose between:

  • 0 = Check GitHub CLI
  • 1 = Build app package
  • 2 = Build app package + installer
  • 3 = Build installer only

Option Details

0. Check GitHub CLI

This checks whether:

  • GitHub CLI (gh) is installed
  • GitHub CLI authentication is working

Use this if you want to publish GitHub releases from the script.

1. Build App Package

This option:

  • increases the patch version in Cargo.toml
  • builds the app in release mode
  • creates the packaged output in:
dist\RustTube

2. Build App Package + Installer

This option:

  • increases the patch version in Cargo.toml
  • builds the app in release mode
  • creates the packaged app output
  • builds the installer with Inno Setup
  • optionally asks whether a GitHub release should be created

3. Build Installer Only

This option:

  • does not bump the version
  • does not rebuild the app
  • only creates the installer from the current packaged output

Use this if the app was already built and you only want to regenerate RustTube-Setup.exe.

Running the Build Script

From PowerShell

.\scripts\build.ps1

You can also pass a mode directly:

.\scripts\build.ps1 1
.\scripts\build.ps1 2
.\scripts\build.ps1 3

From Batch

scripts\build.bat

Version Handling

When using build mode 1 or 2, RustTube automatically increases the patch version in Cargo.toml.

Example:

  • 0.1.0 -> 0.1.1
  • 0.1.1 -> 0.1.2

This version is also used for:

  • the app build
  • the window title
  • the installer metadata

Build Output

App Package

The packaged app output is written to:

dist\RustTube

Installer

The installer output is written to:

dist\installer

Installer file name:

RustTube-Setup.exe

GitHub Release Support

After an installer build, the script can optionally:

  • create a GitHub release
  • upload RustTube-Setup.exe

This requires:

  • GitHub CLI installed
  • GitHub CLI authenticated
  • access to the target GitHub repository

Notes

  • The installer is built with Inno Setup
  • The app itself is built with Cargo in release mode
  • Build mode 3 is useful if only installer metadata or packaging changed