Skip to content

systems packaging and release

Douwe de Vries edited this page Jul 1, 2026 · 1 revision

Packaging and release

Active contributors: Douwe de Vries

Purpose

Packaging and release turn the local Tauri app into desktop bundles with bundled k6 and licensing notices. The main files are src-tauri/tauri.conf.json, .github/workflows/release.yml, and scripts under scripts/.

Directory layout

package.json
src-tauri/tauri.conf.json
src-tauri/Cargo.toml
src-tauri/bin/
scripts/install-k6.sh
scripts/build_apt_repository.py
scripts/install-apt-repo.sh
.github/workflows/ci.yml
.github/workflows/release.yml

Key abstractions

Abstraction File Description
npm scripts package.json Build, lint, test, k6 install, and Tauri commands
Tauri bundle resources src-tauri/tauri.conf.json k6 binaries and license files included in desktop bundles
k6 installer scripts/install-k6.sh Downloads and verifies the bundled k6 binary
Release workflow .github/workflows/release.yml Verifies, builds, signs, publishes, and deploys release assets
APT builder scripts/build_apt_repository.py Generates signed APT repository metadata and setup package

How it works

graph LR
    Tag[v* tag or dispatch] --> Verify[Verify job]
    Verify --> Matrix[Linux/macOS matrix]
    Matrix --> Tauri[Tauri bundles]
    Matrix --> MacSign[macOS signing]
    Matrix --> Apt[APT repository]
    Tauri --> Release[GitHub release]
    Apt --> Pages[GitHub Pages]
Loading

CI in .github/workflows/ci.yml installs Tauri Linux dependencies, Node.js 22, Rust 1.88.0, npm dependencies, and the bundled k6 binary before linting, typechecking, testing, building, and running Rust checks.

The release workflow verifies first, then builds Linux and macOS bundles. macOS jobs validate signing secrets, import a Developer ID certificate, write App Store Connect credentials, sign the bundled k6 binary, and publish DMGs. The Linux path builds a signed APT repository and setup assets.

Integration points

Runtime binary resolution is documented in k6 runtime. Dependency lists are documented in Dependencies.

Entry points for modification

Change bundle metadata or resources in src-tauri/tauri.conf.json. Change install behavior in scripts/install-k6.sh. Change release publishing in .github/workflows/release.yml.

Key source files

File Purpose
src-tauri/tauri.conf.json Tauri app, CSP, bundle, and resource settings
.github/workflows/ci.yml Pull request and main branch validation
.github/workflows/release.yml Tagged release publishing
scripts/install-k6.sh k6 binary download and checksum verification
scripts/build_apt_repository.py APT repository generation

Clone this wiki locally