fix: clarify macos release artifact names
This commit is contained in:
12
.github/workflows/release-stable.yml
vendored
12
.github/workflows/release-stable.yml
vendored
@@ -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: |
|
||||
|
||||
6
.github/workflows/release.yml
vendored
6
.github/workflows/release.yml
vendored
@@ -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: |
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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(
|
||||
|
||||
Reference in New Issue
Block a user