Have you ever built software for a cross-platform and needed to build and test it on different operating systems?
Well, you are prepared to read the right place.
In this article series, I will show 2 ways of using the Multi-Agents strategy with a Multistage pipeline on Azure DevOps using YAML.
Let’s go to it.
The simplest way to build and run a program is by using strategy and matrix. With the strategy and matrix, you can define the type of agent operating system you need to run your program on.
So if I need to test my software on Linux, Windows, and macOS, I do add the following to my job:
strategy: matrix: Linux: imageName: 'ubuntu-latest' Mac: imageName: 'macOS-latest' Windows: imageName: 'windows-latest'
Now let’s put it together in a Multistage and see what it looks like:
trigger: - main stages: - stage: Build pool: vmImage: ubuntu-latest jobs: - job: BuildJob steps: - script: echo Building - stage: TestWithCrossPlatform dependsOn: Build jobs: - job: strategy: matrix: Linux: imageName: 'ubuntu-latest' Mac: imageName: 'macOS-latest' Windows: imageName: 'windows-latest' pool: vmImage: $(imageName) steps: - powershell: | "OS = $($env:AGENT_OS)" | Out-Host displayName: 'Test with Agent' - stage: Final dependsOn: TestWithCrossPlatform pool: vmImage: ubuntu-latest jobs: - job: FinalJob steps: - script: echo Final Job
So the visual pipeline will look like this
To see a list of fully supported agents, check this link.
That is it.
We have achieved 2 things in this article:
- Write Multi-stage Pipeline using YAML
- Run the software build and test on Multi-Agent using Strategy and Matrix
As you can Azure DevOps Pipeline is a powerful tool for CI/CD and with a few lines of YAML scripts, we were able to fire up 3 different agents for the same software.
In the next article, I am going to demonstrate separate stages for each agent in the same pipeline.