techdocs-node: still export ContainerRunner from backend-common

Signed-off-by: Vincenzo Scamporlino <vincenzos@spotify.com>
This commit is contained in:
Vincenzo Scamporlino
2024-06-17 10:00:52 +02:00
parent c674ffc164
commit e8c01ddc0a
4 changed files with 15 additions and 5 deletions
@@ -43,6 +43,7 @@ import {
} from './types';
import { ForwardedError } from '@backstage/errors';
import { DockerContainerRunner } from './DockerContainerRunner';
import { ContainerRunner } from '@backstage/backend-common';
/**
* Generates documentation files
@@ -55,6 +56,7 @@ export class TechdocsGenerator implements GeneratorBase {
*/
public static readonly defaultDockerImage = 'spotify/techdocs:v1.2.3';
private readonly logger: Logger;
private readonly containerRunner: ContainerRunner;
private readonly options: GeneratorConfig;
private readonly scmIntegrations: ScmIntegrationRegistry;
@@ -64,10 +66,11 @@ export class TechdocsGenerator implements GeneratorBase {
* @param options - Options to configure the generator
*/
static fromConfig(config: Config, options: GeneratorOptions) {
const { logger } = options;
const { containerRunner, logger } = options;
const scmIntegrations = ScmIntegrations.fromConfig(config);
return new TechdocsGenerator({
logger,
containerRunner,
config,
scmIntegrations,
});
@@ -75,11 +78,14 @@ export class TechdocsGenerator implements GeneratorBase {
constructor(options: {
logger: Logger;
containerRunner?: ContainerRunner;
config: Config;
scmIntegrations: ScmIntegrationRegistry;
}) {
this.logger = options.logger;
this.options = readGeneratorConfig(options.config, options.logger);
this.containerRunner =
options.containerRunner || new DockerContainerRunner();
this.scmIntegrations = options.scmIntegrations;
}
@@ -152,8 +158,7 @@ export class TechdocsGenerator implements GeneratorBase {
);
break;
case 'docker': {
const containerRunner = new DockerContainerRunner();
await containerRunner.runContainer({
await this.containerRunner.runContainer({
imageName:
this.options.dockerImage ?? TechdocsGenerator.defaultDockerImage,
args: ['build', '-d', '/output'],
@@ -18,6 +18,7 @@ import { Entity } from '@backstage/catalog-model';
import { Writable } from 'stream';
import { Logger } from 'winston';
import { ParsedLocationAnnotation } from '../../helpers';
import { ContainerRunner } from '@backstage/backend-common';
// Determines where the generator will be run
export type GeneratorRunInType = 'docker' | 'local';
@@ -28,6 +29,7 @@ export type GeneratorRunInType = 'docker' | 'local';
*/
export type GeneratorOptions = {
logger: Logger;
containerRunner?: ContainerRunner;
};
/**