mirror of
https://github.com/4gray/iptvnator.git
synced 2026-10-11 19:46:16 -08:00
* feat(updater): nightly builds and a stable/nightly update channel Every master push publishes its artifacts as a prerelease of 4gray/iptvnator-nightly instead of the rolling test-master draft, with a version of <next patch>-nightly.<commit date>.<run number> applied in every build job. Settings → About gains an Update channel switch; AppUpdateService re-points electron-updater per check (feed repository, allowPrerelease, channel name, allowDowngrade reset) and reads release notes from the repository the requested version belongs to. Channel switches are forward-only: a nightly build stays until a newer stable release exists. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> * fix(updater): compute the nightly version once and keep re-runs safe Review follow-ups: the nightly version is resolved by a leading job and handed to every build job, and the patch is bumped only when the base tag already exists so the release-cut window stays below the imminent release. A re-run never deletes a published nightly; only a draft left by a failed run is replaced. Typed update-status literals in the remaining specs carry the new channel fields. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> * test(packaging): expect the nightly-version prerequisite in the build workflow graph Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> --------- Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
62 lines
1.1 KiB
TypeScript
62 lines
1.1 KiB
TypeScript
import {
|
|
AppUpdateChannel,
|
|
CoverSize,
|
|
EpgViewMode,
|
|
StartupBehavior,
|
|
StartupWindowMode,
|
|
Theme,
|
|
VideoPlayer,
|
|
} from '@iptvnator/shared/interfaces';
|
|
|
|
export interface SettingsSection {
|
|
id: string;
|
|
label: string;
|
|
icon: string;
|
|
visible: boolean;
|
|
}
|
|
|
|
export interface ThemeOption {
|
|
value: Theme;
|
|
icon: string;
|
|
labelKey: string;
|
|
}
|
|
|
|
export interface StartupBehaviorOption {
|
|
value: StartupBehavior;
|
|
labelKey: string;
|
|
}
|
|
|
|
export interface StartupWindowModeOption {
|
|
value: StartupWindowMode;
|
|
labelKey: string;
|
|
}
|
|
|
|
export interface UpdateChannelOption {
|
|
value: AppUpdateChannel;
|
|
labelKey: string;
|
|
}
|
|
|
|
export interface CoverSizeOption {
|
|
value: CoverSize;
|
|
icon: string;
|
|
labelKey: string;
|
|
}
|
|
|
|
export interface EpgViewModeOption {
|
|
value: EpgViewMode;
|
|
icon: string;
|
|
labelKey: string;
|
|
}
|
|
|
|
export interface SettingsPlayerOption {
|
|
id: VideoPlayer;
|
|
labelKey: string;
|
|
}
|
|
|
|
export interface SettingsPlaylistDeleteSummary {
|
|
total: number;
|
|
m3u: number;
|
|
xtream: number;
|
|
stalker: number;
|
|
}
|