How to setup submodules Azure DevOps
In the advanced section of the Get Sources step you need to enable the Checkout Submodules option.
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.
developer9969
Updated on June 04, 2022Comments
-
developer9969 almost 2 years
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?
-
developer9969 over 5 yearsHi thanks for quick reply. Forgot to mention but I did that and still my pipeline fails.
-
developer9969 over 5 yearsthanks for your reply. I will try to put some logs (work stuff not sure) . The logs say that cannot find the referenced projects which leads me to a question. Should the repo that has a reference to the submodules contain the actual physical projects in both repos? Or should just contain a link to the submodules repo?
-
jessehouwing over 5 yearsDepends on the solution file. That's what tells the project system which project is stored where.
-
jessehouwing over 5 yearsEach
.*proj
file and*.sln
file should be stored in one repository and one repository only. -
developer9969 over 5 yearsjust to clarify I have 2 repos "MyCore Repo" and "MyMain Repo" (fictious names) simplified for clarity. I want to add "MyCore Repo" as a submodule to My Main repo so each repo will have their own solution. kind of confused about your last comment. Sorry . Appreciate time on your side to explain.
-
Andrew Bullock about 4 yearsThis UI seems to have changed, where does this live now?
-
jessehouwing about 4 years@AndrewBullock for UI based builds, the option still lives there. yaml based builds, see update.