function performDeployTask()

in Tasks/codepush-release/codepush-release.js [58:103]


function performDeployTask(accessKey, appName, packagePath, appStoreVersion, deploymentName, description, rollout, isMandatory, isDisabled) {
  // If function arguments are provided (e.g. during test), use those, else, get user inputs provided by VSTS.
  var authType = tl.getInput("authType", false);
  if (authType === "AccessKey") {
      accessKey = tl.getInput("accessKey", true);
  } else if (authType === "ServiceEndpointCodePush" || authType === "ServiceEndpointHockeyApp") {
      var serviceAccount = tl.getEndpointAuthorization(tl.getInput(authType, true));
      accessKey = serviceAccount.parameters.password;
  }

  appName         = appName || tl.getInput("appName", true);
  packagePath     = packagePath || tl.getPathInput("packagePath", true);
  appStoreVersion = appStoreVersion || tl.getInput("appStoreVersion", true);
  deploymentName  = deploymentName || tl.getInput("deploymentName", false);
  description     = description || tl.getInput("description", false);
  rollout         = rollout || tl.getInput("rollout", false);
  isMandatory     = isMandatory || tl.getBoolInput("isMandatory", false);
  isDisabled      = isDisabled || tl.getBoolInput("isDisabled", false);
  
  if (!accessKey) {
      console.error("Access key required");
      tl.setResult(1, "Access key required");
  }
  
  // Ensure all other users are logged out.
  ensureLoggedOut();
  
  // Log in to the CodePush CLI.
  executeCommandAndHandleResult("login", /*positionArgs*/ null, { accessKey: accessKey });
  
  // Run release command.
  executeCommandAndHandleResult(
    "release", 
    [appName, packagePath, appStoreVersion], 
    { 
      deploymentName: deploymentName,
      description: description,
      rollout: rollout,
      mandatory: isMandatory,
      disabled: isDisabled
    }
  );
  
  // Log out.
  ensureLoggedOut();
}