5
votes

Can somebody clarify how SubModule works in azure devops

MyDevOps Root Folder

I have a Solution called MyCore.sln containing 4-5 projects

I have my Main Solution called MyMain.sln containing another 4-5 projects project referencing MyCore.sln projects

  • It all compiles and works locally but fails when building in azure devops

  • Gone into MyMain.sln folder in powershell and executed as follows

  • executed as follows git submodule add https://[email protected]/MyGroup/MyProjec/_git/MyCore

  • I can now see a folder inside my Main Repo called MyCore with projects inside and I start reference them
  • I can see .gitmodules file

    However when I go and build the pipeline it cannot find the projects that are referenced (belonging to myCore repo)

Am I missing the obvious?

Are there any comprehensive instructions on how to setup submodules in azure devops?

Can I visualize this anywhere?

1
It depends on what kind of submodules they are, as on your own machine, any user credentials can come as easy as breeze, while on Azure DevOps everything needs to be configured explicitly (one example blog.lextudio.com/…).Lex Li

1 Answers

8
votes

In the advanced section of the Get Sources step you need to enable the Checkout Submodules option.

enter image description here

If you're using YAML builds, you need to add:

steps:
- checkout: self
  submodules: true

As to your follow-up questions:

Where should I put my solution files

Ideally, you'd have a single solution, since you expect these projects to build together. Having multiple solutions will be awkward. If you want to share the components from one solution, you are probably better off publishing the projects from your 2nd repo as NuGet packages.