Azure DevOps Contd
Azure DevOps YAML Schema
- Generally the pipeline as a code is represented in a file called as
- The name of the file is not fixed but
azure-pipelines.yamlis most widely used.
- Refer Here for official docs
- Azure Pipelines is collection of
- Stages: Each Stage is collection of Jobs
- Job: Each job is collection steps
- Step: A unit of activity
- If we have only one stage then Azure Pipeline is collection of Jobs and if Azure pipeline has only one stage and one one job then Azure pipeline can be considered as set of steps
Lets create a pipeline for java project
- Refer Here for manual steps
- What would be the pipelines yaml look like
- First Version (Stage,job and steps)
pool: default stages: - stage: 'buildstage' displayName: Build and Package using Maven jobs: - job: 'buildjob' displayName: 'Build the application using Maven' steps: - bash: 'mvn pacakage' ---
- Second Version (Job and steps)
--- pool: default jobs: - job: 'buildjob' displayName: 'Build the application using Maven' steps: - bash: 'mvn package' ---
- Third version (steps)
--- pool: default steps: - bash: 'mvn package'
Azure DevOps Steps
Types of Steps
- task: reusable build/deploy/utility steps
- script: Runs a script using cmd.exe on Windows and Bash on other platforms.
- powershell: Runs a script in a powershell
- pwsh: Runs a script in a powershell core
- bash: Runs a script in a bash shell
- Azure DevOps allows us to create reusable steps where we fill the yaml and it does the rest. This is done by Task.
- Refer Here for tasks.
- If you want to develop a reusable task Refer Here
- Install Azure Pipelines Extension into Visual Studio Code
- We have started using Maven Task
pool: default steps: - task: Maven@4 inputs: mavenPOMFile: pom.xml goals: package publishJUnitResults: true testResultsFiles: '**/TEST-*.xml' javaHomeOption: Path jdkVersionOption: '1.17' jdkDirectory: '/usr/lib/jvm/java-17-openjdk-amd64' mavenVersionOption: Path mavenDirectory: '/usr/share/maven'