Git Product home page Git Product logo

cake.webdeploy's Introduction

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 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 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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.