Giter VIP home page Giter VIP logo

unfold's Introduction

Unfold

Unfold is a complete deployment solution for .net based web applications. It gives you the ability to easily create and customize your deployment scenario's without having to resort to complex tools that are hard to automate or difficult to setup. Unfold is only powershell, so there's very little magic going on under the hood.

Check Getting Started wiki page for installation instructions and a quickstart

For updates and info, please check my blog

Example

The code snippet below is the entire deployment script for RaccoonBlog, the blogging engine behind Ayende's blog.

## A deployment example for RaccoonBlog, the blog engine that's powering
## blogs like Ayende's

# Configuration
Set-Config project "raccoonblog"

Set-Config scm git
Set-Config repository "https://github.com/fitzchak/RaccoonBlog.git"

# Environment to use when not specified
Set-Config default dev

Set-Config msbuild @('.\code\RaccoonBlog.Web\RaccoonBlog.Web.csproj')

# For custom apppool name
Set-Config apppool "raccoonblog"

# Environments
Set-Environment dev {
    Set-Config basePath "c:\inetpub\wwwroot\raccoon"

    # machine to deploy to
    Set-Config machine "localhost"
}

Set-Environment staging {
    Set-Config basePath "d:\sites\raccoon"
    Set-Config machine "122.123.124.125" # ip address where WinRM is configured
}

# Tasks
Import-DefaultTasks

# Set deploy as default task
task Default -depends "deploy"

Executing a deployment is now simply a matter of executing the following PowerShell command in the folder where your deployment script resides

.\unfold.ps1 deploy -to staging

Features

  • Can deploy to both local and remote machines

  • Deployments are based on what's in source control (git, svn) not what's in your working copy

  • Rollback

  • Deployment flow can be extended and/or customized through task hooks in order to allow advanced scenarios like

    • setting up a static website to server your images, js and css
    • migrating the database
    • modifying Web.config or other configuration files

Dependencies

There's nothing extra you need to install. Everything comes out-of-the-box.

Unfold depends on the following technologies. They are included in the installation.

  • For task configuration we depend on psake
  • For access to remote machines we used powershell remoting, the SSH for windows. Check the wikifor instructions on how to set this up on the deployment target.

TODO

  • hg support, and other scms
  • native support for database migration runners like FluentMigrator, DbUp or Entity Framework Migrations
  • support for deploying to multiple machines. At the moment there can be only one target.
  • Create-AssemblyInfo function for generating a shared assembmy info. Based on this

unfold's People

Watchers

 avatar  avatar

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.