As mentioned and the last article on how to build software for a cross-platform and needed to build and test it on different operating systems?
This time, I will demonstrate the same thing, but in an isolated step in the Multistage pipeline.
What we do here, is follow the same multistage pipeline as the last article, but will not use strategy and matrix, we will in sted define separate stages for each operating system agent and make the next stage depending on all of the agents success before continuing.
Let’s show it:
trigger: - main stages: - stage: Build pool: vmImage: ubuntu-latest jobs: - job: BuildJob steps: - script: echo Building - stage: TestWithLinux dependsOn: Build pool: vmImage: ubuntu-latest jobs: - job: Testing steps: - script: echo Test with Linux OS - stage: TestWithWindows dependsOn: Build pool: vmImage: windows-latest jobs: - job: Testing steps: - script: echo Test with Windows OS - stage: Final dependsOn: [TestWithLinux,TestWithWindows] pool: vmImage: ubuntu-latest jobs: - job: FinalJob steps: - script: echo Final Job
as you can see there are 2 separate stages that only can continue to the final if both pass the stage as you can see in the visual pipeline.
To see a list of fully supported agents, check this link.
That is it.
With this article and the previous article, we have learned both a little bit about how to create a multistage pipeline, and how to run software on different operating system agents.
There is no right or wrong how to achieve this, it all depends on your project requirement and strategy of doing this. Each has its own cons and pros that I will leave to you to find out.