Skip to content
Merged
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
14 changes: 7 additions & 7 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@
"@dfinity/ic-management": "^6.0.0",
"@dfinity/identity": "^2.1.3",
"@dfinity/principal": "^2.1.3",
"@junobuild/admin": "^0.0.58-next-2024-11-22",
"@junobuild/admin": "^0.0.58-next-2024-11-24",
"@junobuild/cli-tools": "^0.0.16",
"@junobuild/config-loader": "^0.0.7",
"@junobuild/core-peer": "^0.0.29",
Expand Down
1 change: 1 addition & 0 deletions src/help/upgrade.help.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ Options:
${yellow('-s, --src')} A local gzipped wasm file for the upgrade.
${yellow('-r, --reset')} Reset to the initial state.
${yellow('-n, --nocheck')} Skip assertions and execute upgrade without prompts.
${yellow('-c, --clear-chunks')} Clear any previously uploaded WASM chunks (applies if the WASM size is greater than 2MB).
${helpMode}
${yellow('-h, --help')} Output usage information.

Expand Down
35 changes: 22 additions & 13 deletions src/services/upgrade/upgrade.mission-control.services.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,12 @@ import {MISSION_CONTROL_WASM_NAME} from '../../constants/constants';
import type {UpgradeWasmModule} from '../../types/upgrade';
import {actorParameters} from '../../utils/actor.utils';
import {NEW_CMD_LINE} from '../../utils/prompt.utils';
import {selectVersion, upgradeWasmCdn, upgradeWasmLocal} from './upgrade.services';
import {
consoleUpgradeResult,
selectVersion,
upgradeWasmCdn,
upgradeWasmLocal
} from './upgrade.services';

export const upgradeMissionControl = async (args?: string[]) => {
const missionControl = await getCliMissionControl();
Expand All @@ -34,20 +39,20 @@ export const upgradeMissionControl = async (args?: string[]) => {
...(await actorParameters())
};

const consoleSuccess = () => {
console.log(`✅ Mission control successfully upgraded.`);
const consoleResult = (result: {success: boolean; err?: unknown}) => {
consoleUpgradeResult({...result, successMessage: 'Mission control successfully upgraded.'});
};

if (hasArgs({args, options: ['-s', '--src']})) {
await upgradeMissionControlCustom({args, missionControlParameters});
const result = await upgradeMissionControlCustom({args, missionControlParameters});

consoleSuccess();
consoleResult(result);
return;
}

await updateMissionControlRelease({args, missionControlParameters});
const result = await updateMissionControlRelease({args, missionControlParameters});

consoleSuccess();
consoleResult(result);
};

const updateMissionControlRelease = async ({
Expand All @@ -56,7 +61,7 @@ const updateMissionControlRelease = async ({
}: {
args?: string[];
missionControlParameters: MissionControlParameters;
}) => {
}): Promise<{success: boolean; err?: unknown}> => {
const currentVersion = await missionControlVersion({
missionControl: missionControlParameters
});
Expand All @@ -69,19 +74,21 @@ const updateMissionControlRelease = async ({
});

if (version === undefined) {
return;
return {success: false};
}

const nocheck = hasArgs({args, options: ['-n', '--nocheck']});
const preClearChunks = hasArgs({args, options: ['-c', '--clear-chunks']});

const upgradeMissionControlWasm = async (params: UpgradeWasmModule) => {
await upgradeMissionControlAdmin({
missionControl: missionControlParameters,
preClearChunks,
...params
});
};

await upgradeWasmCdn({
return await upgradeWasmCdn({
version,
nocheck,
assetKey: 'mission_control',
Expand All @@ -95,22 +102,24 @@ const upgradeMissionControlCustom = async ({
}: {
missionControlParameters: MissionControlParameters;
args?: string[];
}) => {
}): Promise<{success: boolean; err?: unknown}> => {
const src = nextArg({args, option: '-s'}) ?? nextArg({args, option: '--src'});

if (src === undefined) {
console.log(`${red('No source file provided.')}`);
return;
return {success: false};
}

const nocheck = hasArgs({args, options: ['-n', '--nocheck']});
const preClearChunks = hasArgs({args, options: ['-c', '--clear-chunks']});

const upgradeMissionControlWasm = async (params: UpgradeWasmModule) => {
await upgradeMissionControlAdmin({
missionControl: missionControlParameters,
preClearChunks,
...params
});
};

await upgradeWasmLocal({src, nocheck, upgrade: upgradeMissionControlWasm});
return await upgradeWasmLocal({src, nocheck, upgrade: upgradeMissionControlWasm});
};
50 changes: 35 additions & 15 deletions src/services/upgrade/upgrade.orbiter.services.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,13 @@ import type {UpgradeWasmModule} from '../../types/upgrade';
import {actorParameters} from '../../utils/actor.utils';
import {NEW_CMD_LINE} from '../../utils/prompt.utils';
import {orbiterKey} from '../../utils/satellite.utils';
import {confirmReset, selectVersion, upgradeWasmCdn, upgradeWasmLocal} from './upgrade.services';
import {
confirmReset,
consoleUpgradeResult,
selectVersion,
upgradeWasmCdn,
upgradeWasmLocal
} from './upgrade.services';

export const upgradeOrbiters = async (args?: string[]) => {
const authOrbiters = await getCliOrbiters();
Expand All @@ -28,20 +34,20 @@ export const upgradeOrbiters = async (args?: string[]) => {
...(await actorParameters())
};

const consoleSuccess = () => {
console.log(`✅ Orbiter successfully upgraded.`);
const consoleResult = (result: {success: boolean; err?: unknown}) => {
consoleUpgradeResult({...result, successMessage: 'Orbiter successfully upgraded.'});
};

if (hasArgs({args, options: ['-s', '--src']})) {
await upgradeOrbiterCustom({args, orbiterParameters});
const result = await upgradeOrbiterCustom({args, orbiterParameters});

consoleSuccess();
consoleResult(result);
return;
}

await updateOrbiterRelease(orbiterParameters);
const result = await updateOrbiterRelease(orbiterParameters);

consoleSuccess();
consoleResult(result);
};

for (const orbiter of authOrbiters) {
Expand All @@ -55,34 +61,39 @@ const upgradeOrbiterCustom = async ({
}: {
orbiterParameters: OrbiterParameters;
args?: string[];
}) => {
}): Promise<{success: boolean; err?: unknown}> => {
const src = nextArg({args, option: '-s'}) ?? nextArg({args, option: '--src'});

if (src === undefined) {
console.log(`${red('No source file provided.')}`);
return;
return {success: false};
}

const reset = await confirmReset({args, assetKey: 'orbiter'});

const nocheck = hasArgs({args, options: ['-n', '--nocheck']});
const preClearChunks = hasArgs({args, options: ['-c', '--clear-chunks']});

const upgradeOrbiterWasm = async (params: UpgradeWasmModule) => {
await upgradeOrbiterAdmin({
orbiter: orbiterParameters,
...params,
...(reset && {reset})
...(reset && {reset}),
preClearChunks
});
};

await upgradeWasmLocal({src, nocheck, upgrade: upgradeOrbiterWasm, reset});
return await upgradeWasmLocal({src, nocheck, upgrade: upgradeOrbiterWasm, reset});
};

const updateOrbiterRelease = async ({
args,
...orbiterParameters
}: Required<Pick<OrbiterParameters, 'orbiterId'>> &
Omit<OrbiterParameters, 'orbiterId'> & {args?: string[]}) => {
Omit<OrbiterParameters, 'orbiterId'> & {args?: string[]}): Promise<{
success: boolean;
err?: unknown;
}> => {
const currentVersion = await orbiterVersion({
orbiter: orbiterParameters
});
Expand All @@ -95,19 +106,28 @@ const updateOrbiterRelease = async ({
});

if (version === undefined) {
return;
return {success: false};
}

const reset = await confirmReset({args, assetKey: 'orbiter'});

const nocheck = hasArgs({args, options: ['-n', '--nocheck']});
const preClearChunks = hasArgs({args, options: ['-c', '--clear-chunks']});

const upgradeOrbiterWasm = async (params: UpgradeWasmModule) => {
await upgradeOrbiterAdmin({
orbiter: orbiterParameters,
...params,
...(reset && {reset})
...(reset && {reset}),
preClearChunks
});
};

await upgradeWasmCdn({version, assetKey: 'orbiter', upgrade: upgradeOrbiterWasm, reset, nocheck});
return await upgradeWasmCdn({
version,
assetKey: 'orbiter',
upgrade: upgradeOrbiterWasm,
reset,
nocheck
});
};
Loading