Repository navigation
add tauri deploy workflow - #1116
Merged
Merged
Conversation
Devin T. Currie (DTCurrie)
added this pull request to stack #1115
October 13, 2026 23:41
|
Devin T. Currie (DTCurrie)
force-pushed
the
tauri-app-workflows
branch
from
October 14, 2026 00:36
abba5ff to
c1be281
Compare
Contributor
|
Devin T. Currie (DTCurrie)
force-pushed
the
tauri-app-workflows
branch
4 times, most recently
from
October 15, 2026 19:19
77d0aa4 to
b28bf98
Compare
Devin T. Currie (DTCurrie)
force-pushed
the
tauri-app-workflows
branch
3 times, most recently
from
October 21, 2026 16:18
958b4fc to
6cf9cf5
Compare
Micheal Parks (micheal-parks)
force-pushed
the
tauri-app-workflows
branch
from
October 21, 2026 20:22
6cf9cf5 to
ddebea7
Compare
Micheal Parks (micheal-parks)
approved these changes
Oct 21, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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.ymlis aworkflow_callandworkflow_dispatchworkflow with a four-leg matrix:aarch64-apple-darwin,x86_64-apple-darwin,x86_64-unknown-linux-gnuonubuntu-22.04, andx86_64-pc-windows-msvc. Each leg runstauri-apps/tauri-action@v0against the existingv<version>release withreleaseDraft: false, so it never drafts a second release.main.ymlcalls it afterdeploy-and-publishwhenpublished == 'true', next tobump-app-catalog. The dispatch form takes atagto backfill or retry a release without a new npm publish.viam-visualizer-[version]-[platform]-[arch][setup][ext]throughreleaseAssetNamePattern. Every leg passes--target <triple>, because tauri-action takes[arch]from the triple when one is given and from Node'sprocess.archotherwise. The result isdarwin | linux | windowsandaarch64 | x86_64, which the CLI can derive fromGOOSandGOARCH.Viam Visualizer.appasviam-visualizer-<version>-darwin-<arch>.app.tar.gzand uploads it withgh release upload. That tarball is what the CLI will install. The Windows leg setsuploadPlainBinaryso the portable.exelands next to the NSIS-setup.exe.checksumsjob downloads everyviam-visualizer-*asset and uploadschecksums.txtinsha256sumformat.tauri-check.ymlruns on PRs that touchsrc-tauri/**,package.json,pnpm-lock.yamlor itself:cargo fmt --check,cargo clippy -D warnings,cargo test, thentauri build --debug --bundles appon macOS.tauri.conf.jsonsetsbundle.macOS.signingIdentityto"-", so the bundle is codesigned ad-hoc rather than only linker-signed.Why?
Why a tar step instead of Tauri's
.app.tar.gzupdater artifact?Tauri only emits
.app.tar.gzwithcreateUpdaterArtifacts, which requires an updater signing key and ships.sigfiles we have no consumer for. The CLI owns install and update, so a plain tarball under the shared name pattern is enough.Why
--targeton every leg when each runner builds its host anyway?Without it, tauri-action names the arch
arm64orx64. With it, the names areaarch64andx86_64on 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.ymlinstead of a job inpullrequest.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.ymlruns on every PR.Testing
Ran
actionlintover the three workflow files andpnpm lint. Ran the tarball and checksum shell steps locally against the current macOS bundle: they producedviam-visualizer-2.8.2-darwin-aarch64.app.tar.gzand achecksums.txtwith one line per asset.Not verified: a CI run of the release matrix. After merge, a
workflow_dispatchoftauri-release.ymlwithtag: v2.8.2backfills the current release and exercises all four legs, the tarball step and the checksums job before the next changesets publish depends on them.