Skip to content

Release build & publish (unsigned Windows): tag gate pass → tauri bundle → prerelease GitHub Release #115

Description

@Zlyzart

Summary

Sibling of #60 (the split). #60 adds the tag-triggered test job that runs the full CI surface on a v* push and auto-files a failure issue on red. This issue adds the release job (needs: test) to the same .github/workflows/release.yml: on a green tag, build the Windows desktop bundle and publish a prerelease GitHub Release with the installer attached.

Tauri bundling is currently disabled (src-tauri/tauri.conf.jsonbundle.active = false); enabling it for the release build only — without flipping the global flag — is part of this work. Versions are currently 0.1.0 in both src-tauri/tauri.conf.json and src-tauri/Cargo.toml.

Behaviour (release job, needs: test)

  • Version check (fail fast): assert the pushed tag (stripped of leading v) equals the version in src-tauri/tauri.conf.json and the package version in src-tauri/Cargo.toml. Fail the job on mismatch so a mistagged release can't ship.
  • Build the bundle: produce the Windows installer via tauri build. Because bundle.active is false for dev/CI, enable bundling for the release build only — e.g. a tauri build --config overlay or --bundles msi,nsis — without flipping the global flag (keeps the PR Desktop app gate an unbundled compile).
  • Publish: create a GitHub Release marked prerelease with auto-generated notes (merged PRs since the previous tag) and the .msi/.exe attached. Job needs contents: write.
  • Unsigned for now: ship the installer unsigned (users see a SmartScreen warning). Code signing is a separate blocked follow-up (below).

Acceptance criteria

Out of scope / follow-ups

  • Code signing (blocked): sign the installer once a code-signing cert is obtained. Track as type:feature + area:ci + status:blocked. Leading OSS option: SignPath.io (free for OSS, GH Actions integration, HSM key storage); alternative Azure Trusted Signing (~$10/mo).
  • macOS / Linux release targets (Windows-only for now).
  • Automated version bumping (this pipeline verifies, it does not bump).

File map

  • Touch: .github/workflows/release.yml — add the release job (needs: test).
  • Touch: src-tauri/tauri.conf.json — release-bundling config (overlay or flag), not the global active.

Depends on #60.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:ciGitHub Actions, Dependabot, and installer build pipelines.area:desktopTauri desktop shell: src-tauri/.complexity:opusLarge; multi-session, needs a plan or design phase first.priority:mediumMeaningful improvement; normal queue.status:refinedAgent-refined (acceptance criteria + proposed complexity); awaiting a human's go.type:featureNew user-facing capability.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions