export async function deploySelectedCodeVersion()

in src/commands/deploy/index.ts [217:264]


export async function deploySelectedCodeVersion(
  name: string,
  selectedType: PublishType,
  version: string
): Promise<void> {
  const server = await ApiService.getInstance();

  const param: PublishRoutineCodeVersionReq = {
    Name: name,
    Env:
      selectedType === PublishType.Staging
        ? Environment.Staging
        : Environment.Production
  };

  if (selectedType === PublishType.Canary) {
    const res = await server.listRoutineCanaryAreas();
    const canaryList = res?.CanaryAreas ?? [];
    logger.log(
      `📃 ${t('deploy_select_canary').d('Please select the canary area(s) you want to deploy to')}`
    );
    const canaryAreaSelectList: TableItem[] = canaryList.map((area) => {
      return { label: area };
    });
    const selectedCanaryList = await displayMultiSelectTable(
      specialAreaTransfer(canaryAreaSelectList)
    );

    param.CanaryAreaList = selectedCanaryList;
    param.CanaryCodeVersion = version;
  } else {
    param.CodeVersion = version;
  }
  try {
    const res = await server.publishRoutineCodeVersion(param);

    if (res) {
      logger.success(
        t('deploy_success').d('Your code has been successfully deployed')
      );
      logger.log(
        `👉 ${t('deploy_success_guide').d('Run this command to add domains')}: ${chalk.green('esa domain add <DOMAIN>')}`
      );
    }
  } catch (e) {
    console.error(e);
  }
}