Coder Social home page Coder Social logo

camilohe / invoke-build Goto Github PK

View Code? Open in Web Editor NEW

This project forked from nightroman/invoke-build

0.0 2.0 0.0 2.49 MB

Build Automation in PowerShell

Home Page: https://github.com/nightroman/Invoke-Build/wiki

License: Other

PowerShell 99.73% Batchfile 0.27%

invoke-build's Introduction

Build Automation in PowerShell

Invoke-Build is a build and test automation tool which invokes tasks defined in PowerShell scripts. It is similar to psake but arguably easier to use and more powerful.

In addition to basic task processing the engine supports

  • Incremental tasks with effectively processed inputs and outputs.
  • Persistent builds which can be resumed after interruptions.
  • Parallel builds as a part of another with common stats.
  • Batch invocation of tests composed as tasks.
  • Ability to define new classes of tasks.

The package

The standalone script Invoke-Build.ps1 is enough for invoking build scripts. It can be downloaded directly from the repository and used alone right away. The package also includes helper scripts and the generated help file:

  • Invoke-Build.ps1 - invokes build scripts, this is the build engine
  • Invoke-Builds.ps1 - invokes parallel builds using the engine
  • Invoke-Build-Help.xml - external content for Get-Help
  • ib.cmd - Invoke-Build helper for cmd.exe

Extra tools are available at the project repository:

  • Convert-psake.ps1 - converts psake build scripts
  • Invoke-TaskFromISE.ps1 - invokes a task from ISE
  • Show-BuildTree.ps1 - shows task trees as text
  • Show-BuildGraph.ps1 - shows task trees by Graphviz
  • TabExpansionProfile.Invoke-Build.ps1 - code completers

Installation

Invoke-Build is distributed as the NuGet package Invoke-Build. Download it to the current location as the directory "Invoke-Build" by this PowerShell command:

iex (New-Object Net.WebClient).DownloadString('https://github.com/nightroman/Invoke-Build/raw/master/Download.ps1')

Alternatively, get it by NuGet tools or download. In the latter case rename the package to ".zip" and unzip. Use the package subdirectory "tools".

This is it, scripts are ready to use. Consider to include the directory with scripts to the system path so that script paths may be omitted in commands.

With cmd.exe use the helper ib.cmd. For similar experience in interactive PowerShell use an alias ib defined in a PowerShell profile

Set-Alias ib <path>\Invoke-Build.ps1

<path>\ may be omitted if the script is in the path.

Getting help

Make sure Invoke-Build-Help.xml from the package is in the same directory as Invoke-Build.ps1 and invoke

help Invoke-Build -full

In order to get help for commands, at first dot-source Invoke-Build:

. Invoke-Build

This imports commands and makes their help available:

help task -full

Online resources

  • Basic Concepts : Why build scripts may have advantages over normal scripts.
  • Script Tutorial : Take a look in order to get familiar with build scripts.
  • Project Wiki : Detailed tutorials, helpers, notes, and etc.
  • Examples : Build scripts used in various projects.
  • Tasks : Samples, patterns, and various techniques.

Questions, suggestions, and issues are welcome at Google Discussion Group and Project Issues. Or just hit me up on Twitter @romkuzmin

Credits

The project was inspired by psake. Some concepts come from MSBuild.

invoke-build's People

Contributors

nightroman avatar

Watchers

Camilo E. Hidalgo Estevez avatar James Cloos 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.