A powershell plugin for lemniscat
This plugin allows you to run powershell commands and scripts in your lemniscat pipeline.
In order to use this plugin, you need to add plugin into the required section of your manifest file.
requirements:
- name: lemniscat.plugin.powershell
version: 0.2.0
- task: powershell
displayName: 'Powershell'
steps:
- run
parameters:
type: inline
script: |
$name = "Philippe"
Write-Host "Hello $name"
- task: powershell
displayName: 'Powershell'
steps:
- run
parameters:
type: file
filePath: ${{ workingdirectory }}/scripts/Hello.ps1
fileParams:
name: ${{ username }}
Note
This feature is particulary recommand when you need to manipulate complexe variable with your task. You can access to the variables in the json file by using the following command:
$location = Get-Location
$variables = Get-Content "$($location.path)/vars.json" | ConvertFrom-Json -Depth 100
- task: powershell
displayName: 'Powershell'
steps:
- run
parameters:
type: inline
script: |
$location = Get-Location
$variables = Get-Content "$($location.path)/vars.json" | ConvertFrom-Json -Depth 100
$version = az --version
Write-Host "Azure CLI version: $version"
storeVariablesInFile:
format: json
withSecrets: false
-
type
: The type of the command to run. It can beinline
orfile
-
script
: The script to run. It can be a powershell command line. It is used only iftype
isinline
-
filePath
: The path of the powershell script file (*.ps1) to run. It is used only iftype
isfile
-
fileParams
: The parameters to pass to the powershell script file. It is used only iftype
isfile
-
storeVariablesInFile
: Describe the way to store the variables in a file to used in the task.
-
format
: The format of the file to store the variables. It can bejson
oryaml
-
withSecrets
: A boolean value to indicate if the secrets should be stored in the file. It can betrue
orfalse
You can push variables to the lemniscat runtime in order to be used after by other tasks.
To do that, you need to use Write-Host
command in your powershell script to push variables to the lemniscat runtime.
You must use the following format to push variables to the lemniscat runtime:
[lemniscat.pushvar] <variableName>=<variableValue>
For example:
Write-Host "[lemniscat.pushvar] workspaceExist=$workspaceExist"
You can specify the sensitivity of the variable by adding secret
like this :
[lemniscat.pushvar.secret] <variableName>=<variableValue>
For example:
Write-Host "[lemniscat.pushvar.secret] storageAccountKey=$storageAccountKey"
By default all variable are considered as string. If you want to specify the type of the variable, you can add the type after the variable name like this:
[lemniscat.pushvar(<variableType>)] <variableName>=<variableValue>
variableType
can be string
, int
, bool
, float
, json
(for complexe object)
For example:
Write-Host "[lemniscat.pushvar(int)] numberOfFiles=$numberOfFiles"