Indented.Build centralises the build processes / scripts used by my modules.
The goal of this module is to act as a means of accessing and executing a well maintained set of steps which can apply across a very large module base (public and private).
My build process avoids use of dedicate build task runners such as psake or Invoke*Build on the basis that managing execution of the process is the smallest problem. The process is a bunch of sequentially executed functions with a very short overall build time.
The executor can only be used with PowerShell 5.0 or higher.
Install-Module Indented.Build
- Poshcode\Configuration
- Pester
- platyPS
- PSScriptAnalyzer
- Setup
- UpdateAppVeyorYml
- UpdateAppVeyorVersion
- Build
- Clean
- TestSyntax
- TestAttributeSyntax
- CopyModuleFiles
- Merge
- CompileClass
- When module\class*.cs exist, and module\class*.*proj and module\class*.sln do not exist.
- BuildProject
- When module\class*.*proj exists and module\class*.sln does not.
- BuildSolution
- When module\class*.sln exists.
- ImportDependencies
- When module\modules.config exists.
- UpdateMetadata
- UpdateMarkdownHelp
- When platyPS is available.
- Test
- TestModuleImport
- PSScriptAnalyzer
- When the release type is minor or greater.
- TestModule
- TestSolution
- When module\class*.sln exists, and the nunitconsole (nuget package) has been restored.
- AddAppVeyorCommitMessage
- When Add*AppveyorCompilationMessage is available.
- UploadAppVeyorTestResults
- When env:APPVEYOR_JOB_ID is set.
- ValidateTestResults
- Release
- UpdateCatalog
- When a code signing certificate is available.
- SignModule
- When a code signing certificate is available.
- UpdateCatalog
- Publish
- PublishGitHubRelease
- PublishToCurrentUser
- PublishToPSGallery