Currently I use SVN for my project and the structure looks like this:


trunk/platform/wordpress/ <- platform base directory
trunk/platform/wordpress/SharedLibrary <- external with relative path ../../SharedLibrary

trunk/platform/joomla/ <- platform base directory
trunk/platform/joomla/libraries/SharedLibrary <- external with relative path ../../../SharedLibrary

So I would like to transition the project to Git, plan to use one of the following providers: Github, Gitlab or Bitbucket.

The main goal is to use automated CI/CD, so if I change something in SharedLibrary, both project should build automatically without hassle.

Here is what I can think of, but I'm not sure about the drawbacks: - 1 repo for the SharedLibrary and 1-1 for each platform and then use SharedLibrary as submodule, but I'm not sure if it would trigger the CI of the platforms.

What would be the right repo structure for this?

1 Answer 1


Depending on the exact circumstances, one repo might be all you need.

If you really want separate repos, I suggest you add SharedLibrary as a submodule to the repos that need it. It is a bit of a hassle to setup the ci for this configuration, but possible (also depends on what ci you plan to use). See this question for an example setup for Travis and GitHub.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.