Some files contained character sequences that cause anti-virus software, Cortex XDR, to crash PowerShell.
- Tested against BuildMaster 2023.14.
Released 10 Nov 2023
This release contains breaking changes. Please read these upgrade instructions carefully before upgrading.
- The
Get-BMVariable
function now converts OtterScript vector and map expressions to native PowerShell array and hashtable types respectively. Use the new-Raw
switch to retain the previous behavior where variable values are always returned as a string in their OtterScript expression form. - The
Get-BMVariable
function'sVariable
parameter has been renamed toName
. Replace all usages ofVariable
withName
.
ConvertFrom-BMOtterScriptExpression
converts OtterScript expressions into their equivalent PowerShell objects.ConvertTo-BMOtterScriptExpression
converts PowerShell objects into their equivalent OtterScript expressions.
- The
Get-BMVariable
function by default now converts all OtterScript variables to PowerShell objects before returning them. Use theRaw
flag to return the OtterScript variable as a string. - The
Get-BMVariable
function'sVariable
parameter has been renamed toName
. - The
Set-BMVariable
function now converts all provided arrays and hashtables to their respective OtterScript equivalents.
Released 18 Oct 2023
- Added parameters to
Get-BMDeployment
to filter for deployments byApplication
,Release
,Build
,Environment
,Pipeline
,Stage
, andStatus
.
Released 21 Jul 2023
Get-BMRaft
adds aRaft_Prefix
property to objects it returns.
Get-BMEnvironment
ensures that returned objects always have aparentName
property.Set-BMRelease
now works around a bug/feature in BuildMaster that fails to change a release's pipeline.
- Some expected/handled errors are not ignored.
- The
Set-BMRaft
function'sEnvironment
parameter. BuildMaster does not support setting the environment for a raft. This parameter was added because of a typo in the BuildMaster docs.
Released 17 Nov 2022
This is a continuation of the types of changes made in 2.0.0. See that release's changelog for upgrade instructions.
- These functions now write an error if an item doesn't exist (for
Get
,Remove
, andSet
functions) or if an item already exists (forNew
functions). Add-ErrorAction Ignore
to existing usages to preserve previous behavior:Set-BMRelease
Set-BMVariable
Stop-BMRelease
Application
to theDisable-BMApplication
function. This parameter accepts an application name, id, or application object and replaces the now-obsoleteID
parameter.Set-BMVariable
:Application
: accepts application ids, names, or application objects.ApplicationGroup
: accepts application group ids, names, or application group objects.Environment
: accepts environment ids, names, or environment objects.Server
: accepts server ids, names, or server objects.ServerRole
: accepts server role ids, names, or server names.
Application
to theStop-BMRelease
function. This parameter accepts an application name, id, or application object and replaces the now-obsoleteID
parameter.
- Updated
Get-BMVariable
andRemove-BMVariable
so they can get and remove variables for applications and application groups, which works around a bug in the BuildMaster Variables API.
- The
ID
parameter on theDisable-BMApplication
function. Use the newApplication
parameter instead. - The following parameters on
Set-BMVariable
:ApplicationName
; useApplication
instead.ApplicationGroupName
; useApplicationGroup
instead.EnvironmentName
; useEnvironment
instead.ServerName
; useServer
instead.ServerRoleName
; useServerRole
instead.
ApplicationID
on theStop-BMRelease
function. Use the newApplication
parameter instead.
Released 17 Nov 2022
Minimum supported version of BuildMaster is now 7.0.
This release contains breaking changes. Please read these upgrade instructions carefully before upgrading.
BuildMaster no longer supports active/inactive environments.
- Remove usages of the
Disable-BMEnvironment
andEnable-BMEnvironment
functions. - Remove usages of the
Get-BMEnvironment
andRemove-Environment
functions'Force
switch, which was used to operate on inactive environments.
These functions were updated to use BuildMaster's Infrastructure Management API. For each, check API key usages to ensure the key has access to that API and check that property usages on any return objects are using the correct names.
Get-BMEnvironment
Remove-BMEnvironment
BuildMaster no longer supports active/inactive applications.
- Remove usages of the
Active_Indicator
property on application objects.
- The
Get-BMEnvironment
function now uses the BuildMaster Infrastructure Management API. Property names on return object may be different. Different API key permissions are required. - The
Remove-BMEnvironment
function now uses the BuildMaster Infrastructure Management API. Different API key permissions are required.
Disable-BMEnvironment
Enable-BMEnvironment
Force
switch fromGet-BMEnvironment
andRemove-BMEnvironment
.
Released 15 Nov 2022
This is a continuation of the types of changes made in 2.0.0. See that release's changelog for upgrade instructions.
- These functions now write an error if an item doesn't exist (for
Get
,Remove
, andSet
functions) or if an item already exists (forNew
functions). Add-ErrorAction Ignore
to existing usages to preserve previous behavior:Set-BMRelease
Set-BMVariable
Stop-BMRelease
Application
to theDisable-BMApplication
function. This parameter accepts an application name, id, or application object and replaces the now-obsoleteID
parameter.Set-BMVariable
:Application
: accepts application ids, names, or application objects.ApplicationGroup
: accepts application group ids, names, or application group objects.Environment
: accepts environment ids, names, or environment objects.Server
: accepts server ids, names, or server objects.ServerRole
: accepts server role ids, names, or server names.
Application
to theStop-BMRelease
function. This parameter accepts an application name, id, or application object and replaces the now-obsoleteID
parameter.
- Updated
Get-BMVariable
andRemove-BMVariable
so they can get and remove variables for applications and application groups, which works around a bug in the BuildMaster Variables API.
- The
ID
parameter on theDisable-BMApplication
function. Use the newApplication
parameter instead. - The following parameters on
Set-BMVariable
:ApplicationName
; useApplication
instead.ApplicationGroupName
; useApplicationGroup
instead.EnvironmentName
; useEnvironment
instead.ServerName
; useServer
instead.ServerRoleName
; useServerRole
instead.
ApplicationID
on theStop-BMRelease
function. Use the newApplication
parameter instead.
Released 7 Nov 2022
This version of BuildMasterAutomation is only supported on BuildMaster 6.2. Some of it may work on older or newer versions, but we've only tested against BuildMaster 6.2.33.
This release contains breaking changes. Please read these upgrade instructions carefully before upgrading.
This release adds support for BuildMaster 6.2.33, which contains breaking changes from version 6.1.
- These functions now write an error if an item doesn't exist (for
Get
,Remove
, andSet
functions) or if an item already exists (forNew
functions). Add-ErrorAction Ignore
to existing usages to preserve previous behavior:Disable-BMEnvironment
Enable-BMEnvironment
Get-BMApplication
Get-BMApplicationGroup
Get-BMDeployment
Get-BMEnvironment
Get-BMRelease
Get-BMServer
Get-BMServerRole
New-BMApplication
Remove-BMServer
Remove-BMServerRole
Remove-BMVariable
Set-BMRelease
Set-BMVariable
Stop-BMRelease
- Remove usages of the
Get-BMDeployment
function'sBuild
,Release
, andApplication
parameters. The BuildMaster Release and build deployment API no longer supports getting deploys for builds, releases, and applications. - Remove usages of the
Get-BMPipeline
function'sID
parameter. BuildMaster pipelines no longer have ids, just names. - Update usages of the
Get-BMPipeline
function to pass a pipeline name to theName
parameter instead of an id. - Objects returned by
Get-BMPipeline
are now raft item objects. Check usages to ensure you're using correct properties. - Remove usages of the
New-BMApplication
function'sAllowMultipleActiveBuilds
switch. This functionality was removed from BuildMaster. - Rename usages of
New-BMPipeline
toSet-BMPipeline
. Set-BMPipeline
(néeNew-BMPipeline
) now creates or updates a pipeline. Inspect usages to see the impact of this new behavior.- Update usages of the
Set-BMPipeline
(néeNew-BMPipeline
) function'sStage
parameter to pass stage objects instead of strings of XML. Use the newNew-BMPipelineStageObject
andNew-BMPipelineStageTargetObject
functions to create the objects you should pass. - Update usages of the
Set-BMPipeline
(néeNew-BMPipeline
) function: its newRaft
parameter is required. To use BuildMaster's default raft, pass1
as the value. - Add
-PassThru
to usages of theSet-BMPipeline
(néeNew-BMPipeline
) function that expect a return value. TheSet-BMPipeline
(néeNew-BMPipeline
) function no longer returns the pipeline object by default. - Update usages of
Set-BMRelease
to pass a pipeline name or pipeline object to the newPipeline
paramter and remove usages of thePipelineID
parameter.
Add-BMParameter
, for adding values to a parameter hashtable (i.e. a hashtable that will be used as the body of a request to a BuildMaster API endpoint). If the value is$null
, however, it won't be added.ConvertFrom-BMNativeApiByteValue
for convertingbyte[]
values returned by the BuildMaster native API into their original strings.Get-BMBuild
for getting builds. It replaces the now obsoleteGet-BMPackage
function.Get-BMObjectName
for getting the name of an object that was returned by the BuildMaster API.Get-BMRaft
for getting rafts.Get-BMRaftItem
for getting raft items.New-BMBuild
for creating builds. It replaces the now obsoleteNew-BMPackage
function.New-BMPipelinePostDeploymentOptionsObject
for creating a post-deployment options object to use when creating a pipeline.New-BMPipelineStageObject
for creating a stage object that can be passed to theSet-BMPipeline
function'sStage
parameter.New-BMPipelineStageTargetObject
for creating a target object that can be passed to theNew-BMPipelineStageObject
function'sTarget
parameter.Publish-BMReleaseBuild
. It replaces the now obsoletePublish-BMReleasePackage
function.Remove-BMApplication
function for deleting applications.Remove-BMEnvironment
for deleting an environment.Remove-BMPipeline
function for removing pipelines.Remove-BMRaft
for removing a raft.Remove-BMRaftItem
function for deleting raft items.Set-BMRaft
for creating and updating rafts.Set-BMRaftItem
for creating and/or updating a raft item.
Add-BMObjectParameter
:AsID
to only set a parameter from an object's id, ignoring any names.AsName
to only set a parameter from an object's name, ignoring any ids.
Get-BMApplication
:Application
: accepts an application id, name, or application object. Wildcards supported when passing a name.ApplicationGroup
: accepts an application group id, name, or application group object. Wildcards supported when passing a name.
Get-BMDeployment
:Deployment
, which accepts a deployment id or deployment object.Get-BMEnvironment
:Environment
, which accepts environment ids, names, or environment objects. Wildcards supported when passing a name.Get-BMPipeline
:Application
:, for setting the application for the pipeline; accepts an application id, name, or application object. Wildcards supported when passing a name.Raft
parameter to theGet-BMPipeline
function for only getting pipelines in a specific raft.
Get-BMServer
:Server
, which accepts server ids, names, or server objects. Wildcards supported when passing a name.Get-BMServerRole
:ServerRole
, which accepts server ids, names, or server objects. Wildcards supported when passing a name.Get-BMVariable
andRemove-BMVariable
(wildcards supported when passing a name to any of these parameters):Application
: accepts application ids, names, or application objects.ApplicationGroup
: accepts application group ids, names, or application group objects.Environment
: accepts environment ids, names, or environment objects.Server
: accepts server ids, names, or server objects.ServerRole
: accepts server role ids, names, or server names.
New-BMApplication
:ApplicationGroup
: for assigning the application group to a new application; accepts application group ids, names, or application group objects. Wildcards supported when passing a name.Raft
: for setting the raft in which the application's scripts, pipelines, etc. will be saved.
New-Environment
:PassThru
, for returning the environment.New-BMSession
:Url
, which is the URL to BuildMaster;Url
replaces the now obsoleteUri
parameter.Remove-BMServer
:Server
, which accepts server ids, names, or server objects. Wildcards supported when passed a name.Remove-BMServerRole
:ServerRole
, which accepts server role ids, names, or server objects. Wildcards supported when passed a name.Set-BMPipeline
(néeNew-BMPipeline
):PostDeploymentOption
: configures a pipeline's post-deployment options. Use theNew-BMPipelinePostDeploymentOptionsObject
to create a post-deployment options object.EnforceStageSequence
: controls the pipeline's stage sequence enforcement.PassThru
: when set, returns the created/updated pipeline object.
Set-BMRelease
:Pipeline
, to set the pipeline for the release; this replaces the obsoletePipelineID
parameter.
- These functions now write an error if an item doesn't exist (for
Get
andRemove
functions) or if an item already exists (forNew
functions). Add-ErrorAction Ignore
to existing usages to preserve previous behavior:Disable-BMEnvironment
Enable-BMEnvironment
Get-BMApplication
Get-BMApplicationGroup
Get-BMDeployment
Get-BMEnvironment
Get-BMRelease
Get-BMServer
Get-BMServerRole
New-BMApplication
Remove-BMServer
Remove-BMServerRole
Remove-BMVariable
Set-BMRelease
Add-BMObjectParameter
now accepts$null
values. When passed a null value, it does nothing.Disable-BMEnvironment
: theEnvironment
parameter now accepts an environment id, name, and environment object for a value.Enable-BMEnvironment
: theEnvironment
parameter now accepts an environment id, name, and environment object for a value.Get-BMApplicationGroup
now accepts application group ids, names, or application group objects as pipeline input.Get-BMEnvironment
now accepts environment ids, names, or environment objects as pipeline input.Get-BMPipeline
returns raft item objects instead of pipeline objects.Get-BMServer
now accepts server names, ids, and server objects as pipeline input.Get-BMServerRole
now accepts server role names, ids, and server objects as pipeline input.Get-BMApplication
now accepts application ids, names, or application objects as pipeline input.New-BMPipeline
renamed toSet-BMPipeline
and:- it creates and/or updates a pipeline.
- its
Stage
parameter now takes in stage objects instead of XML strings. Use the newNew-BMPipelineStageObject
andNew-BMPipelineStageTargetObject
functions to create the objects you should pass. - it no longer returns the pipeline. Use the
PassThru
switch to have the pipeline object returned.
- The
Get-BMPackage
function. It is replaced byGet-BMBuild
. - The
New-BMPackage
function. It is replaced byNew-BMBuild
. - The
Publish-BMReleasePackage
function. It is replaced byPublish-BMReleaseBuild
.
- The
Get-BMApplication
function'sName
parameter. Use the newApplication
parameter instead. - The
Get-BMApplicationGroup
function'sName
parameter. Use the newApplicationGroup
parameter instead. - The
Get-BMDeployment
function'sID
parameter. Use the newDeployment
parameter instead. - The
Get-BMEnvironment
function'sName
parameter. Use the newEnvironment
parameter instead. - The
Get-BMPipeline
function'sApplicationID
parameter. Use the newApplication
parameter instead. - The
Get-BMPipeline
function'sName
parameter. Use the newPipeline
parameter instead. - The
Get-BMServer
function'sName
parameter. Use the newServer
parameter instead. - The
Get-BMServerRole
function'sName
parameter. Use the newServerRole
parameter instead. - The following parameters on
Get-BMVariable
andRemove-BMVariable
:ApplicationName
; useApplication
instead.ApplicationGroupName
; useApplicationGroup
instead.EnvironmentName
; useEnvironment
instead.ServerName
; useServer
instead.ServerRoleName
; useServerRole
instead.
- The
New-BMApplication
function'sApplicationGroupID
parameter. Use the newApplicationGroup
parameter instead. - The
New-BMSession
function'sUri
parameter. Use the newUrl
parameter instead. - The
Remove-BMServer
function'sName
parameter. Use the newServer
parameter instead.
- The
Uri
property on session objects. Use the newUrl
property instead. - The
Pipeline_Name
property on pipeline objects. Use the newRaftItem_Name
property instead. - The
Pipeline_Id
property on pipeline objects. Use the newRaftItem_Id
property instead.
Invoke-BMRestMethod
(and by extension all the BuildMasterAutomation functions that call the API) no longer returns$null
.Invoke-BMRestMethod
fails to log request body to the debug stream when using theBody
parameter.
- Removed the
Get-BMDeployment
function'sBuild
,Release
, andApplication
parameters. The BuildMaster Release and Build Deployment API no longer supports getting deploys for builds, releases, and applications. Get-BMPipeline
function'sID
parameter. Use theName
parameter instead. BuildMaster pipelines no longer have ids, just names.New-BMApplication
function'sAllowMultipleActiveBuilds
switch. Its functionality was removed from BuildMaster.
Released 3 Aug 2021
- Publishing version 1.0.0 to GitHub failed. This version is identical to 1.0.0.
Released 3 Aug 2021
- Updated to version 1.0.0 because there haven't been any breaking changes for over a year.
- Updated to support BuildMaster 6.1.28.
- Added support for PowerShell Core.
Released 12 Feb 2020
- Improved import speed by merging all functions into the module's .psm1 file.
- Updating to support BuildMaster 6.1.25.
- Fixed: New-BMServerRole requires a request body in BuildMaster 6.1.25.
Released 31 Oct 2019
- Added support for BuildMaster 6.1.17. Fixed an issue where environments created with
New-BMEnvironment
are disabled/inactive in that version. - Added
Inactive
switch toNew-BMEnvironment
to create inactive/disabled environments. The default is to create active/enabled environments.
Released 8 Jul 2019
- Fixed: Get-BMApplication, Get-BMApplicationGroup, and Get-BMPipeline fail if the user's WhatIfPreference is true.
- Fixed: New-BMEnvironment wasn't setting an environment's parent.
- Fixed: Get-BMEnvironment wasn't returning an environments parent.
Released 5 Jul 2019
- Created
Get-BMServerRole
,New-BMServerRole
, andRemove-BMServerRole
functions for managing server roles. - Created
Get-BMServer
,New-BMServer
, andRemove-BMServer
functions for managing servers. - Created
Get-BMEnvironment
,New-BMEnvironment
,Disable-BMEnvironment
, andEnable-BMEnvironment
functions for managing environments. - Created
Get-BMVariable
,Remove-BMVariable
, andSet-BMVariable
functions for managing variables.
Released 29 Nov 2018
- Created
Get-BMDeployment
function to retrieve deployment information for release packages.
Released 14 Sep 2018
This relese contains breaking changes. Please read the release notes carefully for upgrade instructions.
- Created
Stop-BMRelease
function for canceling releases. - Fixed: module functions don't respect calling scope preferences (e.g. VerbosePreference, ErrorActionPreference, etc.).
- Added
Force
switch toPublish-BMReleasePackage
to force BuildMaster to deploy a package when it normally wouldn't. - Changed the default HTTP method on
Invoke-BMRestMethod
andInvoke-BMNativeApiMethod
fromPOST
toGET
. Update all your usages of these functions to add an explicit-Method Post
parameter. - Fixed:
Import-BuildMasterAutomation.ps1
script fails to remove exiting BuildMasterAutomation modules before re-importing whenWhatIfPreference
istrue
. - Added
WhatIf
support toInvoke-BMRestMethod
andInvoke-BMNativeApiMethod
. - Fixed:
Invoke-BMNativeApiMethod
fails when making HTTP GET requests.
Released 1 Nov 2017
- Created
Stop-BMRelease
function for canceling releases. - Fixed: module functions don't respect calling scope preferences (e.g. VerbosePreference, ErrorActionPreference, etc.).
Released 14 Jul 2017
Fixed: Calling any REST API that has a body in its request fails under PowerShell 5.1.
Released 23 Jun 2017
- Renamed
Get-BMReleasePackage
toGet-BMPackage
. - Renamed
New-BMReleasePackage
toNew-BMPackage
. Get-BMPackage
can now return packages for a specific release. Pass the release or release ID to the newRelease
parameter.- Fixed:
Get-BMRelease
only filters by name only if getting a specific application's releases. Get-BMRelease
now returns all releases when passed no parameters.Get-BMApplication
no longer returns inactive/disabled applications. Use theForce
switch to return active and inactive applications.- Added
Disable-BMApplication
function for disabling/deactivating an application.
Released 23 Jun 2017
- Created
New-BMSession
function for creating a session to a BuildMaster instance - Created
Get-BMApplication
function for getting applications. - Created
New-BMApplication
function for creating new applications. - Created
Invoke-BMRestMethod
function for calling unimplemented API methods. - Created
Invoke-BMNativeApiMethod
function for calling native API methods. - Created
Add-BMObjectParameter
function to aid in converting and adding objects to parameter hashtables that get sent to BuildMaster in API requests. - Created
New-BMRelease
function for creating releases. - Created
Get-BMRelease
function for getting releases. - Created
Get-BMPipeline
function for creating pipelines. - Created
Get-BMReleasePackage
function for getting release packages. - Created
New-BMReleasePackage
function for creating release packages. - Created
Publish-BMReleasePackage
function for deploying a package.