Reputation: 21
This is the YML code that I'm trying. I have a requirement that in each branch different parameters need to be set.
For example, sonar analysis only should run in the development branch at the time of auto integration & deployment. I want to know how to configure default property to true based on branch.
parameters:
- name: sonar_analysis
displayName: Sonarqube Analysis
type: boolean
default: true
- name: docker_build_push
displayName: Docker Build and Push
type: boolean
default: false
- name: sonar_publish
displayName: Sonarqube Publish
type: boolean
default: false
- name: owasp_dep_check
displayName: OWASP Dependency Check
type: boolean
default: false
- name: angular_build
displayName: Angular Build
type: boolean
default: false
- name: angular_build_gzip
displayName: Angular Build GZIP
type: boolean
default: false
# specific path build
trigger:
batch: true
branches:
include:
- master
- development
# YAML file in the main branch
schedules:
- cron: "0 0 * * *"
displayName: Daily midnight build
branches:
include:
- main
pool:
vmImage: ubuntu-latest
variables:
docker_ng_tag: 0.0.1
steps:
- task: NodeTool@0
inputs:
versionSpec: '10.16.0'
- ${{ if eq(parameters.angular_build, true) }}:
- script: |
npm install -g @angular/cli@11.2.2
npm install
npm link @angular/cli
ng build --prod --aot --base-href /app/tms/ --deploy-url /app/tms/
displayName: 'npm install and build'
- ${{ if eq(parameters.angular_build_gzip, true) }}:
- script: |
npm i gzipper@4.4.0 -g
gzipper compress ./dist
displayName: 'GZIP'
Upvotes: 2
Views: 3196
Reputation: 40909
You could define variable like this:
variables:
isDevelopment: $[eq(variables['Build.SourceBranch'], 'refs/heads/development')]
stages:
- stage: A
jobs:
- job: A1
steps:
- script: echo Hello Stage A!
- stage: B
condition: and(succeeded(), eq(variables.isDevelopment, 'true'))
jobs:
- job: B1
steps:
- script: echo Hello Stage B!
- script: echo $(isDevelopment)
You could use condition also on step level.
We aware that in cron you use main
branch and in ci triggers master
. I'm pretty sure you don't have both.
Upvotes: 1