All Projects → nightroman → Invoke Build

nightroman / Invoke Build

Licence: apache-2.0
Build Automation in PowerShell

Programming Languages

powershell
5483 projects

Projects that are alternatives of or similar to Invoke Build

Zeus
An Electrifying Build System
Stars: ✭ 176 (-61.15%)
Mutual labels:  automation, build, build-automation
Pybuilder
Software build automation tool for Python.
Stars: ✭ 1,290 (+184.77%)
Mutual labels:  automation, build, build-automation
Mbt
The most flexible build tool for monorepo
Stars: ✭ 184 (-59.38%)
Mutual labels:  automation, build
Jenkins Ue4
Automated Unreal Engine 4 Project Builds
Stars: ✭ 206 (-54.53%)
Mutual labels:  automation, build-automation
Cpp Reflection
C++ Reflection Parser / Runtime Skeleton
Stars: ✭ 440 (-2.87%)
Mutual labels:  automation, build
old vespene
DISCONTINUED: a frozen fork will exist forever at mpdehaan/vespene
Stars: ✭ 672 (+48.34%)
Mutual labels:  automation, build
Nake
Magic script-based C# task runner for .NET Core
Stars: ✭ 183 (-59.6%)
Mutual labels:  automation, build
vsSolutionBuildEvent
🎛 Event-Catcher with variety of advanced Actions to service projects, libraries, build processes, runtime environment of the Visual Studio, MSBuild Tools, and …
Stars: ✭ 66 (-85.43%)
Mutual labels:  build, build-automation
Build Harness
🤖Collection of Makefiles to facilitate building Golang projects, Dockerfiles, Helm charts, and more
Stars: ✭ 236 (-47.9%)
Mutual labels:  build, build-automation
build
Build system scripts based on GENie (https://github.com/bkaradzic/genie) project generator
Stars: ✭ 30 (-93.38%)
Mutual labels:  build, build-automation
Nginx-builder
A tool to build deb or rpm package of required Nginx version from the source code, with the ability to connect third-party modules. Nginx parameters are set in the yaml configuration file.
Stars: ✭ 143 (-68.43%)
Mutual labels:  build, build-automation
icu-cmake
CMake wrapper for ICU supporting cross-compilation
Stars: ✭ 25 (-94.48%)
Mutual labels:  build, build-automation
Unity Build
A powerful automation tool for quickly and easily generating builds of a game with Unity.
Stars: ✭ 483 (+6.62%)
Mutual labels:  automation, build-automation
Gaia
Build powerful pipelines in any programming language.
Stars: ✭ 4,534 (+900.88%)
Mutual labels:  automation, build
Psdeploy
Simple PowerShell based deployments
Stars: ✭ 302 (-33.33%)
Mutual labels:  build, build-automation
aseprite-macos-buildsh
Automated script to create latest release app (either beta, or release whichever is newer) of Aseprite for macOS
Stars: ✭ 143 (-68.43%)
Mutual labels:  build, build-automation
Buildhelpers
Helper functions for PowerShell CI/CD scenarios
Stars: ✭ 174 (-61.59%)
Mutual labels:  build, build-automation
Earthly
Repeatable builds
Stars: ✭ 5,805 (+1181.46%)
Mutual labels:  build, build-automation
UnityBuildManager
Utility for running builds sequence & pushing them to markets & keeping changelog
Stars: ✭ 53 (-88.3%)
Mutual labels:  build, build-automation
jagen
A software engineer's workspace manager and build systems wrapper
Stars: ✭ 32 (-92.94%)
Mutual labels:  build, build-automation

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
  • Show-TaskHelp.ps1 - shows task help, used on WhatIf calls
  • InvokeBuild-Help.xml - external content for Get-Help
  • ib.cmd, ib.sh - cmd and bash helpers

Extra tools, see PSGallery and the repository:

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

And some more tools, see the repository:

  • Build-JustTask.ps1 - invokes tasks without references
  • Convert-psake.ps1 - converts psake build scripts, see wiki
  • Show-BuildTree.ps1 - shows task trees as text
  • Show-BuildDgml.ps1 - shows task trees as DGML
  • 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 package manually, rename it to zip, extract its tools and rename to InvokeBuild. Consider to include this directory to the path so that script paths may be omitted in commands. Or 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

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

Credits

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].