Skip to content

deployment

Douwe de Vries edited this page Jul 2, 2026 · 2 revisions

Deployment

CSV Align releases are GitHub Releases with desktop artifacts and Linux repository assets. The release workflow reuses CI-built Tauri bundles, validates metadata, publishes assets, and builds a signed APT repository.

Release inputs

Version metadata must stay aligned across Cargo.toml, Cargo.lock, src-tauri/Cargo.toml, src-tauri/Cargo.lock, src-tauri/tauri.conf.json, src-tauri/appstream/com.csvalign.desktop.metainfo.xml, frontend/package.json, and frontend/package-lock.json. scripts/check_release_metadata.py enforces this, including the CHANGELOG.md heading format.

CI and release flow

graph TD
    Push[Push to main] --> CI[.github/workflows/ci.yml]
    CI --> Rust[Rust tests, fmt, clippy]
    CI --> Frontend[frontend tests, lint, build]
    CI --> Tauri[Tauri tests and Linux build]
    CI --> Artifacts[frontend dist and Linux bundle artifacts]
    Tag[Push v* tag] --> Release[.github/workflows/release.yml]
    Release --> Validate[metadata and changelog]
    Validate --> Download[download CI artifacts]
    Download --> Assets[upload release assets]
    Assets --> Apt[build and publish APT repository]
Loading

Packaging surfaces

Area Files
Tauri bundle config src-tauri/tauri.conf.json
AppStream metadata src-tauri/appstream/com.csvalign.desktop.metainfo.xml
Debian metadata normalization scripts/normalize_linux_deb_desktop_id.py
Linux metadata validation scripts/validate_linux_deb_metadata.py, tests/linux_package_metadata_integration.rs
RPM packaging scripts/build_rpm_package.py
APT repository scripts/build_apt_repository.py, scripts/install-apt-repo.sh
Release docs docs/releasing.md

Secrets and trust boundaries

Release signing uses GitHub Actions secrets for Apple notarization, Debian package signing, and APT repository signing. The workflows in .github/workflows/release.yml verify signatures and metadata before publishing. Do not print these values in logs or move signing logic into normal app code.

Key source files

File Purpose
.github/workflows/ci.yml Pull request and main branch validation.
.github/workflows/release.yml Tagged release publishing.
docs/releasing.md Maintainer release runbook.
scripts/check_release_metadata.py Version/changelog validator.
scripts/build_apt_repository.py APT repository builder.

See tooling for local commands.

Clone this wiki locally