Skip to content

az235/Cake.WebDeploy

 
 

Repository files navigation

Cake.WebDeploy

Cake-Build addin that extends Cake with WebDeploy commands for publishing to IIS

Build status

cakebuild.net

Join the chat at https://gitter.im/cake-build/cake

Implemented functionality

  • Deploy websites from a package or folder
  • Locally / remotely using credentials
  • Outputting the trace information to the cake log
  • Testing changes using WhatIf flag

Referencing

NuGet Version NuGet Downloads

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:

#addin "Cake.WebDeploy"

Usage

#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");

Example

A complete Cake example can be found here

TroubleShooting

A few pointers for correctly enabling WebDeploy scripting can be found here

About

WebDeploy addin for Cake

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C# 70.6%
  • JavaScript 23.8%
  • PowerShell 4.7%
  • Other 0.9%