CI: Game-API per Bind-Mount deployen + Selbst-Neustart der API
Build & Deploy / deploy (push) Successful in 18s
Build & Deploy / deploy (push) Successful in 18s
- deploy.yml kopiert server.js auf den VPS; API beobachtet mtime und startet bei Aenderung selbst neu (Restart-Policy)
This commit is contained in:
@@ -398,4 +398,19 @@ setInterval(() => {
|
||||
speichern();
|
||||
}, 10 * 60 * 1000).unref();
|
||||
|
||||
/* Selbst-Deploy: Der CI-Job ersetzt server.js im Bind-Mount. Sobald sich die
|
||||
* Datei aendert, beendet sich der Prozess sauber – die Restart-Policy des
|
||||
* Containers (unless-stopped) startet ihn mit dem neuen Code neu. */
|
||||
const eigeneMtime = fs.statSync(__filename).mtimeMs;
|
||||
setInterval(() => {
|
||||
try {
|
||||
if (fs.statSync(__filename).mtimeMs !== eigeneMtime) {
|
||||
console.log('server.js wurde aktualisiert – Neustart für neuen Code');
|
||||
process.exit(0);
|
||||
}
|
||||
} catch {
|
||||
/* Datei kurzzeitig nicht lesbar – beim naechsten Intervall pruefen */
|
||||
}
|
||||
}, 5000).unref();
|
||||
|
||||
server.listen(PORT, () => console.log(`1bis8-game-api lauscht auf :${PORT} (Räume: ${Object.keys(rooms).length})`));
|
||||
|
||||
Reference in New Issue
Block a user