mirror of
https://github.com/4gray/iptvnator.git
synced 2026-10-08 09:01:03 -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>
116 lines
3.4 KiB
JSON
116 lines
3.4 KiB
JSON
{
|
|
"$schema": "./node_modules/nx/schemas/nx-schema.json",
|
|
"namedInputs": {
|
|
"default": ["{projectRoot}/**/*", "sharedGlobals"],
|
|
"production": [
|
|
"default",
|
|
"!{projectRoot}/.eslintrc.json",
|
|
"!{projectRoot}/eslint.config.mjs",
|
|
"!{projectRoot}/**/?(*.)+(spec|test).[jt]s?(x)?(.snap)",
|
|
"!{projectRoot}/tsconfig.spec.json",
|
|
"!{projectRoot}/jest.config.[jt]s",
|
|
"!{projectRoot}/src/test-setup.[jt]s",
|
|
"!{projectRoot}/test-setup.[jt]s"
|
|
],
|
|
"sharedGlobals": [
|
|
"{workspaceRoot}/.github/workflows/ci.yml",
|
|
"{workspaceRoot}/package.json"
|
|
]
|
|
},
|
|
"targetDefaults": {
|
|
"@angular/build:application": {
|
|
"cache": true,
|
|
"dependsOn": ["^build"],
|
|
"inputs": ["production", "^production"]
|
|
},
|
|
"@nx/eslint:lint": {
|
|
"cache": true,
|
|
"inputs": [
|
|
"default",
|
|
"^default",
|
|
"{workspaceRoot}/.eslintrc.json",
|
|
"{workspaceRoot}/.eslintignore",
|
|
"{workspaceRoot}/eslint.config.mjs",
|
|
"{workspaceRoot}/tools/eslint-rules/**/*",
|
|
"{workspaceRoot}/tools/eslint/**/*"
|
|
]
|
|
},
|
|
"lint": {
|
|
"cache": true,
|
|
"inputs": [
|
|
"default",
|
|
"{workspaceRoot}/.eslintrc.json",
|
|
"{workspaceRoot}/.eslintignore",
|
|
"{workspaceRoot}/eslint.config.mjs",
|
|
"{workspaceRoot}/tools/eslint-rules/**/*",
|
|
"{workspaceRoot}/tools/eslint/**/*"
|
|
]
|
|
},
|
|
"@nx/jest:jest": {
|
|
"cache": true,
|
|
"inputs": [
|
|
"default",
|
|
"^production",
|
|
"{workspaceRoot}/jest.preset.js"
|
|
],
|
|
"options": {
|
|
"passWithNoTests": true
|
|
},
|
|
"configurations": {
|
|
"ci": {
|
|
"ci": true,
|
|
"codeCoverage": true
|
|
}
|
|
}
|
|
},
|
|
"@nx/js:tsc": {
|
|
"cache": true,
|
|
"dependsOn": ["^build"],
|
|
"inputs": ["production", "^production"]
|
|
},
|
|
"e2e-ci--src/*.e2e.ts": {
|
|
"dependsOn": [
|
|
{
|
|
"projects": ["electron-backend"],
|
|
"target": "build-e2e"
|
|
},
|
|
{
|
|
"projects": ["stalker-mock-server", "xtream-mock-server"],
|
|
"target": "serve"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"plugins": [
|
|
{
|
|
"plugin": "@nx/playwright/plugin",
|
|
"options": {
|
|
"targetName": "e2e"
|
|
}
|
|
},
|
|
{
|
|
"plugin": "@nx/eslint/plugin",
|
|
"options": {
|
|
"targetName": "lint"
|
|
}
|
|
}
|
|
],
|
|
"generators": {
|
|
"@nx/angular:application": {
|
|
"e2eTestRunner": "playwright",
|
|
"linter": "eslint",
|
|
"style": "scss",
|
|
"unitTestRunner": "jest"
|
|
},
|
|
"@nx/angular:library": {
|
|
"linter": "eslint",
|
|
"unitTestRunner": "jest"
|
|
},
|
|
"@nx/angular:component": {
|
|
"style": "scss"
|
|
}
|
|
},
|
|
"defaultProject": "web",
|
|
"analytics": false
|
|
}
|