fix: clarify macos release artifact names

This commit is contained in:
lucaronin
2026-04-26 14:29:47 +02:00
parent 8406042db1
commit 1136c1948e
5 changed files with 45 additions and 11 deletions

View File

@@ -503,6 +503,8 @@ jobs:
run: |
normalize_macos_artifacts() {
local arch="$1"
local normalized_updater="$2"
local normalized_dmg="$3"
local updater_dir="updater-${arch}"
local updater_file
updater_file=$(find "$updater_dir" -maxdepth 1 -name "*.app.tar.gz" -print -quit)
@@ -517,7 +519,6 @@ jobs:
return 1
fi
local normalized_updater="${updater_dir}/Tolaria_${arch}.app.tar.gz"
local normalized_sig="${normalized_updater}.sig"
if [ "$updater_file" != "$normalized_updater" ]; then
mv "$updater_file" "$normalized_updater"
@@ -534,14 +535,17 @@ jobs:
return 1
fi
local normalized_dmg="${dmg_dir}/Tolaria_${arch}.dmg"
if [ "$dmg_file" != "$normalized_dmg" ]; then
mv "$dmg_file" "$normalized_dmg"
fi
}
normalize_macos_artifacts aarch64
normalize_macos_artifacts x86_64
normalize_macos_artifacts aarch64 \
"updater-aarch64/Tolaria_${{ needs.version.outputs.version }}_macOS_Silicon.app.tar.gz" \
"dmg-aarch64/Tolaria_${{ needs.version.outputs.version }}_macOS_Silicon.dmg"
normalize_macos_artifacts x86_64 \
"updater-x86_64/Tolaria_${{ needs.version.outputs.version }}_macOS_Intel.app.tar.gz" \
"dmg-x86_64/Tolaria_${{ needs.version.outputs.version }}_macOS_Intel.dmg"
- name: Generate release notes
run: |

View File

@@ -557,6 +557,7 @@ jobs:
run: |
normalize_updater() {
local arch="$1"
local normalized_updater="$2"
local artifact_dir="updater-${arch}"
local updater_file
updater_file=$(find "$artifact_dir" -maxdepth 1 -name "*.app.tar.gz" -print -quit)
@@ -571,7 +572,6 @@ jobs:
return 1
fi
local normalized_updater="${artifact_dir}/Tolaria_${arch}.app.tar.gz"
local normalized_sig="${normalized_updater}.sig"
if [ "$updater_file" != "$normalized_updater" ]; then
mv "$updater_file" "$normalized_updater"
@@ -581,8 +581,8 @@ jobs:
fi
}
normalize_updater aarch64
normalize_updater x86_64
normalize_updater aarch64 "updater-aarch64/Tolaria_${{ needs.version.outputs.version }}_macOS_Silicon.app.tar.gz"
normalize_updater x86_64 "updater-x86_64/Tolaria_${{ needs.version.outputs.version }}_macOS_Intel.app.tar.gz"
- name: Generate release notes
run: |

View File

@@ -721,6 +721,6 @@ Managed by `useSettings` hook and `SettingsPanel` component. `theme_mode` is ins
- **`download_and_install_app_update`** — Channel-aware download/install with streamed progress events.
### CI/CD
- **`.github/workflows/release.yml`** — Alpha prereleases from every push to `main` using calendar-semver technical versions (`YYYY.M.D-alpha.N`) and clean `Alpha YYYY.M.D.N` release names. GitHub alpha tags zero-pad the prerelease sequence (`alpha-vYYYY.M.D-alpha.NNNN`) so GitHub release ordering stays chronological while the shipped app version remains `YYYY.M.D-alpha.N`. Publishes `alpha/latest.json` with macOS Apple Silicon/Intel, Linux x64, and Windows x64 updater entries, then refreshes the legacy `latest.json` / `latest-canary.json` aliases to the alpha feed.
- **`.github/workflows/release-stable.yml`** — Stable releases from `stable-vYYYY.M.D` tags. Publishes `stable/latest.json`, macOS Apple Silicon and Intel DMG/updater artifacts, Windows x64 installers/updater bundles, and Linux x86_64 `.deb` / AppImage artifacts.
- **`.github/workflows/release.yml`** — Alpha prereleases from every push to `main` using calendar-semver technical versions (`YYYY.M.D-alpha.N`) and clean `Alpha YYYY.M.D.N` release names. GitHub alpha tags zero-pad the prerelease sequence (`alpha-vYYYY.M.D-alpha.NNNN`) so GitHub release ordering stays chronological while the shipped app version remains `YYYY.M.D-alpha.N`. Publishes `alpha/latest.json` with macOS Apple Silicon/Intel, Linux x64, and Windows x64 updater entries, then refreshes the legacy `latest.json` / `latest-canary.json` aliases to the alpha feed. macOS release assets use `Tolaria_<version>_macOS_Silicon` and `Tolaria_<version>_macOS_Intel` base names.
- **`.github/workflows/release-stable.yml`** — Stable releases from `stable-vYYYY.M.D` tags. Publishes `stable/latest.json`, macOS Apple Silicon and Intel DMG/updater artifacts, Windows x64 installers/updater bundles, and Linux x86_64 `.deb` / AppImage artifacts. Stable macOS DMG/updater assets use the same `Tolaria_<version>_macOS_Silicon` and `Tolaria_<version>_macOS_Intel` base names.
- **Beta cohorts** are handled in PostHog targeting only. There is no beta updater feed.

View File

@@ -823,7 +823,7 @@ push to main
→ build job:
→ pnpm install, stamp version, pnpm build, tauri build --target aarch64-apple-darwin --bundles app
→ pnpm install, stamp version, pnpm build, tauri build --target x86_64-apple-darwin --bundles app
→ upload signed Apple Silicon and Intel .app.tar.gz + .sig updater artifacts
→ upload signed Apple Silicon and Intel .app.tar.gz + .sig updater artifacts named Tolaria_<version>_macOS_Silicon and Tolaria_<version>_macOS_Intel
→ build-windows job:
→ pnpm install, stamp version, tauri build --target x86_64-pc-windows-msvc --bundles nsis
→ upload NSIS installer, optional MSI artifacts, and signed Windows updater bundles
@@ -846,7 +846,7 @@ push stable-vYYYY.M.D tag
→ build job:
→ pnpm install, stamp version, pnpm build, tauri build --target aarch64-apple-darwin
→ pnpm install, stamp version, pnpm build, tauri build --target x86_64-apple-darwin
→ upload signed Apple Silicon and Intel .app.tar.gz + .sig and .dmg artifacts
→ upload signed Apple Silicon and Intel .app.tar.gz + .sig and .dmg artifacts named Tolaria_<version>_macOS_Silicon and Tolaria_<version>_macOS_Intel
→ build-linux job:
→ pnpm install, stamp version, tauri build --target x86_64-unknown-linux-gnu --bundles deb,appimage
→ upload .deb, .AppImage, and signed Linux updater bundles

View File

@@ -1,3 +1,4 @@
import { readFileSync } from 'node:fs'
import {
buildStableDownloadRedirectPage,
extractStableDownloadTargets,
@@ -5,6 +6,35 @@ import {
resolveStableDownloadTargets,
} from './releaseDownloadPage'
describe('release workflow macOS artifact names', () => {
it('publishes versioned Silicon and Intel artifact names', () => {
const alphaWorkflow = readFileSync(`${process.cwd()}/.github/workflows/release.yml`, 'utf8')
const stableWorkflow = readFileSync(
`${process.cwd()}/.github/workflows/release-stable.yml`,
'utf8',
)
expect(alphaWorkflow).toContain(
'Tolaria_${{ needs.version.outputs.version }}_macOS_Silicon.app.tar.gz',
)
expect(alphaWorkflow).toContain(
'Tolaria_${{ needs.version.outputs.version }}_macOS_Intel.app.tar.gz',
)
expect(stableWorkflow).toContain(
'Tolaria_${{ needs.version.outputs.version }}_macOS_Silicon.app.tar.gz',
)
expect(stableWorkflow).toContain(
'Tolaria_${{ needs.version.outputs.version }}_macOS_Intel.app.tar.gz',
)
expect(stableWorkflow).toContain(
'Tolaria_${{ needs.version.outputs.version }}_macOS_Silicon.dmg',
)
expect(stableWorkflow).toContain(
'Tolaria_${{ needs.version.outputs.version }}_macOS_Intel.dmg',
)
})
})
describe('extractStableDownloadTargets', () => {
it('returns stable downloads for each supported desktop platform when present', () => {
expect(