public async release()

in src/script/management-sdk.ts [252:277]


    public async release(appName: string, deploymentName: string, filePath: string, targetBinaryVersion: string, updateMetadata: PackageInfo, uploadProgressCallback?: (progress: number) => void): Promise<Package> {
        updateMetadata.appVersion = targetBinaryVersion;
        const packageFile: PackageFile = await this.packageFileFromPath(filePath);
        const appParams = await this._adapter.parseApiAppName(appName);

        const assetJsonResponse: JsonResponse = await this._requestManager.post(urlEncode`/apps/${appParams.appOwner}/${appParams.appName}/deployments/${deploymentName}/uploads`, null, true)
        const assets = assetJsonResponse.body as ReleaseUploadAssets;

        await this._fileUploadClient.upload({
            assetId: assets.id,
            assetDomain: assets.upload_domain,
            assetToken: assets.token,
            file: packageFile.path,
            onProgressChanged: (progressData: IProgress) => {
                if (uploadProgressCallback) {
                    uploadProgressCallback(progressData.percentCompleted);
                }
            },
        });

        const releaseUploadProperties: UploadReleaseProperties = this._adapter.toReleaseUploadProperties(updateMetadata, assets, deploymentName);
        const releaseJsonResponse: JsonResponse = await this._requestManager.post(urlEncode`/apps/${appParams.appOwner}/${appParams.appName}/deployments/${deploymentName}/releases`, JSON.stringify(releaseUploadProperties), true);
        const releasePackage: Package = this._adapter.releaseToPackage(releaseJsonResponse.body);

        return releasePackage;
    }