Coder Social home page Coder Social logo

nsartor / invoke-build Goto Github PK

View Code? Open in Web Editor NEW

This project forked from nightroman/invoke-build

0.0 1.0 0.0 1020 KB

Build Automation in PowerShell

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

License: Other

PowerShell 99.79% Batchfile 0.21%

invoke-build's Introduction

NuGet PSGallery

Build Automation in PowerShell

Invoke-Build is a build and test automation tool which invokes tasks defined in PowerShell v2.0+ scripts. It is similar to psake but arguably easier to use and more powerful. It is complete, bug free, well covered by tests.

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 in separate workspaces with common stats.
  • Batch invocation of tests composed as tasks.
  • Ability to define new classes of tasks.

Invoke-Build v3.0.1+ is cross-platform with PowerShell v6.

Invoke-Build can be effectively used in VSCode and ISE.

Several PowerShell Team projects use Invoke-Build.

The package

The package includes the engine, helpers, and the generated help:

  • Invoke-Build.ps1 - invokes build scripts, this is the build engine
  • Build-Checkpoint.ps1 - invokes persistent builds using the engine
  • Build-Parallel.ps1 - invokes parallel builds using the engine
  • Resolve-MSBuild.ps1 - finds the specified or latest MSBuild
  • InvokeBuild-Help.xml - external content for Get-Help
  • ib.cmd - Invoke-Build helper for cmd.exe

Extra tools, see PSGallery and the repository:

  • Invoke-Build.ArgumentCompleters.ps1 - completers for v5 native, TabExpansionPlusPlus, TabExpansion2.ps1
  • Invoke-TaskFromISE.ps1 - invokes a task from a build script opened in ISE
  • Invoke-TaskFromVSCode.ps1 - invokes a task from a build script opened in VSCode
  • New-VSCodeTask.ps1 - generates VSCode tasks bound to build script tasks

And some more tools, see the repository:

  • Convert-psake.ps1 - converts psake build scripts
  • Show-BuildTree.ps1 - shows task trees as text
  • Show-BuildGraph.ps1 - shows task trees by Graphviz

Install as module

Invoke-Build is distributed as the module InvokeBuild. In PowerShell 5.0 or with PowerShellGet you can install it by this command

Install-Module InvokeBuild

To install the module with Chocolatey, run the following command. NOTE: This package is maintained by its owner, see package info.

choco install invoke-build

Module commands: Invoke-Build, Build-Checkpoint, Build-Parallel. Import the module in order to make them available:

Import-Module InvokeBuild

You can also call the module scripts directly. Consider to include the module directory to the path. In this scenario you do not have to import the module.

Install as scripts

Invoke-Build is also distributed as the NuGet package Invoke-Build. This package includes the module files, so it can be used as the module, too, either copy it to the standard module folder or import its InvokeBuild.psd1.

If you use scoop then invoke

scoop install invoke-build

and you are done, scripts are downloaded and their directory is added to the path. You may need to start a new PowerShell session with the updated path.

Otherwise download the directory "Invoke-Build" to the current location by this PowerShell command:

Invoke-Expression "& {$((New-Object Net.WebClient).DownloadString('https://github.com/nightroman/PowerShelf/raw/master/Save-NuGetTool.ps1'))} Invoke-Build"

Consider to include the directory with scripts to the path so that script paths may be omitted in commands. Alternatively, rename to InvokeBuild and copy to the PowerShell module directory in order to use as the module.

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

If you are using the module (see #2899) or the script is not in the path then use the full path to Invoke-Build.ps1 instead of Invoke-Build in the below commands, see (Get-Alias Invoke-Build).Definition

In order to get help for the engine, invoke:

help Invoke-Build -full

In order to get help for internal commands:

. Invoke-Build
help task -full
help exec -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.
  • Design Notes : Technical details for contributors.

Questions, suggestions, and reports are welcome as project issues. Or just hit me up on Twitter @romkuzmin

Credits

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.