Cake-Build addin that extends Cake with WebDeploy commands for publishing to IIS
- Implemented functionality
- Referencing
- Usage
- Example
- TroubleShooting
- Plays well with
- License
- Share the love
- Deploy websites from a package or folder
- Locally / remotely using credentials
- Outputting the trace information to the cake log
- Testing changes using WhatIf flag
Cake.WebDeploy is available as a nuget package from the package manager console:
Install-Package Cake.WebDeploy
or directly in your build script via a cake addin directive:
#addin "Cake.WebDeploy"
#addin "Cake.WebDeploy"
Task("Deploy")
.Description("Deploy to a remote computer with web deployment agent installed")
.Does(() =>
{
DeployWebsite(new DeploySettings()
{
SourcePath = "./src/Package.zip",
SiteName = "TestSite",
ComputerName = "remote-location",
Username = "admin",
Password = "pass1"
});
});
Task("Deploy-Folder")
.Description("Deploy to/from folders")
.Does(() =>
{
DeployWebsite(new DeploySettings()
{
SourcePath = "./src/Website/",
DestinationPath = @"C:/src/Websites/Test/",
Username = "admin",
Password = "pass1"
});
});
Task("Deploy-Url")
.Description("Deploy to Azure using a custom Url")
.Does(() =>
{
DeployWebsite(new DeploySettings()
{
SourcePath = "./src/Package.zip",
PublishUrl = "{WEBSITENAME}.scm.azurewebsites.net",
Username = "admin",
Password = "pass1"
});
});
Task("Deploy-Fluent")
.Description("Deploy using fluent settings")
.Does(() =>
{
DeployWebsite(new DeploySettings()
.FromSourcePath("./src/Package.zip")
.UseSiteName("TestSite")
.UseComputerName("remote-location")
.UseUsername("admin")
.UsePassword("pass1"));
});
Task("Deploy-WhatIf")
.Description("See what would occur when publishing (WhatIf) and files should be deleted if they don't exist (Delete)")
.Does(() =>
{
DeployWebsite(new DeploySettings()
{
SourcePath = "./src/Package.zip",
Username = "admin",
Password = "pass1",
Delete = true,
WhatIf = true
});
});
RunTarget("Deploy");
A complete Cake example can be found here.
A few pointers for correctly enabling WebDeploy scripting can be found here.
If your looking to manage IIS its worth checking out Cake.IIS or if your running a WebFarm inside AWS then check out Cake.AWS.ElasticLoadBalancing.
If your looking for a way to trigger cake tasks based on windows events or at scheduled intervals then check out CakeBoss.
Copyright (c) 2015 - 2016 Phillip Sharpe
Cake.WebDeploy is provided as-is under the MIT license. For more information see LICENSE.
If this project helps you in anyway then please โญ the repository.