UNPKG

balena-cli

Version:

The official balena Command Line Interface

69 lines (68 loc) 4.16 kB
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>; };