Skip to content

add tauri deploy workflow - #1116

Merged
Micheal Parks (micheal-parks) merged 3 commits into
mainfrom
tauri-app-workflows
Oct 21, 2026
Merged

Micheal Parks (micheal-parks) merged 3 commits into
mainfrom
tauri-app-workflows

Conversation

@DTCurrie

Copy link
Copy Markdown
Member

Attaches desktop app bundles for macOS, Linux and Windows to every GitHub release, so the Viam CLI has a fixed place and a fixed name pattern to download the visualizer from. This is phase 4 of the CLI launch effort, and phase 5 adds the CLI-side download into ~/.viam/visualizer/.

Desktop shell

  • tauri-release.yml is a workflow_call and workflow_dispatch workflow with a four-leg matrix: aarch64-apple-darwin, x86_64-apple-darwin, x86_64-unknown-linux-gnu on ubuntu-22.04, and x86_64-pc-windows-msvc. Each leg runs tauri-apps/tauri-action@v0 against the existing v<version> release with releaseDraft: false, so it never drafts a second release. main.yml calls it after deploy-and-publish when published == 'true', next to bump-app-catalog. The dispatch form takes a tag to backfill or retry a release without a new npm publish.
  • Asset names follow viam-visualizer-[version]-[platform]-[arch][setup][ext] through releaseAssetNamePattern. Every leg passes --target <triple>, because tauri-action takes [arch] from the triple when one is given and from Node's process.arch otherwise. The result is darwin | linux | windows and aarch64 | x86_64, which the CLI can derive from GOOS and GOARCH.
  • A step on the macOS legs tars Viam Visualizer.app as viam-visualizer-<version>-darwin-<arch>.app.tar.gz and uploads it with gh release upload. That tarball is what the CLI will install. The Windows leg sets uploadPlainBinary so the portable .exe lands next to the NSIS -setup.exe.
  • A final checksums job downloads every viam-visualizer-* asset and uploads checksums.txt in sha256sum format.
  • tauri-check.yml runs on PRs that touch src-tauri/**, package.json, pnpm-lock.yaml or itself: cargo fmt --check, cargo clippy -D warnings, cargo test, then tauri build --debug --bundles app on macOS.
  • tauri.conf.json sets bundle.macOS.signingIdentity to "-", so the bundle is codesigned ad-hoc rather than only linker-signed.
  • README documents the asset names and the Gatekeeper right-click for ad-hoc builds.

Why?

Why a tar step instead of Tauri's .app.tar.gz updater artifact?

Tauri only emits .app.tar.gz with createUpdaterArtifacts, which requires an updater signing key and ships .sig files we have no consumer for. The CLI owns install and update, so a plain tarball under the shared name pattern is enough.

Why --target on every leg when each runner builds its host anyway?

Without it, tauri-action names the arch arm64 or x64. With it, the names are aarch64 and x86_64 on every platform, and the CLI can build the asset name from (version, GOOS, GOARCH) without listing the release.

Why ad-hoc signing?

There is no Apple Developer ID in the repo secrets yet. Ad-hoc signing keeps the bundle runnable on Apple Silicon after a right-click Open. Swapping in a certificate later is a secret plus two inputs on the macOS legs.

Why a separate tauri-check.yml instead of a job in pullrequest.yml?

The path filter belongs at the on: level so the macOS runner never spins up for a PR that does not touch the desktop shell. pullrequest.yml runs on every PR.

Testing

Ran actionlint over the three workflow files and pnpm lint. Ran the tarball and checksum shell steps locally against the current macOS bundle: they produced viam-visualizer-2.8.2-darwin-aarch64.app.tar.gz and a checksums.txt with one line per asset.

Not verified: a CI run of the release matrix. After merge, a workflow_dispatch of tauri-release.yml with tag: v2.8.2 backfills the current release and exercises all four legs, the tarball step and the checksums job before the next changesets publish depends on them.

@DTCurrie
Devin T. Currie (DTCurrie) added this pull request to stack #1115 October 13, 2026 23:41
@changeset-bot

changeset-bot Bot commented Oct 13, 2026 •

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: e9326eb

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@github-actions

github-actions Bot commented Oct 14, 2026 •

Copy link
Copy Markdown
Contributor
PR Preview Action v1.8.1
Preview removed because the pull request was closed.
2026-10-21 20:58 UTC

@DTCurrie
Devin T. Currie (DTCurrie) force-pushed the tauri-app-workflows branch 4 times, most recently from 77d0aa4 to b28bf98 Compare October 15, 2026 19:19
@DTCurrie
Devin T. Currie (DTCurrie) force-pushed the tauri-app-workflows branch 3 times, most recently from 958b4fc to 6cf9cf5 Compare October 21, 2026 16:18
Base automatically changed from launch-app-with-config to main October 21, 2026 20:22
@micheal-parks
Micheal Parks (micheal-parks) merged commit 91589d0 into main Oct 21, 2026
8 checks passed
@micheal-parks
Micheal Parks (micheal-parks) deleted the tauri-app-workflows branch October 21, 2026 20:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants