feat: allow defining custom build log transport for techdocs
should enable way to overcome #24583 memory leak, maybe. Signed-off-by: Heikki Hellgren <heikki.hellgren@op.fi>
This commit is contained in:
@@ -0,0 +1,6 @@
|
||||
---
|
||||
'@backstage/plugin-techdocs-backend': patch
|
||||
'@backstage/plugin-techdocs-node': patch
|
||||
---
|
||||
|
||||
Allow defining custom build log transport for techdocs builder
|
||||
@@ -38,6 +38,7 @@ import {
|
||||
} from '@backstage/plugin-techdocs-node';
|
||||
import Docker from 'dockerode';
|
||||
import { createRouter } from '@backstage/plugin-techdocs-backend';
|
||||
import * as winston from 'winston';
|
||||
|
||||
/**
|
||||
* The TechDocs plugin is responsible for serving and building documentation for any entity.
|
||||
@@ -47,6 +48,7 @@ export const techdocsPlugin = createBackendPlugin({
|
||||
pluginId: 'techdocs',
|
||||
register(env) {
|
||||
let docsBuildStrategy: DocsBuildStrategy | undefined;
|
||||
let buildLogTransport: winston.transport | undefined;
|
||||
env.registerExtensionPoint(techdocsBuildsExtensionPoint, {
|
||||
setBuildStrategy(buildStrategy: DocsBuildStrategy) {
|
||||
if (docsBuildStrategy) {
|
||||
@@ -54,6 +56,12 @@ export const techdocsPlugin = createBackendPlugin({
|
||||
}
|
||||
docsBuildStrategy = buildStrategy;
|
||||
},
|
||||
setBuildLogTransport(transport: winston.transport) {
|
||||
if (buildLogTransport) {
|
||||
throw new Error('BuildLogTransport may only be set once');
|
||||
}
|
||||
buildLogTransport = transport;
|
||||
},
|
||||
});
|
||||
|
||||
let customTechdocsGenerator: TechdocsGenerator | undefined;
|
||||
@@ -138,6 +146,7 @@ export const techdocsPlugin = createBackendPlugin({
|
||||
logger: winstonLogger,
|
||||
cache: cacheManager,
|
||||
docsBuildStrategy,
|
||||
buildLogTransport,
|
||||
preparers,
|
||||
generators,
|
||||
publisher,
|
||||
|
||||
@@ -16,6 +16,7 @@ import { Logger } from 'winston';
|
||||
import { PluginEndpointDiscovery } from '@backstage/backend-common';
|
||||
import { ScmIntegrationRegistry } from '@backstage/integration';
|
||||
import { UrlReader } from '@backstage/backend-common';
|
||||
import * as winston from 'winston';
|
||||
import { Writable } from 'stream';
|
||||
|
||||
// @public
|
||||
@@ -240,6 +241,8 @@ export type SupportedGeneratorKey = 'techdocs' | string;
|
||||
|
||||
// @public
|
||||
export interface TechdocsBuildsExtensionPoint {
|
||||
// (undocumented)
|
||||
setBuildLogTransport(transport: winston.transport): void;
|
||||
// (undocumented)
|
||||
setBuildStrategy(buildStrategy: DocsBuildStrategy): void;
|
||||
}
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
import { createExtensionPoint } from '@backstage/backend-plugin-api';
|
||||
import { DocsBuildStrategy } from './techdocsTypes';
|
||||
import { PreparerBase, RemoteProtocol, TechdocsGenerator } from './stages';
|
||||
import * as winston from 'winston';
|
||||
|
||||
/**
|
||||
* Extension point type for configuring Techdocs builds.
|
||||
@@ -24,6 +25,7 @@ import { PreparerBase, RemoteProtocol, TechdocsGenerator } from './stages';
|
||||
*/
|
||||
export interface TechdocsBuildsExtensionPoint {
|
||||
setBuildStrategy(buildStrategy: DocsBuildStrategy): void;
|
||||
setBuildLogTransport(transport: winston.transport): void;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user