balena-cli
Version:
The official balena Command Line Interface
69 lines (68 loc) • 4.16 kB
TypeScript
import type { BalenaSDK } from 'balena-sdk';
import type * as Dockerode from 'dockerode';
import type { BuildConfig, Composition } from '@balena/compose/dist/parse';
import type * as MultiBuild from '@balena/compose/dist/multibuild';
import type { Readable } from 'stream';
import type { BuiltImage, ComposeOpts, ComposeProject, TarDirectoryOptions } from './compose-types';
import type { DeviceInfo } from './device/api';
import Logger = require('./logger');
export declare function parseReleaseTagKeysAndValues(releaseTags: string[]): {
releaseTagKeys: string[];
releaseTagValues: string[];
};
export declare function applyReleaseTagKeysAndValues(sdk: BalenaSDK, releaseId: number, releaseTagKeys: string[], releaseTagValues: string[]): Promise<void>;
export declare function loadProject(logger: Logger, opts: ComposeOpts, image?: string, imageTag?: string): Promise<ComposeProject>;
export interface Renderer {
start: () => void;
end: (buildSummaryByService?: Dictionary<string>) => void;
streams: Dictionary<NodeJS.ReadWriteStream>;
}
export interface BuildProjectOpts {
docker: Dockerode;
logger: Logger;
projectPath: string;
projectName: string;
composition: Composition;
arch: string;
deviceType: string;
emulated: boolean;
buildOpts: import('./docker').BuildOpts;
inlineLogs?: boolean;
convertEol: boolean;
dockerfilePath?: string;
multiDockerignore: boolean;
}
export declare function buildProject(opts: BuildProjectOpts): Promise<BuiltImage[]>;
export declare function makeImageName(projectName: string, serviceName: string, tag?: string): string;
export declare function getServiceDirsFromComposition(sourceDir: string, composition?: Composition): Promise<Dictionary<string>>;
export declare function isBuildConfig(image: string | BuildConfig): image is BuildConfig;
export declare function tarDirectory(dir: string, { composition, convertEol, multiDockerignore, preFinalizeCallback, }: TarDirectoryOptions): Promise<import('stream').Readable>;
export declare function checkBuildSecretsRequirements(docker: Dockerode, sourceDir: string): Promise<void>;
export declare function getRegistrySecrets(sdk: BalenaSDK, inputFilename?: string): Promise<MultiBuild.RegistrySecrets>;
export declare function makeBuildTasks(composition: Composition, tarStream: Readable, deviceInfo: DeviceInfo, logger: Logger, projectName: string, releaseHash?: string, preprocessHook?: (dockerfile: string) => string): Promise<MultiBuild.BuildTask[]>;
export interface ProjectValidationResult {
dockerfilePath: string;
registrySecrets: MultiBuild.RegistrySecrets;
}
export declare function validateProjectDirectory(sdk: BalenaSDK, opts: {
dockerfilePath?: string;
noParentCheck: boolean;
projectPath: string;
registrySecretsPath?: string;
}): Promise<ProjectValidationResult>;
export declare function deployProject(docker: Dockerode, sdk: BalenaSDK, logger: Logger, composition: Composition, images: BuiltImage[], appId: number, skipLogUpload: boolean, projectPath: string, isDraft: boolean): Promise<import('@balena/compose/dist/release/models').ReleaseModel>;
export declare function createSpinner(): () => string;
export declare function createRunLoop(tick: (...args: any[]) => void): {
onEnd(): void;
end(): void;
};
export declare const composeCliFlags: {
emulated: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
dockerfile: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
nologs: import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
'multi-dockerignore': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
'noparent-check': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
'registry-secrets': import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
'noconvert-eol': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
projectName: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
};