-
Notifications
You must be signed in to change notification settings - Fork 0
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.
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.
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]
| 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 |
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.
| 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.