mirror of
https://github.com/4gray/iptvnator.git
synced 2026-10-14 21:26:15 -08:00
feat(updater): nightly builds and a stable/nightly update channel (#1608)
* 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>
This commit is contained in:
1 parent
7f724494b9
commit
6f7973a9fb
57 files changed
+2249
-229
No files matched your search
@@ -440,7 +440,9 @@ test('keeps non-Linux builds independent from the Linux runtime prerequisite', (
|
||||
|
||||
assert.ok(crossPlatformJob);
|
||||
assert.ok(linuxJob);
|
||||
assert.equal(crossPlatformJob.needs, undefined);
|
||||
// The nightly-version job is a cheap, platform-neutral prerequisite; the
|
||||
// Linux runtime build must stay out of the non-Linux dependency list.
|
||||
assert.deepEqual(crossPlatformJob.needs, 'nightly-version');
|
||||
assert.deepEqual(
|
||||
crossPlatformJob.strategy.matrix.include.map(({ os, arch }) => ({
|
||||
os,
|
||||
@@ -453,7 +455,10 @@ test('keeps non-Linux builds independent from the Linux runtime prerequisite', (
|
||||
]
|
||||
);
|
||||
assert.equal(crossPlatformJob.strategy['fail-fast'], false);
|
||||
assert.equal(linuxJob.needs, 'linux-embedded-mpv-runtime');
|
||||
assert.deepEqual(linuxJob.needs, [
|
||||
'linux-embedded-mpv-runtime',
|
||||
'nightly-version',
|
||||
]);
|
||||
assert.deepEqual(
|
||||
linuxJob.strategy.matrix.include.map(
|
||||
({ os, arch, linux_profile: profile }) => ({
|
||||
@@ -475,6 +480,7 @@ test('keeps non-Linux builds independent from the Linux runtime prerequisite', (
|
||||
assert.equal(linuxJob.strategy['fail-fast'], false);
|
||||
assert.deepEqual(linuxJob.steps, crossPlatformJob.steps);
|
||||
assert.deepEqual(buildWorkflowConfig.jobs['create-release'].needs, [
|
||||
'nightly-version',
|
||||
'build-cross-platform',
|
||||
'build-linux',
|
||||
]);
|
||||
|
||||
Reference in new issue
Block a user