mirror of
https://github.com/renovatebot/renovate.git
synced 2026-11-01 10:09:50 +00:00
f7bf437dcf
As noted in #30714, and to make the Minimum Release Age page a "one-stop-shop", we can generate the documentation accordingly. Using an orange "maybe" for support helps nudge folks to checking which registry they're using, and noting that it still doesn't necessarily work, even if the Datasource supports it. Co-authored-by: Claude Sonnet 5 <jamie.tanna+claude-code@mend.io>
121 lines
3.8 KiB
TypeScript
121 lines
3.8 KiB
TypeScript
import { ERROR } from 'bunyan';
|
|
import fs from 'fs-extra';
|
|
import * as tar from 'tar';
|
|
import { getProblems, logger } from '../../lib/logger/index.ts';
|
|
import { generateConfig } from './config.ts';
|
|
import { generateDatasources } from './datasources.ts';
|
|
import { generateEnvOptions } from './env-options.ts';
|
|
import { generateEnvVars } from './env-vars.ts';
|
|
import { getOpenGitHubItems } from './github-query-items.ts';
|
|
import { generateManagerGithubActionsCommunity } from './manager/github-actions/community.ts';
|
|
import { generateManagers } from './manager.ts';
|
|
import { generateManagerAsdfSupportedPlugins } from './manager-asdf-supported-plugins.ts';
|
|
import { generateManagerMiseSupportedPlugins } from './manager-mise-supported-plugins.ts';
|
|
import { generateDatasourceReleaseTimestampSupportForMinimumReleaseAge } from './minimum-release-age.ts';
|
|
import { generatePlatforms } from './platforms.ts';
|
|
import { generatePresets } from './presets.ts';
|
|
import { generateSchema } from './schema.ts';
|
|
import { generateTemplates } from './templates.ts';
|
|
import { generateVersioning } from './versioning.ts';
|
|
|
|
export async function generateDocs(
|
|
root = 'tmp',
|
|
pack = true,
|
|
version?: string,
|
|
): Promise<void> {
|
|
try {
|
|
const dist = `${root}/docs`;
|
|
logger.info(`generating docs to '${dist}'`);
|
|
|
|
await fs.mkdir(`${dist}/`, { recursive: true });
|
|
|
|
logger.info('* static');
|
|
await fs.copy('docs/usage/.', `${dist}`);
|
|
|
|
logger.info('* fetching open GitHub issues');
|
|
const openItems = await getOpenGitHubItems();
|
|
|
|
logger.info('* platforms');
|
|
await generatePlatforms(dist, openItems.platforms);
|
|
|
|
// versionings
|
|
logger.info('* versionings');
|
|
await generateVersioning(dist, openItems.versionings);
|
|
|
|
// datasources
|
|
logger.info('* datasources');
|
|
await generateDatasources(dist, openItems.datasources);
|
|
|
|
// minimum release age: datasource release timestamp support
|
|
logger.info('* key-concepts/minimum-release-age');
|
|
await generateDatasourceReleaseTimestampSupportForMinimumReleaseAge(dist);
|
|
|
|
// managers
|
|
logger.info('* managers');
|
|
await generateManagers(dist, openItems.managers);
|
|
|
|
// managers/asdf supported plugins
|
|
logger.info('* managers/asdf/supported-plugins');
|
|
await generateManagerAsdfSupportedPlugins(dist);
|
|
|
|
// managers/github-actions community actions
|
|
logger.info('* managers/github-actions/community');
|
|
await generateManagerGithubActionsCommunity(dist);
|
|
|
|
// managers/mise supported plugins
|
|
logger.info('* managers/mise/supported-plugins');
|
|
await generateManagerMiseSupportedPlugins(dist);
|
|
|
|
// presets
|
|
logger.info('* presets');
|
|
await generatePresets(dist);
|
|
|
|
// templates
|
|
logger.info('* templates');
|
|
await generateTemplates(dist);
|
|
|
|
// configuration-options
|
|
logger.info('* configuration-options');
|
|
await generateConfig(dist);
|
|
|
|
// self-hosted-configuration
|
|
logger.info('* self-hosted-configuration');
|
|
await generateConfig(dist, true);
|
|
|
|
// env-options
|
|
logger.info('* env-options');
|
|
await generateEnvOptions(dist);
|
|
|
|
// environment-variable-handling
|
|
logger.info('* environment-variable-handling');
|
|
await generateEnvVars(dist);
|
|
|
|
// json-schema
|
|
logger.info('* json-schema');
|
|
await generateSchema(dist, { version });
|
|
await generateSchema(dist, {
|
|
filename: 'renovate-inherited-schema.json',
|
|
version,
|
|
isInherit: true,
|
|
});
|
|
await generateSchema(dist, {
|
|
filename: 'renovate-global-schema.json',
|
|
version,
|
|
isGlobal: true,
|
|
});
|
|
|
|
if (pack) {
|
|
await tar.create({ file: `${root}/docs.tgz`, cwd: dist, gzip: true }, [
|
|
'.',
|
|
]);
|
|
}
|
|
} catch (err) {
|
|
logger.error({ err }, 'Unexpected error');
|
|
} finally {
|
|
const loggerErrors = getProblems().filter((p) => p.level >= ERROR);
|
|
if (loggerErrors.length) {
|
|
process.exit(1);
|
|
}
|
|
}
|
|
}
|