In your build commands you should add the following setup commands:
git submodule init git submodule update
and as after job command add:
git submodule deinit --force .
Note: Make sure that Semaphore has permissions to clone your submodules repo. Please check documentation about private gems where you can find more information about setting permissions for private repos, if you are using those.
If your project is configured to use an SSH key added as a configuration file, it would be good to verify the form of URLs in .gitmodules file. For example, when private submodule is hosted on Github, URL should be similar to the following
url = firstname.lastname@example.org:<repo_owner>/<repo>.git
Semaphore Docs are open source — Edit on GitHub