tr
TryGhost
GitHub
Ghost
Workspace
GitHub
CI Pipeline Executions
Filtered
Runs
Demo
Insights
Compare tasks
Analytics
Sign in
Toggle sidebar
Overview
⌘K
Ghost
Loading workspace stats
Loading workspace insights...
Statistics interval
7 days
30 days
Latest CI Pipeline Executions
Status
Fix filter
Filter
Fuzzy
Filter range
Sort by
Sort by
Start time
Sort ascending
Sort descending
Succeeded
30276
46e9935e Moved external media inlining to the class-based jobs service ref https://linear.app/ghost/issue/HKG-1971 External media inlining was the remaining inline task on the legacy job manager. The Admin API now resolves a complete domain payload and dispatches a serializable job, while boot injects the initialized ExternalMediaInliner into central handler registration. This keeps execution separate from dispatch and lets JobsService own lifecycle logging and error reporting.
by Fabien O'C...
F
Failed
30276
1f14ba85 Moved external media inlining to the class-based jobs service ref https://linear.app/ghost/issue/HKG-1971 External media inlining was the remaining inline task on the legacy job manager. The Admin API now resolves a complete domain payload and dispatches a serializable job, while boot injects the initialized ExternalMediaInliner into central handler registration. This keeps execution separate from dispatch and lets JobsService own lifecycle logging and error reporting.
by Fabien O'C...
F
Failed
30258
afdb9601 Migrated external-media-inliner job to the class-based jobs service ref https://linear.app/ghost/issue/HKG-1971 Replaces the legacy JobManager addJob closure with a pure-data ExternalMediaInlinerJob dispatched to the class-based jobs service; the handler in register-job-handlers reads the live media-inliner instance at execution time via getInstance(). The legacy require of services/jobs is removed in the same change, so the job is never registered in both systems. The job body's start/complete/fail logging wrapper is deleted because JobsService emits the same lifecycle messages; the "queued" log stays at the dispatch site. The service now receives a getJobsService thunk (resolved in init(), the composition function) rather than the instance, because mediaInliner.init() runs before the jobs service is constructed in boot; dispatch only happens at request time, after boot has started the backend. Two small behavior changes: failures are now also reported to Sentry with a job_type tag (legacy inline failures were only logged), and the job now shares the new backend's concurrency-3 pool with clean-tokens instead of the legacy inline pool (which was also concurrency 3).
by Fabien O'C...
F
Failed
30221
837cdf09 Migrated external-media-inliner job to the class-based jobs service ref https://linear.app/ghost/issue/HKG-1971 The job was defined inline at its dispatch site as a closure handed to the legacy jobs service. It now dispatches an ExternalMediaInlinerJob carrying just the resolved domains, handled by the media-inliner service's own inliner. The legacy addJob call goes away in the same commit, so the job is never registered in both systems. Boot injects `getInstance` uncalled: the jobs service does not exist yet when initServices runs mediaInliner.init(), and dispatch only happens at request time. Moving off the legacy queue would have dropped this job out of the test suite's per-test drain barrier, which only awaits JobManager.allSettled() — so the backend grows an allSettled() the harness awaits alongside it, keeping a job's work inside the test that enqueued it. The closure's lifecycle logging is dropped because the jobs service already emits it in the same format; inline() gains the structured external_media_inliner.completed event instead.
by Fabien O'C...
F
Previous
Next