I have done Testing “replacement token” test on simple yaml file with MS agent. which is YAML below: I have used MS agent
all tasks succeeded but not sure why it is not replaced and showing as test02 it is in last task which “print after file replace””
<code>rigger:
main
pool:
vmImage: ubuntu-latest
parameters:
name: TestSetting
default: testSet01
values:
testSet01
testSet02
testSet03
stages:
stage: A
jobs:
job: A1
steps:
task: Bash@3
displayName: 'Set variable'
inputs:
targetType: inline
script: |
echo 'The selected TestSetting is ${{ parameters. TestSetting }}.'
echo "##vso[task.setvariable variable=TestSettings_Name;] ${{ parameters. TestSetting }}"
task: Bash@3
displayName: 'Print file before replace'
inputs:
targetType: inline
script: 'cat $(System.DefaultWorkingDirectory)/appsettings.json'
task: Bash@3
inputs:
targetType: 'inline'
script: 'echo $(TestSetting_Name)'
task: Bash@3
inputs:
targetType: 'inline'
script: 'cat $(System.DefaultWorkingDirectory)/appsettings.json'
task: replacetokens@6
inputs:
root: '$(System.DefaultWorkingDirectory)'
sources: 'appsettings.json'
task: Bash@3
displayName: 'Print file after replace'
inputs:
targetType: inline
script: 'cat $(System.DefaultWorkingDirectory)/appsettings.json'
</code>
<code>rigger:
main
pool:
vmImage: ubuntu-latest
parameters:
name: TestSetting
default: testSet01
values:
testSet01
testSet02
testSet03
stages:
stage: A
jobs:
job: A1
steps:
task: Bash@3
displayName: 'Set variable'
inputs:
targetType: inline
script: |
echo 'The selected TestSetting is ${{ parameters. TestSetting }}.'
echo "##vso[task.setvariable variable=TestSettings_Name;] ${{ parameters. TestSetting }}"
task: Bash@3
displayName: 'Print file before replace'
inputs:
targetType: inline
script: 'cat $(System.DefaultWorkingDirectory)/appsettings.json'
task: Bash@3
inputs:
targetType: 'inline'
script: 'echo $(TestSetting_Name)'
task: Bash@3
inputs:
targetType: 'inline'
script: 'cat $(System.DefaultWorkingDirectory)/appsettings.json'
task: replacetokens@6
inputs:
root: '$(System.DefaultWorkingDirectory)'
sources: 'appsettings.json'
task: Bash@3
displayName: 'Print file after replace'
inputs:
targetType: inline
script: 'cat $(System.DefaultWorkingDirectory)/appsettings.json'
</code>
rigger:
main
pool:
vmImage: ubuntu-latest
parameters:
name: TestSetting
default: testSet01
values:
testSet01
testSet02
testSet03
stages:
stage: A
jobs:
job: A1
steps:
task: Bash@3
displayName: 'Set variable'
inputs:
targetType: inline
script: |
echo 'The selected TestSetting is ${{ parameters. TestSetting }}.'
echo "##vso[task.setvariable variable=TestSettings_Name;] ${{ parameters. TestSetting }}"
task: Bash@3
displayName: 'Print file before replace'
inputs:
targetType: inline
script: 'cat $(System.DefaultWorkingDirectory)/appsettings.json'
task: Bash@3
inputs:
targetType: 'inline'
script: 'echo $(TestSetting_Name)'
task: Bash@3
inputs:
targetType: 'inline'
script: 'cat $(System.DefaultWorkingDirectory)/appsettings.json'
task: replacetokens@6
inputs:
root: '$(System.DefaultWorkingDirectory)'
sources: 'appsettings.json'
task: Bash@3
displayName: 'Print file after replace'
inputs:
targetType: inline
script: 'cat $(System.DefaultWorkingDirectory)/appsettings.json'
Below is the image of the file location where it has to be replaced:
enter image description here
Please suggest, what could be the wrong in the above
I have tried couple of options using different directory paths and different file names but nothing worked