Reputation: 3
I'm defining these parameters in Azure_pipeline.yaml
:
parameters:
- name: 'buildtype'
default: entire
type: string
values:
- entire
- reduced
I've defined this copy task in task.yaml
using the few other stages & jobs templates and parameters values:
steps:
- ${{ if eq(parameters.buildtype, 'entire') }}:
- task: CopyFiles@2
displayName: Deploy ${{ parameters.buildtype }} Build to ${{ parameters.deploymentFolder }}
inputs:
SourceFolder: $(Build.ArtifactStagingDirectory)/${{ parameters.appName }}
Contents: |
**
!.config/**/*
TargetFolder: ${{ parameters.deploymentFolder }}
OverWrite: true
flattenFolders: false
enabled: true
- ${{ if eq(parameters.buildtype, 'reduced') }}:
- task: CopyFiles@2
displayName: Deploy ${{ parameters.buildtype }} Build to ${{ parameters.deploymentFolder }}
inputs:
SourceFolder: $(Build.ArtifactStagingDirectory)/${{ parameters.appName }}
Contents: |
**
!.config/**/*
!$(Build.ArtifactStagingDirectory)/${{ parameters.appName }}/appsettings.Staging
TargetFolder: ${{ parameters.deploymentFolder }}
OverWrite: true
flattenFolders: false
enabled: true
From this task, I am trying to copy the required files to deployment folder, based on the Run time parameter values=entire/reduced name=buildtype. During the pipeline run, it's evaluating as "False".
I haven't shared the complete template and values due to restrictions.
Ref: Conditional insertion - Microsoft docs
Upvotes: 0
Views: 133
Reputation: 18084
You're referencing parameters buildtype
, appName
and deploymentFolder
in your template (tasks.yaml
) but you forgot to define them.
Try the following:
# task.yaml
parameters:
- name: 'buildtype'
displayName: 'Build Type'
type: string
- name: 'appName'
displayName: 'Application Name'
type: string
- name: 'deploymentFolder'
displayName: 'Deployment Folder'
type: string
steps:
- script: |
echo "Deploying ${{ parameters.buildtype }} Build"
displayName: 'Deploy ${{ parameters.buildtype }} Build'
- ${{ if eq(parameters.buildtype, 'entire') }}:
- task: CopyFiles@2
displayName: Deploy ${{ parameters.buildtype }} Build to ${{ parameters.deploymentFolder }}
inputs:
SourceFolder: $(Build.ArtifactStagingDirectory)/${{ parameters.appName }}
Contents: |
**
!.config/**/*
TargetFolder: ${{ parameters.deploymentFolder }}
OverWrite: true
flattenFolders: false
enabled: true
- ${{ if eq(parameters.buildtype, 'reduced') }}:
- task: CopyFiles@2
displayName: Deploy ${{ parameters.buildtype }} Build to ${{ parameters.deploymentFolder }}
inputs:
SourceFolder: $(Build.ArtifactStagingDirectory)/${{ parameters.appName }}
Contents: |
**
!.config/**/*
!$(Build.ArtifactStagingDirectory)/${{ parameters.appName }}/appsettings.Staging
TargetFolder: ${{ parameters.deploymentFolder }}
OverWrite: true
flattenFolders: false
enabled: true
Using the template - example:
# Azure_pipeline.yaml
parameters:
- name: 'buildtype'
displayName: 'Build Type'
type: string
default: entire
values:
- entire
- reduced
trigger: none
pool:
vmImage: 'ubuntu-latest'
steps:
# other tasks here
- template: task.yaml
parameters:
buildtype: ${{ parameters.buildtype }}
appName: 'myapp'
deploymentFolder: '/my/deployment/folder'
Upvotes: 1