PackageInstaller.json

{
    "Parameters": {
        "Package": {
            "Type": "string",
            "Description": "Filename of the package"
        },
        "SiteFolder": {
            "Type": "string",
            "Description": "Folder where Sitecore is installed"
        },
        "SiteUrl": {
            "Type": "string",
            "Description": "Url of Sitecore Content Management server, i.e. https://cms.site.com"
        },
        "DownloadBase": {
            "Type": "string",
            "Description": "Where assets should be downloaded from"
        },
        "DownloadFolder": {
            "Type": "string",
            "Description": "Specifies where assets should be downloaded to"
        }
    },
    "Modules": [
        ".\\PackageInstaller.psm1"
    ],
    "Variables": {
        "PackageUrl": "[concat(parameter('DownloadBase'), '/', parameter('Package'))]",
        "PackageZip": "[joinpath(parameter('DownloadFolder'), parameter('Package'))]"
    },
    "Register": {
        "Tasks": {
            "DownloadIfNeeded": "Invoke-DownloadIfNeeded"
        }
    },
    "Tasks": {
        "Download Package": {
            "Type": "DownloadIfNeeded",
            "Params": {
                "source": "[variable('PackageUrl')]",
                "target": "[variable('PackageZip')]"
            }
        },
        "Install Sitecore Package Installer": {
            "Type": "InstallSitecorePackageInstaller",
            "Params": {
                "SiteFolder": "[parameter('SiteFolder')]"
            }
        },
        "Install package": {
            "Type": "InstallSitecorePackage",
            "Params": {
                "SiteUrl": "[parameter('SiteUrl')]",
                "PackagePath": "[variable('PackageZip')]"
            }
        },
        "Remove Sitecore Package Installer": {
            "Type": "RemoveSitecorePackageInstaller",
            "Params": {
                "SiteFolder": "[parameter('SiteFolder')]"
            }
        }
    }
}