OverviewFilesCommitsIssuesDocsReleasesPeers

pear-git commits / c7481a0

Add deploy progress: elapsed timer for CI steps, timing for commit/archive
CI steps: logs elapsed time every 15s for long-running steps [CI] export-godot: 15s elapsed... [CI] export-godot: 30s elapsed... [CI] Step "export-godot" passed (182456ms) Deploy stages: logs duration for commit and archive generation [Deploy] Committing to release branch... [Deploy] Committed to release branch: abc123 (28.5s) [Deploy] Building archives... [Deploy] Archives built for hyper-tps (62.3s) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
c7481a0c0d9afc70d66861c487000608256c5684
by plankatron <fleeky@gmail.com> · 2026-04-07T16:25:39.000Z

Changed files (2) +16 -2

lib/ci/ci-runner.js +8 -0
……@@ -92,8 +92,15 @@ export async function runCISteps (checkoutDir, config, opts = {}) {
9292
9393 console.log(`[CI] Running step: ${step.name}`)
9494
95 // Elapsed timer for long-running steps
96 const ticker = setInterval(() => {
97 const elapsed = ((Date.now() - start) / 1000).toFixed(0)
98 console.log(`[CI] ${step.name}: ${elapsed}s elapsed...`)
99 }, 15000)
100
95101 try {
96102 const output = await execStep(checkoutDir, step.run, { env, timeout: timeoutMs })
103 clearInterval(ticker)
97104 const duration = Date.now() - start
98105
99106 results.push({
……@@ -115,6 +122,7 @@ export async function runCISteps (checkoutDir, config, opts = {}) {
115122 error: err.message
116123 })
117124
125 clearInterval(ticker)
118126 console.error(`[CI] Step "${step.name}" FAILED: ${err.message}`)
119127 throw new Error(`CI step "${step.name}" failed: ${err.message}`)
120128 }
lib/ci/deploy-hook.js +8 -2
……@@ -184,18 +184,24 @@ async function _executeGitDeploy (server, repo, repoName, config, timestamp, opt
184184 // Commit built result to release branch in the bare repo
185185 let commitHash
186186 try {
187 console.log(`[Deploy] Committing to release branch...`)
188 const commitStart = Date.now()
187189 commitHash = await _commitToReleaseBranch(repo.path, checkoutDir, repoName, config, timestamp)
188 console.log(`[Deploy] Committed to release branch: ${commitHash.slice(0, 8)}`)
190 const commitDuration = ((Date.now() - commitStart) / 1000).toFixed(1)
191 console.log(`[Deploy] Committed to release branch: ${commitHash.slice(0, 8)} (${commitDuration}s)`)
189192 } catch (err) {
190193 throw new Error(`Failed to commit release branch for ${repoName}: ${err.message}`)
191194 }
192195
193196 // Pre-build release archives (tar.gz + zip)
194197 try {
198 console.log(`[Deploy] Building archives...`)
199 const archiveStart = Date.now()
195200 const archiveDir = path.join(storagePath, 'archives')
196201 await generateArchive(repo.path, repoName, archiveDir, 'tar.gz')
197202 await generateArchive(repo.path, repoName, archiveDir, 'zip')
198 console.log(`[Deploy] Archives built for ${repoName}`)
203 const archiveDuration = ((Date.now() - archiveStart) / 1000).toFixed(1)
204 console.log(`[Deploy] Archives built for ${repoName} (${archiveDuration}s)`)
199205 } catch (err) {
200206 // Non-fatal — archives can be lazy-generated on first HTTP request
201207 console.error(`[Deploy] Archive generation failed for ${repoName}:`, err.message)