Skip to content

Commit

Permalink
feat: add platform parameter to image build method
Browse files Browse the repository at this point in the history
related to #5492
Signed-off-by: Florent Benoit <fbenoit@redhat.com>
  • Loading branch information
benoitf committed Jan 11, 2024
1 parent 224bafa commit 0e6d95b
Show file tree
Hide file tree
Showing 7 changed files with 21 additions and 7 deletions.
1 change: 1 addition & 0 deletions packages/extension-api/src/extension-api.d.ts
Expand Up @@ -1924,6 +1924,7 @@ declare module '@podman-desktop/api' {
containerBuildContextDirectory: string,
relativeContainerfilePath: string,
imageName: string,
platform: string,
selectedProvider: ProviderContainerConnectionInfo | containerDesktopAPI.ContainerProviderConnection,
eventCollect: (eventName: 'stream' | 'error' | 'finish', data: string) => void,
abortController?: AbortController,
Expand Down
17 changes: 10 additions & 7 deletions packages/main/src/plugin/container-registry.spec.ts
Expand Up @@ -981,7 +981,7 @@ describe('buildImage', () => {
lifecycleMethods: undefined,
status: 'started',
};
await expect(containerRegistry.buildImage('context', 'file', 'name', connection, () => {})).rejects.toThrow(
await expect(containerRegistry.buildImage('context', 'file', 'name', '', connection, () => {})).rejects.toThrow(
'no running provider for the matching container',
);
});
Expand Down Expand Up @@ -1009,7 +1009,7 @@ describe('buildImage', () => {
},
status: () => 'started',
};
await expect(containerRegistry.buildImage('context', 'file', 'name', connection, () => {})).rejects.toThrow(
await expect(containerRegistry.buildImage('context', 'file', 'name', '', connection, () => {})).rejects.toThrow(
'no running provider for the matching container',
);
});
Expand Down Expand Up @@ -1046,7 +1046,7 @@ describe('buildImage', () => {
vi.spyOn(tar, 'pack').mockReturnValue({} as NodeJS.ReadableStream);
vi.spyOn(dockerAPI, 'buildImage').mockRejectedValue('human error message');

await expect(containerRegistry.buildImage('context', 'file', 'name', connection, () => {})).rejects.toThrow(
await expect(containerRegistry.buildImage('context', 'file', 'name', '', connection, () => {})).rejects.toThrow(
'human error message',
);
});
Expand Down Expand Up @@ -1082,7 +1082,7 @@ describe('buildImage', () => {
vi.spyOn(tar, 'pack').mockReturnValue({} as NodeJS.ReadableStream);
vi.spyOn(dockerAPI, 'buildImage').mockRejectedValue('human error message');

await expect(containerRegistry.buildImage('context', 'file', 'name', connection, () => {})).rejects.toThrow(
await expect(containerRegistry.buildImage('context', 'file', 'name', '', connection, () => {})).rejects.toThrow(
'human error message',
);
});
Expand Down Expand Up @@ -1122,12 +1122,13 @@ describe('buildImage', () => {
return f(null, []);
});

await containerRegistry.buildImage('context', '\\path\\file', 'name', connection, () => {});
await containerRegistry.buildImage('context', '\\path\\file', 'name', '', connection, () => {});

expect(dockerAPI.buildImage).toBeCalledWith({} as NodeJS.ReadableStream, {
registryconfig: {},
dockerfile: '/path/file',
t: 'name',
platform: '',
});
});

Expand Down Expand Up @@ -1165,12 +1166,13 @@ describe('buildImage', () => {
return f(null, []);
});

await containerRegistry.buildImage('context', '\\path\\file', 'name', connection, () => {});
await containerRegistry.buildImage('context', '\\path\\file', 'name', '', connection, () => {});

expect(dockerAPI.buildImage).toBeCalledWith({} as NodeJS.ReadableStream, {
registryconfig: {},
dockerfile: '/path/file',
t: 'name',
platform: '',
});
});

Expand Down Expand Up @@ -1209,10 +1211,11 @@ describe('buildImage', () => {
return f(null, []);
});

await containerRegistry.buildImage('context', '/dir/dockerfile', 'name', connection, () => {});
await containerRegistry.buildImage('context', '/dir/dockerfile', 'name', '', connection, () => {});

expect(dockerAPI.buildImage).toBeCalledWith({} as NodeJS.ReadableStream, {
registryconfig: {},
platform: '',
dockerfile: '/dir/dockerfile',
t: 'name',
});
Expand Down
2 changes: 2 additions & 0 deletions packages/main/src/plugin/container-registry.ts
Expand Up @@ -1948,6 +1948,7 @@ export class ContainerProviderRegistry {
containerBuildContextDirectory: string,
relativeContainerfilePath: string,
imageName: string,
platform: string,
selectedProvider: ProviderContainerConnectionInfo | containerDesktopAPI.ContainerProviderConnection,
eventCollect: (eventName: 'stream' | 'error' | 'finish', data: string) => void,
abortController?: AbortController,
Expand All @@ -1974,6 +1975,7 @@ export class ContainerProviderRegistry {
registryconfig,
dockerfile: relativeContainerfilePath,
t: imageName,
platform: platform,
abortSignal: abortController?.signal,
})) as unknown as Stream;
} catch (error: unknown) {
Expand Down
2 changes: 2 additions & 0 deletions packages/main/src/plugin/extension-loader.ts
Expand Up @@ -910,6 +910,7 @@ export class ExtensionLoader {
containerBuildContextDirectory: string,
relativeContainerfilePath: string,
imageName: string,
platform: string,
selectedProvider: ProviderContainerConnectionInfo | containerDesktopAPI.ContainerProviderConnection,
eventCollect: (eventName: 'stream' | 'error' | 'finish', data: string) => void,
abortController?: AbortController,
Expand All @@ -918,6 +919,7 @@ export class ExtensionLoader {
containerBuildContextDirectory,
relativeContainerfilePath,
imageName,
platform,
selectedProvider,
eventCollect,
abortController,
Expand Down
2 changes: 2 additions & 0 deletions packages/main/src/plugin/index.ts
Expand Up @@ -1195,6 +1195,7 @@ export class PluginSystem {
containerBuildContextDirectory: string,
relativeContainerfilePath: string,
imageName: string,
platform: string,
selectedProvider: ProviderContainerConnectionInfo,
onDataCallbacksBuildImageId: number,
cancellableTokenId?: number,
Expand All @@ -1208,6 +1209,7 @@ export class PluginSystem {
containerBuildContextDirectory,
relativeContainerfilePath,
imageName,
platform,
selectedProvider,
(eventName: string, data: string) => {
this.getWebContentsSender().send(
Expand Down
2 changes: 2 additions & 0 deletions packages/preload/src/index.ts
Expand Up @@ -1004,6 +1004,7 @@ function initExposure(): void {
containerBuildContextDirectory: string,
relativeContainerfilePath: string,
imageName: string,
platform: string,
selectedProvider: ProviderContainerConnectionInfo,
key: symbol,
eventCollect: (key: symbol, eventName: 'finish' | 'stream' | 'error', data: string) => void,
Expand All @@ -1017,6 +1018,7 @@ function initExposure(): void {
containerBuildContextDirectory,
relativeContainerfilePath,
imageName,
platform,
selectedProvider,
onDataCallbacksBuildImageId,
cancellableTokenId,
Expand Down
Expand Up @@ -27,6 +27,7 @@ let buildFinished = false;
let containerImageName = 'my-custom-image';
let containerFilePath: string;
let containerBuildContextDirectory: string;
let containerBuildPlatform: string;
let buildImageInfo: BuildImageInfo | undefined = undefined;
let cancellableTokenId: number | undefined = undefined;
Expand Down Expand Up @@ -69,6 +70,7 @@ async function buildContainerImage(): Promise<void> {
containerBuildContextDirectory,
relativeContainerfilePath,
containerImageName,
containerBuildPlatform,
selectedProvider,
buildImageInfo.buildImageKey,
eventCollect,
Expand Down

0 comments on commit 0e6d95b

Please sign in to comment.