Powershell Continuous Integration and Deployment Automation library (Configuration as Code, Powershell DSC)
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
PSCI
build
examples
.gitignore
LICENSE
README.md
appveyor.yml

README.md

Build status

PSCI - Powershell Continuous Integration / Configuration as Code


PSCI is a build and deployment automation library that provides a simple Powershell DSC-like language allowing to express configuration as code. The general flow is presented on the image below: PSCI overview

There are several possibilities to run the deployment code - see Remoting configuration for diagrams:

  • Powershell function run on local machine.
  • Powershell function run on destination machine.
  • DSC configuration run on destination machine.
  • Double-hop deployments - e.g. WebDeploy + DSC.

PSCI provides following features:

  • Simple DSL to describe Environments, Server Roles, Server Connections and Tokens (per-environment parameters).
  • Written entirely in Powershell (requires Powershell 3.0, or 4.0 for DSC support).
  • Provisioning mechanism that is based on Powershell Desired State Configuration resources or custom Powershell functions.
  • Agentless architecture - deployment to remote environments pushes packages and execute code remotely using Powershell Remoting (WinRM) or Web Deploy.
  • Reliable logging mechanism throughout the whole build and deployment process - every step is logged to console, text file and event log (optionally), errors include full stack trace / script lines information and friendly messages.
  • Building and deploying various types of packages (MsDeploy - e.g. ASP.NET MVC or WPF, SQL, DbDeploy, Entity Framework Migrations, SSRS, SSAS, SSIS), easily extensible with new types of packages.
  • Supports several methods of tokenizing configuration files (e.g. Web.config) - directly replace tokens in files (using regex), transform using XDT (Web.<env_name>.config) or use Web Deploy parameterization.
  • Supports Windows Server 2008 R2 SP1 / 7 and above (some available DSC resources like xWebsite have been fixed to work with pre-Server 2012).

Additionally, Objectivity.TeamcityMetarunners provides a set of TeamCity metarunners that make use of PSCI functions.

Why PSCI?

See Why PSCI.

Where to start?