Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions src/services/emulator/_runner.services.ts
Original file line number Diff line number Diff line change
Expand Up @@ -204,6 +204,11 @@ const startEmulator = async ({config: extendedConfig}: {config: CliEmulatorConfi
const configFile = nonNullish(detectedConfig.configPath)
? basename(detectedConfig.configPath)
: undefined;

/**
* @deprecated as of v0.4.0, the container does not read the juno.config anymore.
* Sputnik build and Satellite's upgrades are triggered with a POST request to the exposed server.
*/
const configFilePath = nonNullish(configFile) ? join(process.cwd(), configFile) : undefined;

// Podman does not auto create the path folders.
Expand Down
38 changes: 38 additions & 0 deletions src/services/functions/build/_dispatch.services.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
import {red} from 'kleur';
import {readEmulatorConfig} from '../../../configs/emulator.config';
import {assertConfigAndReadSatelliteId} from '../../../utils/satellite.utils';
import {dispatchRequest} from '../../emulator/admin.services';

export const dispatchEmulatorUpgrade = async () => {
const {satelliteId} = await assertConfigAndReadSatelliteId();

await dispatchTouch({request: `satellite/upgrade?id=${satelliteId}`});
};

export const dispatchEmulatorBuild = async () => {
await dispatchTouch({request: 'sputnik/build'});
};

/**
* Workaround Podman and Apple container issues on macOS:
* - https://github.com/containers/podman/issues/22343
* - https://github.com/apple/container/issues/141
*/
const dispatchTouch = async ({request}: {request: string}) => {
const parsedResult = await readEmulatorConfig();

if (!parsedResult.success) {
return;
}

const {result} = await dispatchRequest({
config: parsedResult.config,
request
});

// We silence the error (result === error). Maybe the emulator is not running on purpose.

if (result === 'not_ok') {
console.log(red(`Invalid response from the emulator. Request '${request}' did not succeed.`));
}
};
4 changes: 2 additions & 2 deletions src/services/functions/build/build.rust.services.ts
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ import {formatTime} from '../../../utils/format.utils';
import {readPackageJson} from '../../../utils/pkg.utils';
import {readEmulatorConfigAndCreateDeployTargetDir} from '../../emulator/_fs.services';
import {prepareJunoPkgForSatellite, prepareJunoPkgForSputnik} from './build.metadata.services';
import {dispatchEmulatorTouchSatellite} from './touch.services';
import {dispatchEmulatorUpgrade} from './_dispatch.services';

export const buildRust = async ({
paths,
Expand Down Expand Up @@ -161,7 +161,7 @@ export const buildRust = async ({
spinner.stop();
}

await dispatchEmulatorTouchSatellite();
await dispatchEmulatorUpgrade();
};

const SATELLITE_DID_FILE = join(DEVELOPER_PROJECT_SATELLITE_PATH, 'satellite.did');
Expand Down
4 changes: 2 additions & 2 deletions src/services/functions/build/build.services.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ import {type BuildArgs} from '../../../types/build';
import {buildArgs} from '../../../utils/build.utils';
import {buildJavaScript, buildTypeScript} from './build.javascript.services';
import {buildRust} from './build.rust.services';
import {dispatchEmulatorTouchSputnik} from './touch.services';
import {dispatchEmulatorBuild} from './_dispatch.services';

export const build = async (args?: string[]) => {
const {watch, ...params} = buildArgs(args);
Expand Down Expand Up @@ -118,7 +118,7 @@ const executeSputnikBuild = async ({
const withToolchain = nonNullish(paths?.cargo) || ENV.ci;

if (!withToolchain) {
await dispatchEmulatorTouchSputnik();
await dispatchEmulatorBuild();
return;
}

Expand Down
53 changes: 0 additions & 53 deletions src/services/functions/build/touch.services.ts

This file was deleted.

Loading