How to setup submodules Azure DevOps

16,483

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.

Share:
16,483
developer9969
Author by

developer9969

Updated on June 04, 2022

Comments

  • developer9969
    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
    developer9969 over 5 years
    Hi thanks for quick reply. Forgot to mention but I did that and still my pipeline fails.
  • developer9969
    developer9969 over 5 years
    thanks 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
    jessehouwing over 5 years
    Depends on the solution file. That's what tells the project system which project is stored where.
  • jessehouwing
    jessehouwing over 5 years
    Each .*proj file and *.sln file should be stored in one repository and one repository only.
  • developer9969
    developer9969 over 5 years
    just 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
    Andrew Bullock about 4 years
    This UI seems to have changed, where does this live now?
  • jessehouwing
    jessehouwing about 4 years
    @AndrewBullock for UI based builds, the option still lives there. yaml based builds, see update.