gep13 / Cake.WebDeploy

WebDeploy addin for Cake

Home Page:http://cakebuild.net

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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

Table of contents

  1. Implemented functionality
  2. Referencing
  3. Usage
  4. Example
  5. TroubleShooting
  6. Plays well with
  7. License
  8. Share the love

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

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"

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.

Plays well with

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.

License

Copyright (c) 2015 - 2016 Phillip Sharpe

Cake.WebDeploy is provided as-is under the MIT license. For more information see LICENSE.

Share the love

If this project helps you in anyway then please ⭐ the repository.

About

WebDeploy addin for Cake

http://cakebuild.net

License:MIT License


Languages

Language:C# 70.5%Language:JavaScript 22.0%Language:PowerShell 6.6%Language:CSS 0.6%Language:Batchfile 0.2%Language:ASP 0.1%