1- import { H3Error } from 'h3 '
1+ import cluster from 'node:cluster '
22
3+ import { H3Error } from 'h3'
34import { initializeDatabase , useDB } from '~/lib/db'
45import { ENV } from '~/lib/env'
56import { logger } from '~/lib/logger'
@@ -8,9 +9,9 @@ import { initializeStorage, useStorageAdapter } from '~/lib/storage'
89
910export default defineNitroPlugin ( async ( nitro ) => {
1011 const version = useRuntimeConfig ( ) . version
11- logger . info ( `🚀 Starting GitHub Actions Cache Server (${ version } )` )
12+ if ( cluster . isPrimary ) logger . info ( `🚀 Starting GitHub Actions Cache Server (${ version } )` )
1213
13- await initializeProxy ( )
14+ if ( cluster . isPrimary ) await initializeProxy ( )
1415 await initializeDatabase ( )
1516 await initializeStorage ( )
1617
@@ -37,26 +38,28 @@ export default defineNitroPlugin(async (nitro) => {
3738
3839 if ( ! version ) throw new Error ( 'No version found in runtime config' )
3940
40- const db = await useDB ( )
41- const existing = await db
42- . selectFrom ( 'meta' )
43- . where ( 'key' , '=' , 'version' )
44- . select ( 'value' )
45- . executeTakeFirst ( )
41+ if ( cluster . isPrimary ) {
42+ const db = await useDB ( )
43+ const existing = await db
44+ . selectFrom ( 'meta' )
45+ . where ( 'key' , '=' , 'version' )
46+ . select ( 'value' )
47+ . executeTakeFirst ( )
4648
47- if ( ! existing || existing . value !== version ) {
48- logger . info (
49- `Version changed from ${ existing ?. value ?? '[no version, first install]' } to ${ version } . Pruning cache...` ,
50- )
51- const adapter = await useStorageAdapter ( )
52- await adapter . pruneCaches ( )
53- }
49+ if ( ! existing || existing . value !== version ) {
50+ logger . info (
51+ `Version changed from ${ existing ?. value ?? '[no version, first install]' } to ${ version } . Pruning cache...` ,
52+ )
53+ const adapter = await useStorageAdapter ( )
54+ await adapter . pruneCaches ( )
55+ }
5456
55- if ( existing ) {
56- await db . updateTable ( 'meta' ) . set ( 'value' , version ) . where ( 'key' , '=' , 'version' ) . execute ( )
57- } else {
58- await db . insertInto ( 'meta' ) . values ( { key : 'version' , value : version } ) . execute ( )
57+ if ( existing ) {
58+ await db . updateTable ( 'meta' ) . set ( 'value' , version ) . where ( 'key' , '=' , 'version' ) . execute ( )
59+ } else {
60+ await db . insertInto ( 'meta' ) . values ( { key : 'version' , value : version } ) . execute ( )
61+ }
5962 }
6063
61- if ( process . send ) process . send ( 'nitro:ready' )
64+ if ( process . send && cluster . isPrimary ) process . send ( 'nitro:ready' )
6265} )
0 commit comments