36 lines
1.5 KiB
JavaScript
36 lines
1.5 KiB
JavaScript
// Single source of truth for infra strings asserted by verify-gitea-*-workflow.mjs.
|
|
// Forks override the defaults by exporting TOOLCTRL_* env vars in their CI environment.
|
|
// Default values match the canonical ToolCTRL Gitea deployment so the boilerplate's own
|
|
// CI passes without any env setup.
|
|
|
|
const envOr = (key, fallback) => {
|
|
const value = process.env[key];
|
|
if (typeof value !== "string") return fallback;
|
|
const trimmed = value.trim();
|
|
return trimmed ? trimmed : fallback;
|
|
};
|
|
|
|
export const CI_RUNNER_LABEL = envOr("TOOLCTRL_CI_RUNNER", "toolctrl-ci");
|
|
export const IMAGE_PREFIX = envOr("TOOLCTRL_IMAGE_PREFIX", "toolctrl");
|
|
export const GIT_HOST = envOr("TOOLCTRL_GIT_HOST", "git.tool-ctrl.de");
|
|
export const REGISTRY_NAMESPACE = envOr("TOOLCTRL_REGISTRY_NAMESPACE", "toolctrl-labs");
|
|
export const DB_USER = envOr("TOOLCTRL_DB_USER", "toolctrl");
|
|
export const DB_NAME = envOr("TOOLCTRL_DB_NAME", "toolctrl");
|
|
export const PREFLIGHT_DATABASE_URL = `postgresql://${DB_USER}:${DB_USER}@localhost:5432/${DB_NAME}?schema=public`;
|
|
|
|
export function dockerImageTag(target, tag = "smoke") {
|
|
return `${IMAGE_PREFIX}-${target}:${tag}`;
|
|
}
|
|
|
|
export function escapeRegex(value) {
|
|
return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
}
|
|
|
|
export const HOST_OVERRIDE_WRITE_PATTERN = new RegExp(
|
|
`printf\\s+'%s ${escapeRegex(GIT_HOST)}\\\\n'\\s+"\\$TOOLCTRL_GITEA_HOST_IP"\\s+>>\\s+/etc/hosts`,
|
|
"g"
|
|
);
|
|
|
|
export const HOST_OVERRIDE_VALIDATION_PATTERN =
|
|
/node\s+-e\s+'process\.exit\(require\("node:net"\)\.isIP\(process\.env\.TOOLCTRL_GITEA_HOST_IP \|\| ""\) \? 0 : 1\)'/g;
|