Preview: isRunnerDev einheitlich (Reconcile, Dev-Start), 137-Fehlertext
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
56637f2005
commit
a5cb668853
7 files changed
+42
-15
No files matched your search
@@ -77,6 +77,15 @@ export function devSubdomainsFromHostsFile(content) {
|
||||
return result
|
||||
}
|
||||
|
||||
/**
|
||||
* Gehoert das Projekt zum Runner (Dev-Server)? Oeffentliche Seiten nur bei explizitem previewMode 'dev'.
|
||||
*/
|
||||
export function isRunnerDev(d) {
|
||||
return String(d?.previewDetected || '').startsWith('dev') &&
|
||||
d.previewMode !== 'off' &&
|
||||
(d.isPublic !== true || d.previewMode === 'dev')
|
||||
}
|
||||
|
||||
/**
|
||||
* Projekte mit laufendem/schlafendem Dev-Server (nur mit Preview-Runner).
|
||||
* Liefert null, wenn Appwrite nicht antwortet.
|
||||
@@ -87,14 +96,7 @@ async function getDevProjects() {
|
||||
Query.equal('previewState', ['sleeping', 'starting', 'online', 'building', 'failed']),
|
||||
Query.limit(500),
|
||||
])
|
||||
// Oeffentliche Seiten nur bei explizitem previewMode 'dev' zum Runner, sonst immer nginx
|
||||
return docs.filter(
|
||||
(d) =>
|
||||
d.subdomain &&
|
||||
/^[a-z0-9-]+$/.test(d.subdomain) &&
|
||||
String(d.previewDetected || '').startsWith('dev') &&
|
||||
(d.isPublic !== true || d.previewMode === 'dev')
|
||||
)
|
||||
return docs.filter((d) => d.subdomain && /^[a-z0-9-]+$/.test(d.subdomain) && isRunnerDev(d))
|
||||
} catch (err) {
|
||||
console.error('[previewDeploy] getDevProjects fehlgeschlagen:', err.message)
|
||||
return null
|
||||
|
||||
@@ -6,13 +6,11 @@
|
||||
import { config } from '../config.js'
|
||||
import { listDocuments, updateDocument, Query } from './appwriteAdmin.js'
|
||||
import * as runnerClient from './previewRunnerClient.js'
|
||||
import { hasLiveFollower, registerDevRound } from './previewDeploy.js'
|
||||
import { hasLiveFollower, registerDevRound, isRunnerDev } from './previewDeploy.js'
|
||||
|
||||
export const STALE_BUILD_MS = 70 * 60 * 1000
|
||||
const STALE_TEXT = 'Status unbekannt – bitte neu bauen'
|
||||
|
||||
const isDev = (d) => String(d.previewDetected || '').startsWith('dev')
|
||||
|
||||
export async function reconcilePreviews({ now = Date.now() } = {}) {
|
||||
if (!config.previewRunner.enabled) return { skipped: true }
|
||||
const result = { staleFailed: 0, stateUpdated: 0, reregistered: 0 }
|
||||
@@ -44,7 +42,7 @@ export async function reconcilePreviews({ now = Date.now() } = {}) {
|
||||
}
|
||||
|
||||
// (b) + (c)
|
||||
const devDocs = docs.filter((d) => isDev(d) && d.previewMode !== 'off' && d.previewState !== 'building' && d.subdomain)
|
||||
const devDocs = docs.filter((d) => isRunnerDev(d) && d.previewState !== 'building' && d.subdomain)
|
||||
if (!devDocs.length) return result
|
||||
let st
|
||||
try { st = await runnerClient.status() } catch (err) {
|
||||
|
||||
Reference in new issue
Block a user