Skip to content

feat: add multi-channel distribution via GoReleaser#1247

Open
eleboucher wants to merge 3 commits into
SableClient:devfrom
eleboucher:feat/add-distribution-channels
Open

feat: add multi-channel distribution via GoReleaser#1247
eleboucher wants to merge 3 commits into
SableClient:devfrom
eleboucher:feat/add-distribution-channels

Conversation

@eleboucher

@eleboucher eleboucher commented Jul 23, 2026

Copy link
Copy Markdown
Contributor

Description

GoReleaser now owns Linux packaging.

  • .goreleaser.yaml builds the CEF binary with the Rust builder and produces deb, rpm and archlinux packages, plus snap and the AUR sable-bin package on tagged releases. Nightlies run release --snapshot, which packages without publishing, and the workflow uploads those assets. GoReleaser's own nightly pipe is Pro-only.
  • nfpm.yaml is deleted. The nfpms: section replaces it, so the per-format dependency list lives in one place.
  • scripts/cef/package.sh is trimmed to AppImage only. There is no GoReleaser pipe for AppImage, and it is the only Linux format the Tauri updater can update in place. It shares staging with GoReleaser through the new scripts/cef/stage.sh.
  • packaging/ holds the AUR sable-nightly-bin PKGBUILD and .install, plus the deb/rpm postinstall that refreshes the icon and desktop caches.
  • scripts/obtainium-generate.js emits obtainium.json for one-tap Android sideload.
  • Linux moves out of the build matrix into its own linux job, so the CEF binary is built once.

Secrets: AUR_KEY, SNAPCRAFT_STORE_CREDENTIALS.

Channels from the first version of this PR that are no longer included:

  • Homebrew Cask, winget and Scoop need macOS or Windows artifacts. Tauri builds those, and GoReleaser OSS cannot import pre-built binaries because builder: prebuilt is Pro-only. They fit better as separate steps, for example winget-releaser and a cask file pushed to the tap.
  • Flatpak only produced a .flatpak bundle and never submitted to Flathub. That needs a manifest in a separate flathub repo.

Type of change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • This change requires a documentation update

Checklist:

  • My code follows the style guidelines of this project
  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings

AI disclosure:

  • Partially AI assisted (clarify which code was AI assisted and briefly explain what it does).
  • Fully AI generated (explain what all the generated code does in moderate detail).

@eleboucher
eleboucher requested review from 7w1 and hazre as code owners July 23, 2026 12:27
@eleboucher
eleboucher force-pushed the feat/add-distribution-channels branch from e6c39ae to d8ff704 Compare July 23, 2026 13:04
@7w1 7w1 added the internal label Jul 23, 2026
@eleboucher
eleboucher force-pushed the feat/add-distribution-channels branch from d8ff704 to 174c324 Compare July 23, 2026 17:36
@hazre
hazre force-pushed the hazre/feat/add-mise-support branch from 2d3b972 to eb27198 Compare July 23, 2026 17:51

@hazre hazre left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

also merge conflicts :/

Comment thread .github/workflows/tauri-build.yml Outdated
Comment thread .github/workflows/tauri-build.yml Outdated
Comment thread .github/workflows/tauri-build.yml Outdated
Comment thread packaging/flatpak/moe.sable.Sable.metainfo.xml Outdated
Comment thread .goreleaser.yaml Outdated
Comment thread .goreleaser.yaml Outdated
@hazre

hazre commented Jul 23, 2026

Copy link
Copy Markdown
Member

Another thing is. I don't like that tauri ci stuff is massive monolith file. can we split it up into multiple workflows/actions? and also its hella messey, we should move any scripting stuff into dedicated js scripts under .github/workflows/scripts to abstract away the complexity.

@hazre

hazre commented Jul 23, 2026

Copy link
Copy Markdown
Member

also ideally sable and nightly setup are identical and we just have a thing that at start of the workflow detects if its a nightly or sable release. to avoid DRY

@eleboucher

eleboucher commented Jul 23, 2026

Copy link
Copy Markdown
Contributor Author

Line-level comments are addressed. The monolith split and script extraction are out of scope here, worth a follow-up.

Comment thread .github/workflows/tauri-build.yml Outdated
@7w1
7w1 force-pushed the hazre/feat/add-mise-support branch from eb27198 to f6c5fec Compare July 24, 2026 02:53
@eleboucher
eleboucher requested a review from hazre July 24, 2026 06:34
Comment thread .github/workflows/tauri-build.yml Outdated
- name: Download APK from release
shell: bash
run: |
curl -fsSL "https://github.com/${{ github.repository }}/releases/download/${TAG}/Sable-${VERSION}-android-universal.apk" \

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also use artifact pattern here.

chmod 600 ~/.ssh/aur_key
ssh-keyscan -t ed25519 aur.archlinux.org >> ~/.ssh/known_hosts

git clone "ssh://aur@aur.archlinux.org/sable-nightly-bin.git" aur-repo

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does this repo exist? How does it work?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i guess we will need to create it ourselves

@eleboucher eleboucher changed the title feat: add multi-channel distribution via GoReleaser + nfpm feat: add multi-channel distribution via GoReleaser Jul 24, 2026
@eleboucher
eleboucher force-pushed the feat/add-distribution-channels branch from 0f34ab2 to 8769808 Compare July 24, 2026 21:16
@7w1
7w1 force-pushed the hazre/feat/add-mise-support branch from f6c5fec to 43a1e4c Compare July 25, 2026 00:52
@eleboucher
eleboucher force-pushed the feat/add-distribution-channels branch from 8769808 to b388a5e Compare July 25, 2026 09:05
@eleboucher
eleboucher changed the base branch from hazre/feat/add-mise-support to dev July 25, 2026 09:08
@eleboucher
eleboucher force-pushed the feat/add-distribution-channels branch 5 times, most recently from 3ab8270 to d0671bd Compare July 25, 2026 09:38
@hazre

hazre commented Jul 25, 2026

Copy link
Copy Markdown
Member

conflicts go brrr

@eleboucher
eleboucher force-pushed the feat/add-distribution-channels branch from d0671bd to 418228e Compare July 25, 2026 13:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants